正面教材分享 http://blog.sciencenet.cn/u/wdlang 70%的以色列人是无神论者,不过他们都相信上帝给了他们那块土地。这个世界经不起思考

博文

疯狂的绝技------级数加速收敛的艺术

已有 6155 次阅读 2017-9-13 15:43 |个人分类:计算方法|系统分类:科普集锦

很多时候,我们需要计算一个无穷级数之和。比如,历史上著名的Basel问题是要计算级数


之和。这个问题之所以叫巴塞尔问题,是因为来自巴塞尔的约翰-伯努利和雅克比-伯努利为之苦恼了很久,尔后解决之的数学家欧拉也来自巴塞尔。欧拉解决这个问题时,雅克比-伯努利已经死了,约翰-伯努利为之深表遗憾。

从纯粹数学分析的角度看,这个问题颇具吸引力。众所周知,调和级数


是发散的,并且是处在临界点上的发散级数。将分母上的n改成n的平方后,级数衰减加快,就收敛了。

欧拉凭借其天才解决了这个问题。事实上,用了不到2页纸,他不仅解决了这个问题,还解决了一系列类似的问题,即分母是n的任意偶数次幂的情况。他其实得到了所谓的欧拉等式


这个等式博主曾多次用到。

欧拉得到的结果是,这个级数和为pi^2/6。很神奇,无端中出现了圆周率pi。这让人想起维格纳讲的那个笑话。他两个同学多年之后相遇了,甲问乙在干什么,乙说他在做人口预测,然后给甲看预测公式,公式里有pi,甲便说这肯定错了,人口增长跟圆周率有什么关系呢?

欧拉的解法有天马行空的天才特征,但是也正因为如此在严格性上有所缺失。

不过欧拉对自己的结果有信心,因为在这之前他曾老老实实地计算过这个级数和,跟pi^2/6吻合很好。

本来对这个级数求和是一个很困难的问题。因为很明显,级数平方衰减,如果截断到前N项,那么误差就在1/N的量级。如果想算到小数点后三位,那么得取前1000项,这个计算量令人望而生畏。可是,欧拉一口气算到了小数点后20位!这对应着截取前万亿亿项,用今天的计算机恐怕也得算上千年呢。

原来欧拉有他自己发明的绝技,即后来所谓的欧拉-马克劳林公式。大体而言,这个公式在离散和和连续积分之间建立了一座桥梁。通常物理文献里的求和化积分,其实就是取这个公式的首项,后面更细致的小数点后多位的高阶项就扔了。这个公式的准确表述如下,其中B是所谓的伯努利常数,事先已经计算好了。

用在计算级数和上,这个公式的作用是生成一个收敛非常快的渐进级数。基于这个级数,下面的matlab程序在只取原级数前10项的情况下,将级数和算到计算机机器精度,也就是小数点后15位。其中的计算量哪怕手算也是可以胜任的。



上世纪20年代,Richardson等人又发明了新办法。其想法之简单,几句话就可以说清楚。


其效率之高,居然只需要前512项就可以达到计算机机器精度!下面是针对basel问题的matlab程序:


计算结果(随着迭代,曲线依次往下):


作业1:计算Leibniz级数的和


准确的结果是pi/4。这是Leibniz很得意的发现,但是他没有用这个级数计算圆周率,为什么?你现在是否有办法?



http://wap.sciencenet.cn/blog-100379-1075769.html

上一篇:动态Friedel振荡
下一篇:以色列hasbara活动

6 姬扬 徐令予 刘全慧 苏德辰 蒋迅 yangb919

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-10-21 02:07

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部