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!

 Accepted Answer

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 Comments

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 = 
Thank you very much for your two answers, both are very helpful.

Sign in to comment.

More Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Products

Release

R2022a

Asked:

on 15 May 2024

Commented:

on 16 May 2024

Community Treasure Hunt

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

Start Hunting!