圆周率π的计算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(本文原以徐昌茹Байду номын сангаас徐厚骏名义发表于《枣庄师专学报》1992 年第 4 期:p.88~90,这次重新整理时有增删)
附录一:现代关于圆周率的传奇
1949 年美国人用世界上第一台电子计算机“ENIAC ”花费了 70 小时计算圆 周率到 2037 位小数,不到 50 年,1997 年日本东京大学大型计算机中心教授金 田康正和助手高桥大介计算圆周率到 515.396 亿位小数,刷新了两年前他们创造 的 64 亿位小数的世界纪录。 日本京都市北区的中学教师长谷川千先生将圆周率的“简谱”用五线谱谱写 成世界上独一无二的“数学乐曲”,通过小学一年级和三年级五个班级的小学生 “试听”,效果相当显著,小学生们普遍反应“神秘的乐曲、奇妙的数学”,“尽 管不喜欢数学,但喜欢这种数学乐曲”。他将圆周率的 290 位小数作为“简谱”, 用五线谱谱写了四首教学用数学乐曲用于初级教育。 1999 年,我国毕业于陕西工商学院国际贸易专业的 25 岁广东青年吴剑青, 受 《超功能记忆》 一书中关于在记忆的范畴里, 背圆周率的要求最高、难度最大 , 并且具有国际可比性的启发,刻苦背诵圆周率,当年已能背写出圆周率的 15000 位小数(我国当时的纪录是《超功能记忆》一书作者余天拄老师的学生王立争于 1991 年创造的 11111 位小数),其当年的目标是背写出 19999 位,向回归后的澳 门特别行政区政府和澳门同胞献礼。截至 1999 年吉尼斯世界纪录大全上一个有 关记忆力的纪录是一名马来西亚人 1998 年创造的,他背写出了圆周率的 59956 位小数。 天外有天,人外有人,国外还有喜讯,马来西亚当年 21 岁的大学生沈宝翰, 在 15 小时内正确无误地背写出了圆周率的 67053 位小数,打破了吉尼斯世界纪 录。他和吴剑青一样,都没有什么特异功能,完全是凭借自己日夜不停的努力练 习。
-4-
[1] 何绍庚《割圆术和圆周率》 ,自然科学史研究所主编《中国古代科技成就》 ,中国青年出 版社 1978 年 北京。p101~110。 [2] Г.М.菲赫金哥尔茨著,北京大学高等数学教研室译《微积分学教程》第二卷第二分 册,人民教育出版社,1978 年 3 月北京。p.372~374。 [3] Borwein,J.M.and Borwein,P.B.1987,Pi and the AGM:A Study in Analytic Number Theor y and Computational Complexity (New York:Wiley)。 [4] W.H.Press 等著,傅祖芸等译《C 语言数值算法程序大全》 (第二版) ,电子工业出版 社,1995 年 10 月北京。p.773~782
-1-
须准确地计算出圆的内接正 12288 边形的边长和圆内接正 24576 边形 的面积,才能使求出的π准确到小数点后七位。这是一项非常艰巨和 复杂的计算工作, 显然, 只有掌握纯熟的理论和技巧, 具备踏踏实实 、 一丝不苟的研究精神,才能取得这样杰出的成就。 十七、 八世纪, 数学在欧洲飞速发展, 高等数学在欧洲研究成熟 , 给π的计算提供了新的工具。利用高等数学知识,我们很容易把反正 切函数和反正弦函数展开成泰劳级数, 另外又知道 tan(π/4)=1、sin(π /6)=1/2,因而得出两个π的级数展开式,其一 π/4=1-1/3+1/5-1/7+… 这是德国数学家莱布尼兹(1646 年至 1716 年)于 1674 年得出 的, 称为莱布尼兹级数。 这是第一个π的级数展开式, 但它收敛很慢 , 用它来计算π也得不出更精确的数值。其二 π/3=1+12/(4×3!)+(12×32)/(42×5!)+… 这是英国大科学家牛顿(1642 年至 1727 年)于 1676 年得出的, 称牛顿级数。这一公式于明朝初年传入中国,但没有证明方法。当时 中国的科学技术已逐渐形成了落后的局面,为了提高数学水平,一些 比较优秀的数学家吸取了陆续传入的西方数学知识, 接受了如三角函 数、 对数等西方数学的重要成就, 当时的数学家、 天文学家明安图 (? 至 1765 年)从乾隆初年(1736 年)起对上述牛顿级数及其它两个级 数公式进行研究,历时近三十年,证明了这三个公式,同时又求得了 其它展开三角函数和反三角函数的六个新级数公式,著有《割圆密率 捷法》一书,为我国用级数计算π开了先河。在这一时代,世界上很 多著名的科学家为计算π作过努力,甚至奋斗终身。 十九世纪, π的计算已准确到五百多位十进位, 进入二十世纪五 、 六十年代,随着电子计算机的出现为π的计算提供了有力工具。用电 子计算机计算π,一是为了提高π的有效数字位数,另一个目的是为 了检验当时计算机的性能,所以在计算过程中,中途出错的也大有人 在。 ㈡ 初等数学计算方法 π是圆的周长与直径之比, 圆的周长永远大于圆内接多边形的周 长,而永远小于圆外切多边形的周长,当边数无限增加时,这三种周 长又相当接近,这就是计算圆周长的基础。 如果已经知道圆 O 的内接正 n 边形的一个边长 AB=Ln,我们可 求出内接正 2n 边形的一个边长。从图中看出
Compution of π Abstract: In this paper, we introduce development of π ,computation method of π ,and computional of π on the computer. Key words: π
参考文献:
-3-
㈣ 用电子计算机计算π的精确值 到目前,使用大、中型计算机系统计算π的精确值已司空见惯, 九十年代,日本的学者两次创造了计算精度的纪录,精度达到几百亿 位十进位。八十年代以后,PC 机(Personal Computer) 以飞快的速度发 展,运算速度在加快,内存容量在加大,并且已相当普及。用 PC 机 计算π的精确值已是很多人可以办得到的。与此同时,更有些学者研 究了新的计算π的分析算法,比较典型的就有 J.M.Borwein 和 P.B.Borwein[3],提出的基于 AGM 法(算术几何平均法)的π二 次收敛算法,他们对于π的算法之一是,首先设置初始值为: X0 = sqr(2) Pi0 = 2 + sqr(2) Y0 = sqr(sqr(2)) 然后,当 i=0,1,…重复下述迭代 Xi+1 = (1/2)×[sqr(Xi)+1/sqr(Xi)] Pii+1 = Pii×[(xi+1+1)/(Yi+1)] Yi+1 = [Yi×sqr(Xi+1)+1/sqr(Xi+1)]/(Yi+1) 一直迭代到 Pi∞。其中 sqr(x)为 x 的平方根。 当今,在编写计算圆周率π的程序时,上述迭代公式和马信公式 都是很好的选择,往往只是个人的偏爱。文献[4]给出了使用上述迭代 公式完整的 C 语言程序,下面附录是作者给出的一个使用马信公式 编写的在 PC 机上运行在 MS-DOS 环境的 C 语言程序, 在现今主流 PC 机型上,计算 10000 位十进位精度的π也只需要几秒钟时间,计算最 大精度位数受 640Mb 常规内存剩余空间的限制, 一般均可超过 30 万 位十进位,程序运行时会自动提示可能设置的最大十进位位数,计算 所需机器运行时间与计算精度位数的平方成正比。文献[4] (p.782,图 20.6.1)中,列出了π的前 2398 位十进位数计算数据,在附表中列出 了本文附录二程序计算结果的前 2450 位十进位数π。
-2-
AH=L2n=sqr[(AM)2+(HM)2] AM=Ln/2 (OM)2 =(OA)2 -(AM)2 OA=OH=R(半径) HM=OH-OM=R-sqr[R2-(Ln/2)2] 因而得出 L2n=sqr{(Ln/2)2+[R-sqr(R2-(Ln/2)2)]2} 圆内接正 n 边形的周边总长为 n×Ln ,如 n 充分大,我们可以 认为 π=(n×Ln)/(2×R)。 其中 sqr(x)为 x 的平方根。 我们知道圆内接正六边形的一个边长 L6=R,不失一般性,可以 令 R=1,从而逐步算出 n=2x×6 边形的一个边长,只要 x 足够大,π 就可以计算得足够精确。 ㈢ 高等数学计算方法 根据三角函数知识我们知道 tan2α=2×tanα/(1-tan2α) 令 α=tan-11/5,于是 tanα=1/5, tan2α=(2/5)/(11/25)=5/12, tan4α=(10/12)/(1-25/144)=120/119 由于这个数很接近于 1,显然可知角度 4α接近于π/4,令 β=4α-π/4, 又知 tan(4α-π/4)=[tan4α-tan(π/4)]/[1+tan4α×tan(π/4)] 即可知 tanβ=(120/119-1)/(1+120/119)=1/239 于是我们知道了α=tan-11/5,β=tan-11/239 而π=4×(4α-β)=16α- 4β,把反正切函数展开成泰劳级数为 tan-1x=x-(1/3)x3+(1/5)x5-(1/7)x7+… x2<1 我们很容易就得出了级数公式 π=16×[1/5-(1/3)×(1/53)+(1/5)×(1/55)-(1/7)×(1/57)+…] -4×[1/239-(1/3)×(1/2393)+(1/5)×(1/2395)-(1/7)×(1/2397)+…] 这就是著名的马信公式[2], 是由英国数学家马信(J·Machin,1680 年至 1751 年)在 1706 年时首先推导出来的。这个级数收敛很快,大 约只需要半小时就可用手工计算出π的七位小数, 马信当年曾用这一 级数公式把π计算到 100 位小数。
(写于 1999 年)
-5-
附录二:精确计算π的 C 语言程序
/* 本程序运行在 MS-DOS 模式下,用于计算任意位精度的圆周率π,由于采用了远指针 函数 farcalloc() 并使用了两个“huge”型数组,计算的位数可以更多。值得注意的是,程序 运行的时间与计算位数的平方成正比。本程序在 Turbo C++ 1.0 编译通过。在编译时由于 “huge”型数组而“Warning”,但运行是正常的。在当前流行的主流 PC 机上精确计算 10000 位精度的π值, 使用本程序大概需要几秒钟最多是十几秒钟。 可能计算的位数取决与可用内 存。 */ # include <math.h> # include <stdio.h> # include <stdlib.h> # include <string.h> # include <alloc.h> # include <time.h> # include <dos.h> # include <conio.h> # include <dir.h> # include <ctype.h> # define FLUX1 80 # define NATU1 25 # define FLUX2 956 # define NATU2 57121 # define BASIC 1e10 double huge *addu; double huge *flux; unsigned long int MAX; unsigned long int size_max; extern unsigned __stklen=65535; void count(unsigned int size_1, char sign, double flu, double nat) { double mk,m1,m2,l,n,team; unsigned int j,bbit; char fig; extern double huge *addu; extern double huge *flux; for (j=0;j<=size_1;j++) flux[j]=0;
圆周率π的计算
徐厚骏 摘 要:文章简单介绍了π的发展史,π的计算方法,以及在微机上π的计算。 关键词:π
圆周率π是我们从小学时就接触到的一个数学常数, 在计算圆周 长、圆面积、球表面积和球体积时都要用到它。π是一个无限不循环 小数,称为“无理数”,π也不是一个有理系数的代数方程的根,即 它不能用有限次加减乘除或开各次方等代数运算求出来, 数学上称为 “超越数”(F.Lindemann 证明了其超越性) 。大家常用的值是:π≈ 3.1416。 ㈠ 历史回顾 中国两汉(公元前 206 年至公元 220 年)以前一直使用 “周三径一”, 即取π≈3, 这实际上是以圆内接正六边形的 6 边总长代替了圆周长。 东汉天文学家张衡(公元 78 年至 139 年)求得π≈101/2 (≈3.1622),创 下了当时的世界纪录。 直到魏晋之际的杰出数学家刘徽于公元 263 年 在为古代数学名著《九章算术》作注时,提出用割圆术来计算圆周率 的方法,含有极限的概念,是他的最大创造,他正确地计算出圆内接 正 192 边形的面积,从而得到近似值为π≈157/50 (≈3.14) ,又计算 出圆内接正 3072 边形的面积,得到近似值 π≈3927/1250 (≈ 3.1416)。刘徽割圆术为圆周率的研究工作奠定了坚实可靠的理论基 础,在数学史上占有十分重要的地位。 南北朝时南朝科学家祖冲之(公元 429 年至 500 年)计算出 3.1415926<π<3.1415927 同时还确定了π的两个分数形式的近似值:约率为π=22/7 (≈ 3.14),密率为π=355/113 (≈3.1415929)。把π计算准确到小数点后 七位,又是当时的世界纪录,直至一千年以后,十五世纪阿拉伯数学 家阿·尔·卡西和十六世纪法国数学家维叶特才打破了他的纪录。至 于密率,也是在一千年后由德国人奥托和荷兰人安托尼兹重新得到, 在欧洲称作安托尼兹率的π近似值,实际上就是祖冲之的密率。 祖冲之的计算方法已无从考起, 但从中国数学研究的继承性和当 时的数学研究来看,祖冲之仍应是采用的刘徽割圆术[1],这样他就必
相关文档
最新文档