Chain rule with symbolic toolbox

Hello,
I'm trying to derive a symbolic function that is a function of another symbolic function. Say that I have a function x that is an unspecified function x=x(y(theta)). I'd like to take the derivative of x with respect to theta: dx/dtheta=dx/dy * dy/dtheta
In Matlab I write
syms theta y(theta);
x=sym('x(y(theta))');
diff(x,theta)
The answer I get is 0. I really cannot figure out what is wrong with the code. Any help is greatly appreciated. Thanks!

 Accepted Answer

This:
syms theta y(theta) x(y)
x = x(y)
Dyt = diff(y,theta)
Dxt = diff(x,theta)
produces:
x =
x(y(theta))
Dyt(theta) =
D(y)(theta)
Dxt =
D(x)(y(theta))*diff(y(theta), theta)
Is that what you wanted?

6 Comments

Thanks, this works!
My pleasure!
I am trying to find the derivative of "A" with respect to "a", but I get some errors:
syms t a(t) b(t) A(a,b)
A = a^2 + b^2;
B = formula(A);
aS = formula(a);
D_A_t = diff(B,aS);
error:
Error using sym/diff (line 70)
Second argument must be a variable or a nonnegative integer
specifying the number of differentiations.
Error in (line 5)
D_A_t = diff(B,aS);
Please advise.
Post this as a new Question. Much has changed in the last 6 years. Be sure to mention the version/release of MATLAB that you are using.
Thanks man.This helped me a lot.
Meet Mevada — My pleasure!

Sign in to comment.

More Answers (0)

Categories

Find more on Financial Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!