Substitute partial differential into symfun

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!

 Respuesta aceptada

Torsten
Torsten el 15 de Mayo de 2024
Movida: Torsten el 15 de Mayo de 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 comentarios

Paul
Paul el 15 de Mayo de 2024
Editada: Paul el 15 de Mayo de 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 el 16 de Mayo de 2024
Thank you very much for your two answers, both are very helpful.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Mathematics en Centro de ayuda y File Exchange.

Productos

Versión

R2022a

Preguntada:

el 15 de Mayo de 2024

Comentada:

el 16 de Mayo de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by