die definieren Lassen Funktion x(t)
, seine zeitliche Ableitung xdot(t)
und Ausdruck T
, die von ihnen abhängig ist:Partielle Differentialgleichung in Matlab (falsche Lösung)
syms t x(t)
xdot(t) = diff(x,t);
T = (xdot + x)^2;
Wir können alle einig, dass partielle Ableitung von T
in Bezug auf x
ist ∂T/∂x = 2*(xdot+x)
. Allerdings, wenn ich dies tun in Matlab erhalte ich falsche Antwort:
dT_dx = subs(diff(subs(T,x,'x'), 'x'), 'x', x);
>> dT_dx = 2 x(t)
Beachten Sie, dass es die richtige Antwort für ∂T/∂xdot
zurückgibt:
dT_dxdot = subs(diff(subs(T,xdot,'x1'), 'x1'), 'x1', xdot);
>> dT_dxdot = 2*x(t) + 2*diff(x(t), t)
Es sieht aus wie Matlab das Produkt 2*x*xdot
ignoriert, bei der Berechnung der Ableitungen in Bedingungen niedrigerer Ordnung Variablen (x
), aber es dieses Produkt nicht ignorieren, wenn Derivat in Form höherer Ordnung Variablen (xdot
) berechnet wird. Wenn wir den Ausdruck T
als T = (100 + x)^2
neu definiert, würden wir ∂T/∂x
erhalten:
>> ans = 2 x(t) + 200
So nach xdot
mit einer konstanten getauscht haben wir jetzt richtige Antwort erhalten.
Kommentare:
- I Doppelsubstitution verwendet, um die Funktion
diff
, weildiff(T,x)
ein Fehler zurück zu verwenden. Ich fand diesen Ansatz here. - Erweiterung des Ausdrucks
T
vor der Berechnung der Ableitung funktioniert nicht - wir bekommen immer noch falsche Antwort. - Ich habe auch versucht die
functionalDerivative
Funktion, aber es gibt die falsche und Antwort.
Frage
Wie kann man zuverlässig Teil und absolute Derivate von T
berechnen, vor allem ∂T/∂x
?
Ist subs(diff(subs() ))
ein guter Ansatz, oder gibt es einen besseren Weg, und wenn ja, was ist das?
Ich werde in Substitution Problem schauen, weil dies der Fall sein muss. Auf der anderen Seite gibt 'functionalDerivative' keine erforderliche Antwort zurück, da es eine zweite Ableitung von x gibt und was ich brauche, ist eine partielle Ableitung von T gegen x, das ist genau '∂T/∂x = 2 * (xdot + x)' . – Maverick
Hmm, das ist mir gerade aufgefallen. Ich untersuche es. Ich habe auch aktualisiert mit Antwort mit einer 'subs'-Lösung. – horchler