ich ein Stück Code zu schreiben, aber das Problem gefunden hier:Differenzierung, .diff() gibt nicht erwartete Ausgabe
[IN>] from sympy import*
[IN>] t= Symbol('t')
x1 = Function('x1')(t)
x2 = Function('x2')(t)
y1 = Function('y1')(t)
y2 = Function('y2')(t)
definiere ich meinen Ausdruck:
[IN>] f = (x1.diff(t)*y2.diff(t)- x2.diff(t)*y1.diff(t))
Dann bei der Differenzierung der Ausdruck f
wrt. die Faktoren des ersten Summanden bekomme ich die unerwartete Ausgabe:
[IN>] f.diff(y2.diff(t))
[OUT>] Subs(Derivative(x1(t), t), (_xi_2,), (Derivative(y2(t), t),))
aber wenn ich WRT unterscheiden. der zweite Summand Faktoren
[IN>] f.diff(y1.diff(t))
[OUT>] -Derivative(x2(t), t)
ich die gewünschte und erwartet Ergebnis. Ich bin total verblüfft. Noch mehr, wenn ich die Reihenfolge der Summanden ändern, erhalte ich das gleiche Ergebnis:
[IN>] (-x2.diff(t)*y1.diff(t)+x1.diff(t)*y2.diff(t)).diff(y2.diff(t))
[OUT>] Subs(Derivative(x1(t), t), (_xi_2,), (Derivative(y2(t), t),))
[IN>] (-x2.diff(t)*y1.diff(t)+x1.diff(t)*y2.diff(t)).diff(y1.diff(t))
[OUT>] -Derivative(x2(t), t)
Aber wenn ich das Minus `-``sign, die propeblem ist jetzt in dem anderen Paar von Funktionen austauschen:
[IN>] (+x2.diff(t)*y1.diff(t)-x1.diff(t)*y2.diff(t)).diff(y1.diff(t))
[OUT>] Subs(Derivative(x2(t), t), (_xi_2,), (Derivative(y1(t), t),))
@Mitch: Ich hatte ein Problem mit meiner Verbindung und legte die Frage zu früh. – iiqof
'doit' ist deine Antwort, aber ich würde dies als Fehler in SymPy betrachten. Siehe https://github.com/sympy/sympy/issues/11467. – asmeurer
@asmeurer Ich dachte, das könnte ein Problem sein. Danke, dass du es weitergebracht hast! – iiqof