syms dependent on time with dots

Hello,
I have a question. I want to implement the time derivative of u in the following way in Matlab:
syms theta t
syms phi t
u = 5*cos(theta)+phi
u_dot = diff(u,t);
When I execute this code, I end up with u_dot = 0, which is not what I want.
Does someone maybe know how to get the u_dot in the above form?
Thanks in advance!

Answers (1)

syms A theta(t) phi(t) ;
u = A*cos(theta)+phi
du = diff(u,t)

1 Comment

Thank you for your help!
Yes this is what I wanted. I just had to use the syms function once.
But in my real code, u is a vector. It has the same structure as in this example:
syms A theta(t) phi(t);
u = [A*cos(phi)*theta;sin(phi)*phi];
du = diff(u,t);
Now u and du are converted to 1x1 symfun functions, but I actually want it to be a vector output as well.
I got this output for du:
A*cos(phi(t))*diff(theta(t), t) - A*sin(phi(t))*theta(t)*diff(phi(t), t)
sin(phi(t))*diff(phi(t), t) + cos(phi(t))*phi(t)*diff(phi(t), t)
But I want the output to be in 2x1 vector form. Do you maybe know how to do this?
Thanks!

Sign in to comment.

Products

Release

R2019a

Asked:

on 9 Oct 2020

Commented:

on 9 Oct 2020

Community Treasure Hunt

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

Start Hunting!