Function 'subs' different output for a (similar?) input
3 次查看(过去 30 天)
显示 更早的评论
clc
syms F(t)
F(t)=[-5*cos(2*t) -5*sin(2*t) 3*exp(2*t);
-2*(cos(2*t)+sin(2*t)) 2*(cos(2*t)-sin(2*t)) 0;
cos(2*t) sin(2*t) exp(2*t)]
invF=inv(F);
t=0;
invF0=subs(invF(t)) % Here
syms t
expAt=F(t)*invF0
DexpAt=diff(expAt)
t=0;
DexpA0=subs(DexpAt) % Here
% if I did this instead: DexpA0=subs(DexpAt(t)) gives error
% but if I do it above doesn't give error. Why?
0 个评论
采纳的回答
Divija Aleti
2021-1-25
Hi Bobby,
syms F(t)
The above command implies that 'F' is a symbolic function. Hence, the command
invF0=subs(invF(t))
does not give error.
However, 't' is defined as a symbolic variable, and so, 'DexpAt' is also a symbolic variable. As variables cannot take any input arguments, the below command gives an error.
DexpA0=subs(DexpAt(t))
For the above command to run without any error, you can define 'DexpAt' also as a symbolic function by changing
DexpAt=diff(expAt)
to
DexpAt(t)=diff(expAt)
You can check your workspace to confirm if any symbol is a symbolic function or a symbolic variable.
For additional information on symbolic variables and functions, refer to the following link:
Regards,
Divija
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Special Values 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!