How to define a symbolic function q such that diff(q, t) gives me q_dot
5 views (last 30 days)
Show older comments
So I want to define a symbolic variable q that is a function of t
and want the script to give me ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/278994/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/278994/image.jpeg)
I do not know what the function q is !! I just know that q is a function of t and I want to symbolically output qdot for differentation of q w.r.t t
% My approach that did not work
% Define the number of degrees of freedom
n_dof = 2;
syms t
% Define the generalized coordinates and their derivatives
q = sym('q',[n_dof,1],'real');
q_dot = sym('q_dot',[n_dof,1],'real');
q_ddot = sym('q_ddot',[n_dof,1],'real');
diff(q, t)
% I want diff(q, t) to give me q_dot
% and diff(q_dot, t) to give me q_ddot in symbolic form
0 Comments
Answers (1)
Walter Roberson
on 23 Mar 2020
The only way to get diff(q, t) to return q_dot is if you define
q = int(q_dot, t)
I would suggest to you that instead you do things like
dq = diff(q, t)
f = some expression
f_pretty = subs(f, dq, q_dot)
1 Comment
Walter Roberson
on 23 Mar 2020
Note that you will need to define q as a function or else the diff() will return 0.
Also I recommend that you read through the first example in the documentation for odeFunction()
See Also
Categories
Find more on Symbolic Math 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!