How to define a symbolic function q such that diff(q, t) gives me q_dot
5 次查看(过去 30 天)
显示 更早的评论
So I want to define a symbolic variable q that is a function of t
and want the script to give me
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 个评论
回答(1 个)
Walter Roberson
2020-3-23
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 个评论
Walter Roberson
2020-3-23
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()
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!