我有一个函数f(x(t))=sin(x(t))
我想在MATLAB中区分有时与t
有关,有时与x(t)
有关。在MATLAB中,我输入:
>> syms x(t);
>> f=sin(x(t));
>> diff(f,t)
ans =
cos(x(t))*diff(x(t), t)
然而,当我区分x(t)
时,我得到:
>> diff(f,x)
Error using sym/diff (line 26)
All arguments, except for the first one, must not be symbolic functions.
解决方法是:
>> syms temp;
>> subs(diff(subs(f,{x},{temp}),temp),{temp},{x})
ans =
cos(x(t))
但是对于我在代码中实际处理的大型函数,subs
非常慢 - 这是我代码中的瓶颈。当然有办法直接做diff(f,x)
?!我的意思是MathWorks的开发人员不能只留下如此巨大的尾巴,对吗?
我非常感谢你的帮助。谢谢!