1

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

信息总和

在给定 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

我想要一个明确的值,假设总和收敛。我究竟做错了什么?返回 symsum 结果时,Matlab 似乎不计算 exp() 。如何告诉 Matlab 计算评估指数?

4

3 回答 3

3

转换成双倍

double(symsum(...))
于 2013-04-12T02:32:52.640 回答
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

于 2013-04-12T08:04:32.157 回答
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
于 2016-05-19T07:45:54.167 回答