2

我有一个函数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 的开发人员不能就这么悬着这么大的尾巴,对吧?

我真的很感谢你的帮助。谢谢!

4

0 回答 0