ich den folgenden Code in python3 (mit der Absicht, dann nullclines ein 2-D dynamischen System ziehen zu berechnen) schrieb:erzwingen Sympy Ausdruck ein Symbol enthält
import sympy as sm
x1, x2 = sm.symbols('x1 x2')
x = [x1, x2]
sys = sm.Matrix([(x1 - sm.log(x2))*(x2-x1*x1),
x2**2 - 4])
solutions = list(map(lambda dx: sm.solve(sm.Eq(dx, 0)), sys))
print(solutions)
Was ich sehe, ist
[[{x1: -sqrt(x2)}, {x1: sqrt(x2)}, {x1: log(x2)}], [-2, 2]]
Dies [-2,2] gibt mir ein großes Problem, da ich die Lösungen als nächstes zeichnen möchte. Da ich mit sys
arbeiten möchte, ob jedes Element beide Variablen enthält oder nicht. Ich möchte über die Wörterbücher iterieren und sm.Eq(list(solutions[i][j].keys())[0], list(solutions[i][j].values())[0])
plotten, aber ich kann ein Wörterbuch wie dieses
nicht garantieren, sah ich, dass, wenn ich + x1 - sm.log(sm.exp(x1))
zu sys[1]
hinzufügen es gibt mir die konsequente Wörterbuchform, aber gibt es eine Möglichkeit für ich zu erzwingen sys
'Element, um beide auf eine elegante Art und Weise zu enthalten? Ich möchte nicht in jedem Element nach beiden Koordinaten suchen und wenn einer nicht vorhanden ist, um den redundanten Ausdruck hinzuzufügen
'Liste (Karte (Lambda dx: sm.solve (sm.Eq (dx, 0)), sys))' entspricht zu '[sm.solve (sm.Eq (dx, 0)) für dx in sys]'. Sie lösen kein Gleichungssystem, Sie lösen zwei Gleichungen. Entschuldigung, wenn dies für Sie offensichtlich ist, stelle ich mir vor, ein Gleichungssystem zu lösen, wenn ich Nulllinien zeichne, aber ich kann Ihr Ziel falsch verstehen. – winerd
Es sieht eleganter aus, aber es hilft mir immer noch nicht bei dem Problem, wo für einige Systeme eine Gleichung unabhängig von einer Koordinate ist und 'solve()' 's Ausgabe nicht in einer Wörterbuchform ist –
sys ist ein häufig benutztes Modul. am besten nicht als Variable verwenden – ShpielMeister