如何在matlab中计算这个无限和?

时间:2013-04-12 02:29:33

标签: matlab

对于给定的x和tau,我想在Matlab中计算以下无限和:

infsum http://i47.tinypic.com/16ih3m1.jpg

我尝试了以下代码,给定x = 0.5和tau = 1:

symsum((8/pi/pi)*sin(n*pi*0.5)*sin(n*pi*0.5)*exp(-n*n*pi*pi)/n/n,1,inf)

但我明白了:

(228155022448185*sum((exp(-pi^2*n^2)*((exp(-(pi*n*i)/2)*i)/2 - (exp((pi*n*i)/2)*i)/2)^2)/n^2, n == 1..Inf))/281474976710656

我想要一个显式值,假设总和收敛。我究竟做错了什么?看来Matlab在返回symsum结果时不会计算exp()。如何告诉Matlab计算评估指数?

3 个答案:

答案 0 :(得分:3)

转换为双重

double(symsum(...))

答案 1 :(得分:2)

只是为了向您展示一种不需要符号工具箱的方式,

summ  = 0;
summP = inf;
n = 1;
while abs(summP-summ) > 1e-16
    summP = summ;    
    summ = summ + sin(n*pi*0.5)*sin(n*pi*0.5)*exp(-n*n*pi*pi)/n/n;
    n = n + 1;
end

8/pi/pi * summ

仅在1次迭代后收敛(非常明显,因为exp(-4*6.28..)/n/n非常小,sin(..)始终位于[-1 1]中的某个位置。因此,给定tau==1x==0.5,无限和基本上是n==1的值。

答案 2 :(得分:0)

首先应使用syms定义变量“n”。然后,您可以在symsum代码中包含此变量。

这就是我的所作所为:

syms n; AA = symsum((8/pi/pi)*sin(n*pi*0.5)*sin(n*pi*0.5)*exp(-n*n*pi*pi)/n/n,n,1,inf); BB = double(AA)
BB = 4.1925e-05