巴塞尔问题数值逼近方法
巴塞尔问题:计算所有平方数的导数和
∑n=1∞1n2=limn→+∞(112+122+⋯+1n2)\sum_{n=1}^{\infty} \frac{1}{n^{2}}=\lim _{n \rightarrow+\infty}\left(\frac{1}{1^{2}}+\frac{1}{2^{2}}+\cdots+\frac{1}{n^{2}}\right)n=1∑∞n21=n→+∞lim(121+221+⋯+n21)
其理论解为 1/6π21/6\pi^21/6π2
网络上有很多关于理论解的证明,此处不在赘述。下面介绍数值逼近的方法(也可以用此方法来求 π\piπ)
如果直接使用定义,通过matlab计算我们可以知道,前1e6次项,误差也有1e-6,误差还是比较大的。
n = 1e6;
num = 1:n;
a = sum(1./(num.^2))
err = zeta(2)-a
使用下面的加速算法,
ζ(2)∼∑k=1n1k2+1n−12n2+16n3−130n5+142n7−130n9\zeta(2) \sim \sum_{k=1}^{n} \frac{1}{k^{2}}+\frac{1}{n}-\frac{1}{2 n^{2}}+\frac{1}{6 n^{3}}-\frac{1}{30 n^{5}}+\frac{1}{42 n^{7}}-\frac{1}{30 n^{9}}ζ(2)∼k=1∑nk21+n1−2n21+6n31−30n51+42n71−30n91
n = 1e6;
num = 1:n;
a = sum(1./(num.^2))+1/n-1/(2*n^2)+1/(6*n^3)-1/(30*n^5)+1/(42*n^7)-1/(30*n^9);
err = zeta(2)-a
前1e6次项,误差达到了1e-16,结果让人满意。
上面的那个加速算法,是通过 Euler–Maclaurin 公式得到的。但是我自己也没有算明白,有兴趣的读者可以自己搜着看一下。
2023年2月28日19点36分