Wenn ich Solve[f[x,y]==0,x]
auswerte, bekomme ich eine Reihe von Lösungen wie:
{{x -> something g[y]}, {x -> something else}}
, usw.
Nun möchte ich jede dieser x->somethings
in eine Funktion umwandeln. In der Regel sind meine Anforderungen gering, und meine Funktion f[x]
ist höchstens ein Kubikwert mit einfachen Lösungen für x
. Also habe ich gerade g1[y_]:=something
, g2[y_]:=...
etc manuell definiert.
Jedoch gibt Solve
für eine Funktion, die ich jetzt habe, ein kompliziertes Polynom aus, das 4 Seiten lang ist, und es gibt 4 solche Lösungen. Ich habe versucht, mit Simplify
, Collect
, Factor
usw. auf einfachere Formen zu reduzieren, aber es scheint einfach nicht reduzierbar.
Gibt es eine Möglichkeit, sie automatisch Funktionen zuzuordnen? (Es ist extrem schwierig, durch die Seiten zu blättern und jeden einzelnen zu kopieren ... und ich muss danach suchen, wo der nächste anfängt!)
Etwas wie: {g1[y_], g2[y_], g3[y_]} = output of Solve
?
Es scheint, Simon hat mich auf eine Antwort geschlagen (ich bin froh, dass StackOverflow mir ein Pop-up gibt, um es mich wissen zu lassen!), deshalb werde ich einen anderen Ansatz verfolgen. Sie sollten wissen, wie Sie die Ausgabe von Solve direkt verwenden können, da es einige Male bequem ist, dies zu tun.
Beginnend mit
%Vor%Hier sind einige Dinge, die Sie tun können.
x
für a == 7
Evaluate
wird hier nicht notwendigerweise für die Basisfunktion verwendet, sondern um es der Plot-Funktion zu ermöglichen, jede Lösung einzeln zu stylen
a
für die zweite Lösung Beachten Sie die Verwendung von =
anstelle von :=
hier
Die Funktion wird dann mit der Syntax gg[1][17]
für die erste Lösung und a == 17
Für diese Verwendungszwecke ist es normalerweise erforderlich, dass a
(in diesem Beispiel) nicht zugewiesen ist.
Die folgende Funktion konvertiert automatisch die Ausgabe von Solve
in eine Liste von Funktionen (unter der Annahme, dass Solve
Lösungen findet natürlich):
Hier ist ein Beispiel:
%Vor%Die Funktionen können einzeln aufgerufen werden:
%Vor%Oder alle Funktionen können gleichzeitig aufgerufen werden, um alle Lösungen zurückzugeben:
%Vor% Die Funktion schlägt fehl, wenn Solve
keine Lösungen finden kann:
Variablen werden automatisch identifiziert:
%Vor%Das ist wirklich cool. Vielen Dank. Durch die Umwandlung von Solve-Ergebnissen in Funktionen könnte ich Manipulieren in einem Plot verwenden. Etwas wie
%Vor%Und Sie erhalten ein Diagramm, in dem Sie den Parameter b
manipulieren könnenTags und Links wolfram-mathematica