Symbolic math- substitute a derivative function with subs()?
10 views (last 30 days)
Show older comments
Hello everyone,
I've got a symbolic derivative :
syms J phi(t) Ja J0 x1 x2
J=J0-Ja*cos(2*phi);
dJ=diff(J)
This yields:
dJ(t)=2*Ja*D(phi)(t)*sin(2*phi(t))
Now, in this function I want to substitute phi(t) for x1 and D(phi)(t) for x2.
subs(dJ(t),phi,x1)
ans =
2*Ja*D(phi)(t)*sin(2*x1)
but this doesnt work for D(phi)(t)
>> subs(dJ(t),D(phi)(t),x2)
Error: ()-indexing must appear last in an index expression.
>> subs(dJ(t),D(phi),x2)
Undefined function 'D' for input arguments of type 'symfun'.
>> subs(dJ(t),D(phi(t)),x2)
Undefined function 'D' for input arguments of type 'sym'.
How could it be substituted by x2?
0 Comments
Answers (3)
Andrew Horchler
on 18 Nov 2014
A late answer, but maybe this will help others. See my answer here on StackOverflow.com/Matlab. In this case you can substitute both variable at once via:
syms phi(t) Ja J0 x1 x2
J = J0-Ja*cos(2*phi);
dJ = diff(J,t)
dphi = diff(phi,t)
subs(dJ,{phi,dphi},{x1,x2})
You also don't need to define J as symbolic using syms since it gets allocated as such when you create the equation. I do usually like to make explicit the variable that I'm differentiating with respect to as well.
0 Comments
See Also
Categories
Find more on Assumptions in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!