Partial Derivative of Function with respect to another Function
2 次查看(过去 30 天)
显示 更早的评论
Howdy,
syms t q1(t) q2(t);
% define q1 and q2
q1 = q1(t)
q2 = q2(t)
% define a new function
q1_dot = diff(q1)
f = 5*(q1_dot)^2 + q2
diff_f_q1Dot = diff(f) ./ diff(q1_dot)
If I have the following lines of code, I would expect my output to be: 10*q1_dot, but instead I get:

Any Ideas as to what I am doing wrong? Maybe this is not the correct chain rule approach.
0 个评论
回答(1 个)
Walter Roberson
2019-9-9
expand(diff_f_q1Dot) to get
diff(q2(t), t)/diff(q1(t), t, t) + 10*diff(q1(t), t)
It is invalid to claim that the derivative of an unknown function with respect to a different unknown function will always be 0. For the derivative to be 0, the functions would have to be independent, but we cannot know that for unknown functions.
2 个评论
Walter Roberson
2019-9-9
You could use children().
There are also some new facilities for extracting parts of an expression as of r2019a that I have a hard time remembering the names of.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Numerical Integration and Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!