300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > matlab调和级数求和 科学网—疯狂的绝技------级数加速收敛的艺术 - 张江敏的博文...

matlab调和级数求和 科学网—疯狂的绝技------级数加速收敛的艺术 - 张江敏的博文...

时间:2022-05-08 08:33:59

相关推荐

matlab调和级数求和 科学网—疯狂的绝技------级数加速收敛的艺术 - 张江敏的博文...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

作业1:计算Leibniz级数的和

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

转载本文请联系原作者获取授权,同时请注明本文来自张江敏科学网博客。

链接地址:/blog-100379-1075769.html

上一篇:动态Friedel振荡

下一篇:以色列hasbara活动

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。