Matlab 符号表达式 求微分 TOT程序书上有Matlab 符号表达式 求微分的例子,我用matlab R2013a运行了一下,结果出不来T_T>> y='4*x^4+3*x^3+2*x^2+x+1';>> diff(y)ans =Columns 1 through 16-10 78 -26 -42 -9 8 -9 78 -26 -43 -8 7 -
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/03 14:03:16
![Matlab 符号表达式 求微分 TOT程序书上有Matlab 符号表达式 求微分的例子,我用matlab R2013a运行了一下,结果出不来T_T>> y='4*x^4+3*x^3+2*x^2+x+1';>> diff(y)ans =Columns 1 through 16-10 78 -26 -42 -9 8 -9 78 -26 -43 -8 7 -](/uploads/image/z/6718665-57-5.jpg?t=Matlab+%E7%AC%A6%E5%8F%B7%E8%A1%A8%E8%BE%BE%E5%BC%8F+%E6%B1%82%E5%BE%AE%E5%88%86+TOT%E7%A8%8B%E5%BA%8F%E4%B9%A6%E4%B8%8A%E6%9C%89Matlab+%E7%AC%A6%E5%8F%B7%E8%A1%A8%E8%BE%BE%E5%BC%8F+%E6%B1%82%E5%BE%AE%E5%88%86%E7%9A%84%E4%BE%8B%E5%AD%90%2C%E6%88%91%E7%94%A8matlab+R2013a%E8%BF%90%E8%A1%8C%E4%BA%86%E4%B8%80%E4%B8%8B%2C%E7%BB%93%E6%9E%9C%E5%87%BA%E4%B8%8D%E6%9D%A5T_T%3E%3E+y%3D%274%2Ax%5E4%2B3%2Ax%5E3%2B2%2Ax%5E2%2Bx%2B1%27%3B%3E%3E+diff%28y%29ans+%3DColumns+1+through+16-10+78+-26+-42+-9+8+-9+78+-26+-43+-8+7+-)
Matlab 符号表达式 求微分 TOT程序书上有Matlab 符号表达式 求微分的例子,我用matlab R2013a运行了一下,结果出不来T_T>> y='4*x^4+3*x^3+2*x^2+x+1';>> diff(y)ans =Columns 1 through 16-10 78 -26 -42 -9 8 -9 78 -26 -43 -8 7 -
Matlab 符号表达式 求微分 TOT
程序书上有Matlab 符号表达式 求微分的例子,我用matlab R2013a运行了一下,结果出不来T_T
>> y='4*x^4+3*x^3+2*x^2+x+1';
>> diff(y)
ans =
Columns 1 through 16
-10 78 -26 -42 -9 8 -9 78 -26 -43 -8 7 -8 78 -26 -44
Columns 17 through 20
-7 77 -77 6
Matlab 符号表达式 求微分 TOT程序书上有Matlab 符号表达式 求微分的例子,我用matlab R2013a运行了一下,结果出不来T_T>> y='4*x^4+3*x^3+2*x^2+x+1';>> diff(y)ans =Columns 1 through 16-10 78 -26 -42 -9 8 -9 78 -26 -43 -8 7 -
由于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