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!

 采纳的回答

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 个评论

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.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Mathematics 的更多信息

产品

版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by