巴塞尔问题数值逼近方法

巴塞尔问题:计算所有平方数的导数和

∑ n = 1 ∞ 1 n 2 = lim ⁡ n → + ∞ ( 1 1 2 + 1 2 2 + ⋯ + 1 n 2 ) \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=1n21=n+lim(121+221++n21)

其理论解为 1 / 6 π 2 1/6\pi^2 1/6π2

网络上有很多关于理论解的证明,此处不在赘述。下面介绍数值逼近的方法(也可以用此方法来求 π \pi π

如果直接使用定义,通过matlab计算我们可以知道,前1e6次项,误差也有1e-6,误差还是比较大的。

n = 1e6;
num = 1:n;
a = sum(1./(num.^2))
err = zeta(2)-a

使用下面的加速算法,
ζ ( 2 ) ∼ ∑ k = 1 n 1 k 2 + 1 n − 1 2 n 2 + 1 6 n 3 − 1 30 n 5 + 1 42 n 7 − 1 30 n 9 \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=1nk21+n12n21+6n3130n51+42n7130n91

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分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值