利用matlab计算含有阶乘的求和运算问题syms k;n=1;for N=0:10:60R=200

发布时间:2021-02-26 02:49:43

利用matlab计算含有阶乘的求和运算问题syms k;n=1;for N=0:10:60R=200;r=170;x=N/pi/R^2;E(n)=1/(exp(x*pi*(R^2-r^2)/4)-1)*symsum((x*pi*(R^2-r^2)/4)^k*k*(R^(k+1)-r^(k+1))/factorial(k+1)/R^k,k,1,inf);n=n+1;end plot(E,'-k')C

网友回答

1、未见到你贴出的错误.
2、函数factorial用数值方法计算阶乘,不适用于符号变量.用sym('(k+1)!')代替factorial(k+1).
3、无法求出显式的E,不能直接绘图,应该用double进行转换.
4、不同的符号运算内核可能得到的结果有差别.以我用的6.5版(Maple内核)和2008b(MuPad内核)为例,有以下两点不同:
(1)N=0时,6.5版得到的结果是0,2008b得到的是NaN;
(2)开始的时候我把误写为,用两个不同版本得到后面的几个点大致相同,但改正为之后,发现在不同版本中有比较明显的差异,如下图所示:
 
6.5版的结果:
利用matlab计算含有阶乘的求和运算问题syms k;n=1;for N=0:10:60R=200;r=170;x=N/pi/R^2;E(n)=1/(exp(x*pi*(R^2-r^2)/4)-1)*symsum((x*pi*(R^2-r^2)/4)^k*k*(R^(k+1)-r^(k+1))/factorial(k+1)/R^k,k,1,inf);n=n+1;end plot(E,'-k')C(图1)
2008b版的结果:
利用matlab计算含有阶乘的求和运算问题syms k;n=1;for N=0:10:60R=200;r=170;x=N/pi/R^2;E(n)=1/(exp(x*pi*(R^2-r^2)/4)-1)*symsum((x*pi*(R^2-r^2)/4)^k*k*(R^(k+1)-r^(k+1))/factorial(k+1)/R^k,k,1,inf);n=n+1;end plot(E,'-k')C(图2)究竟那个结果是正确的,我也说不准,但相对而言更相信Maple内核的结果.
以上问题属网友观点,不代表本站立场,仅供参考!