很多时候,我们需要计算一个无穷级数之和。比如,历史上著名的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://blog.sciencenet.cn/blog-100379-1075769.html

上一篇:动态Friedel振荡

下一篇:以色列hasbara活动

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

  1. matlab画复变函数,科学网—复数复变函数的Matlab计算与绘图 - 周铁戈的博文

    复数复变函数的Matlab计算与绘图 周铁戈 复数的表示 存在两种表示方法,一种是代数式,一种是指数式,在Matlab中的方式如下: >> z=1+2i            #代数式,1 ...

  2. matlab基本矩阵运算,科学网—matlab中矩阵基本运算 - 成爱芳的博文

    以矩阵A为例: (1)转置矩阵求取   AT transpose(A) >> A=[1 0 3; 2:4; 3 1 0] A = 1     0     3 2     3     4 3 ...

  3. matlab聚类算法,科学网—matlab-聚类算法笔记 - 孙月芳的博文

    MATLAB提供了两种方法进行聚类分析: 1.利用clusterdata 函数对数据样本进行一次聚类,这个方法简洁方便,其特点是使用范围较窄,不能由用户根据自身需要来设定参数,更改距离计算方法: 2. ...

  4. matlab 水平投影,科学网—Matlab中如何将投影信息写入到shape文件中 - 朱永超的博文...

    在Matlab中保存shape格式数据时,没有具体的函数可以将投影信息直接写入到shape文件中,不过可以通过另外一种方式实现.看下shape格式的文件不难发现,shape文件的投影信息是一个单独的文 ...

  5. matlab流量结构分析,科学网-分享求解“结构分解分析(SDA)”各项均值的MATLAB程序-计军平的博文...

    点此下载(MATLAB File Exchange) [2015.02.18补充]其他研究人员的MATLAB代码 Sayago-Gomez, Juan Tomas, (2014), Matlab Co ...

  6. matlab的annotation,科学网—annotation in matlab Graph - 夏靖的博文

    matlab 中annotation的操作可以象windows的"画图"一样很方便的对图像进行标注,但如果所绘的图需要修改,其标注也需要再手工重复操作一次,所以在这种情况下用脚本进 ...

  7. matlab全景图素材,科学网—meshlab查看360度全景图像 - 王琳的博文

    一. 常见的360o全景照片,图像长宽比例通常为2:1. 二 . 用matlab的sphere()函数计算球面mesh的Vertex坐标[x,y,z]以及纹理坐标[xt,yt] N = 100; [x ...

  8. matlab 数据分割,科学网—MATLAB把一个包含多个站点数据的文件分割到各个站点单独的文件夹 - 张乐乐的博文...

    有65个站点的气象数据,但是这些数据全部在一个文件中,本程序主要想着把每个站点的数据放在各个单独的文件夹中.下面是我给写的程序: clear;clc %读取数据 shuju=importdata('C ...

  9. matlab syms min,科学网—Matlab中的syms与conj - 孔令才的博文

    Matlab提供了强大的符号计算功能,主要利用syms函数创建符号变量,例: >> syms x a b; >> diff(a^(b*x)+exp(a*x^2+b*x),x) ...

最新文章

  1. 客户端连ORACLE
  2. 【Python基础】Python之collections库-Counter
  3. 详细分析图像形态学操作
  4. uwp应用在debug模式下运行正常,编译为release版本的时候抛出异常
  5. struts基本概念(2)
  6. 你见过的MCU最高GPIO翻转频率是多少?
  7. C#中使用FFMPEG切割、合并视频。
  8. CENTOS 7 YUM 没有可用的软件包 NGINX
  9. 思考问题的一些方法:一般化,特殊化和归纳类比
  10. android revre view,MK802 4.0.4 CWM Recovery
  11. python客户端软件开发_用 Python 实现一个简易版 HTTP 客户端
  12. mpls工作原理通俗解释_MPLS的工作原理
  13. 联盛德W801系列9-wifi和4G模块(air724ug)并存使用MQTT总结
  14. 1044: 不及格率 Python
  15. Jenkins报错'Gradle build daemon disappeared unexpectedly'的问题解决
  16. Could not load extension class org.apache.cxf.transport.http_jetty.JettyDestinationFactory.
  17. 今年底出版《算法竞赛》,这是大纲
  18. appinventor HTML5,App Inventor编程教程-第18课-创建动画应用
  19. android简历!写给即将正在找工作的Android攻城狮,已拿offer
  20. Linux主机名查看和更改

热门文章

  1. 体系设计建模软件系统
  2. 历史上消失的十天--儒略日(Julian Days)的来历
  3. 【c++primer第五版】第十章习题答案
  4. 直播预告|5月26日14:00 AAAI 专场三
  5. plt画网格图_matplotlib子图与多种图形绘制
  6. 用CSS实现一个聚光灯效果
  7. 节点网络计划图计算机,工程网络计划(网络图)
  8. 10种基于MATLAB的方程组求解方法
  9. 从零开始学android:Android中的基本控件(上)
  10. VS无法打开源文件及无法打开链接库文件的解决方法