Matlab 符号表达式 求微分 TOT程序书上有Matlab 符号表达式 求微分的例子,我用mat

发布时间:2021-02-26 03:52:36

Matlab 符号表达式 求微分 TOT程序书上有Matlab 符号表达式 求微分的例子,我用matlab R2013a运行了一下,结果出不来T

网友回答

由于diff函数有多个(可以用which diff -all命令查看),调用的时候就会涉及到调用哪一个的问题.
 
MATLAB会调用哪个函数,是由该函数的参数类型决定的,例如对于符号变量(sym对象),很自然就会调用符号数学工具箱中求微分的那个函数,而对于普通的double数值类型,则会调用求差分的那个函数.函数重载的概念听说过吧?
 
现在楼主给的参数是char字符类型,在早期的版本里(例如6.5、2007b),符号数学工具箱专门提供了一个对char类型的重载函数 toolbox\symbolic\@char\diff.m,其有效代码只有一句:y = diff(sym(f),varargin{:});
但不知道什么原因,这个重载的形式在2013a里面消失了,所以楼主的语句就会把char转换为double,然后调用求差分的那个diff,就得到了你现在看到的结果.
 
比较稳妥的方式是,把符号类型的东西明确声明为sym类型,那样就不会错了:>> y=sym('4*x^4+3*x^3+2*x^2+x+1');
>> diff(y) 
ans = 
16*x^3+9*x^2+4*x+1
以上问题属网友观点,不代表本站立场,仅供参考!