对于给定的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计算评估指数?
答案 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==1
和x==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