soberprogress 发表于 2008-11-7 22:05

matlab 如何对阶乘求和??

syms x w k ;
N=10;
fg=symsum(1/factorial(k)*(x/w)^(2*k),k,0,N);
运行报错,
??? Error using ==> fix
Function 'fix' is not defined for values of class 'sym'.

Error in ==> D:\MATLAB6p5\toolbox\matlab\specfun\factorial.m
On line 14 ==> if (length(n)~=1) | (fix(n) ~= n) | (n < 0)




不知该如何是好!请大侠明示!

谢谢!

[ 本帖最后由 soberprogress 于 2008-11-7 22:26 编辑 ]

sigma665 发表于 2008-11-7 22:19

回复 楼主 soberprogress 的帖子

报什么错?

rocwoods 发表于 2008-11-8 00:02

factorial的参数只能是数值型的。符号工具箱中,MATLAB没有对其重载。对于阶乘,建议用gamma函数n! = gamma(n+1),不仅适合于数值型而且适合于符号型。因此,这样就可以了:
syms x w k ;
N=10;
fg=symsum(1/gamma(k+1)*(x/w)^(2*k),k,0,N);

soberprogress 发表于 2008-11-8 16:01

回复 板凳 rocwoods 的帖子

很好,谢谢你!好人一生平安!
页: [1]
查看完整版本: matlab 如何对阶乘求和??