Substitute partial differential into symfun

3 vues (au cours des 30 derniers jours)
ludolfusexe
ludolfusexe le 15 Mai 2024
Commenté : ludolfusexe le 16 Mai 2024
Because my actual functions are very complex, I would like to calculate the derivative of nested functions first and then substitute the functions afterwards.
A minimal example looks like this:
syms G(h) h(t) t
Q = G(h)
Q = 
dGdt = diff(Q,t) % -> D(G)(h(t)) occurs
dGdt = 
% Now define G(h) and derive:
G = h^2;
dGdh = diff(G,h)
dGdh(t) = 
How is it possible, to insert the derivative of G with respect to h as the partial derivative?
I tried this, but it is not working:
% dQ_subs = subs(dGdt, D(G), dGdh)
% dQ_subs = subs(dGdt, D(G)(h(t)), dGdh)
I really appreciate any feedback!

Réponse acceptée

Torsten
Torsten le 15 Mai 2024
Déplacé(e) : Torsten le 15 Mai 2024
syms G(h) h(t) t
Q = G(h)
Q = 
dGdt = diff(Q,t) % -> D(G)(h(t)) occurs
dGdt = 
s = children(dGdt)
s = 1x2 cell array
{[D(G)(h(t))]} {[diff(h(t), t)]}
% Now define G(h) and derive:
G = h^2;
dGdh = diff(G,h)
dGdh(t) = 
subs(dGdt,s{1},dGdh)
ans = 
  2 commentaires
Paul
Paul le 15 Mai 2024
Modifié(e) : Paul le 15 Mai 2024
Hi Torsten,
I think it works easier, and perhaps more generally, to define G as a function of its own dummy variable.
syms G(x) h(t) t
Q = G(h);
dGdt = diff(Q,t) % -> D(G)(h(t)) occurs
dGdt = 
% Now define G(x) and derive:
G(x) = x^2;
subs(dGdt)
ans = 
Slightly more complicated case
G(x) = x^2 + sin(x);
subs(dGdt)
ans = 
ludolfusexe
ludolfusexe le 16 Mai 2024
Thank you very much for your two answers, both are very helpful.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by