圆周率π的几种计算方法与计算机简单实现_第1页
圆周率π的几种计算方法与计算机简单实现_第2页
圆周率π的几种计算方法与计算机简单实现_第3页
圆周率π的几种计算方法与计算机简单实现_第4页
圆周率π的几种计算方法与计算机简单实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

..学年论文题目:圆周率的几种计算方法及计算机简单实现学院:数学与统计学院专业:数学与应用数学指导马巧珍学生__帅兴杰学号:200971010335联系方式:答辩小组评定成绩答辩委员会终评成绩说明采用五级分制,即2.评语内容包括:学术价值、实际意义、达到水平、学术观点及论证有无错误等。摘要:本文简要的介绍了圆周率的起源及其计算方法,正是圆周率这个数的特殊性,致使从古到今许多数学家为之奉献毕生的经历来研究的精确值。因此,用什么样的方法计算使其值更加精确,这是一个很值得研究的问题。本文在总结前人计算方法的基础上,加入了计算机的简单实现算法,并附带了了计算结果。关键词:圆周率,计算方法,正多边形,连分数,程序实现,运行结果一、很早以前就有了从人类祖先的祖先诞生在这个地球上算起,经历了几千万年的时间。我们看见的太阳几乎总是圆的,而月亮由于地球的遮挡,有圆有缺。椭圆、抛物线,双曲线等都是很晚才发现的曲线。地球诞生之前,太阳就是圆形的。月亮大概是和地球同时诞生的.在使用工具和火不久,人类对太阳和月亮,或者对动物和鱼类的眼睛是圆的,也就是说对圆这种形状一定感到很奇妙。远古,数刚诞生时,肯定只在1和许多个之间有区别。而且,很早以前,就只考虑1和2这两个数。以后因为1个人有2只脚和2只手,2个人就有4只脚和4只手,1头家畜有4只脚,2头家畜有8只脚,等等。不久,就知道了比例的概念。到了这个阶段人们自然关顾圆周的长度与圆的直径之间一定的比例常数。尽管圆有大有小,但对一个圆来说,其周长与直径之间的比例常数就是圆周率二、的几种计算方法有一个关于圆周率的歌谣,盛行于古代:"山巅一寺一壶酒,尔乐苦煞吾,把酒吃,酒杀尔,杀不死,乐而乐。"圆周率是圆的周长与直径之比,表示的是一个常数,符号是希腊字母。人们为了计算圆周率,公元前便开始对它进行计算。魏晋时期刘徽曾于公元263年用割圆术的方法求到3.14,这被称为"徽率"。在公元460年,祖冲之应用了刘徽的割圆术〔也就是下面提到的正多边形的方法,算得圆周率为3.1415926。祖冲之所求的值,保持了1000多年的世界纪录。1596年,荷兰数学家鲁道夫经过长期的努力和探索,把值推算到15位小数,打破了祖冲之长达1000多年的纪录,后来他本人又把这个数推进到35位。18世纪初,圆周率达到72位。19世纪时,圆周率又求到140位、200位、500位。1873年,威廉欣克用了几十年时间,将π值算到707位。到了1946年,世界上第一台电子计算机<ENIAC>问世美国,有人在计算机上用了70个小时,算出圆周率达到2035位。1955年达到10017位,1962年达到10万位。1973年达到100万位,1981年日本数学家把它推算到200万位。1990年美国数学家继续新的计算,将值推到新的顶点4.8亿位。经过长时间艰苦的计算,值只是个近似值,这是一个永不循环的数学计算,也是数学史上的马拉松。下面介绍几种计算的方法:公元前利用正多边形计算公元前1650年,埃及人著的兰德纸草书中提出=〔4/33=3.1604。但是对的第一次科学的尝试应归功于阿基米德。阿基米德计算值是采用内接和外切正多边形的方法。数学上一般把它称为计算机的古典方法。在公元前3世纪,古希腊的数学非常发达,为了使得数学计算简便,人们选一个以长度为直径的圆。这样圆的周长在任何内接正多边形的周长和任何外切正多边形的周长之间。这样就容易得到的上下界,因为计算内接和外切正多边形的财长比较简单。阿基米德也掌握了这一原理,他从内接和外切严六边形开始,按照这个方法逐次进行下去,就得出12、24、38、96边的内拉和外切正多边形的财长,他利用这一方法最后得到值在223/71,22/7之间,取值为3.14。这一方法和数值发表在他的论文集《圆的量度》中。我国古代第一个把求圆周率近似值的方法提高到理论高度上来认识的是刘微。他独立地创造了"割圆术",并系统而严密地用内接正多边形来求得圆周率的近似值,他从内接正六边形算起,计算到圆内接正192边形的面积,从而得出3.141024<<3.142704这一值,后来他沿着这一思路继续前进,一直算到圆内接正3072边形时,得到了=3927/1250,的值为3.14159。这是当时得到的最精确的取值。南北朝时期,我国的大数学家祖冲之采用刘徽的割圆术,一直算到圆内接正24576边形,从而推得:3.1415926<<3.1415927这一成果记载在他的著作《缀术》中。可惜的是,这本书已经失传。为了应用方便,祖冲之对圆周率还给出了两个分数值355/113和22/7,前者称之为"密率",后者称之为"给率"。其中"密率"355/133是一个很有趣的数字,分母分子恰好是三个最小奇数的重复,既整齐美观、又便于记忆。355/113=3+42/<72+82>也是很巧妙的组合。它与的实际值相对误差只有0.00000009。〔二连分数计算用连分数计算的人不多,要多次展开。首创连分数的是一个叫盖托蒂的数学家。布朗开罗〔1620—1684得到的表达式为这个式子源于下式在一定范围内计算上式,先采用繁分数形式。再计算可得因为在展开式中取的项数有限,所以值没有超过3。由上可见,计算量很大,是古人对计算感兴趣吗?对现在的年轻人来讲,这是枯燥无味的,古人也许因为娱乐或兴趣而高兴这么干下去。计算机程序实现〔C语言:#include"stdio.h"main<>{inti;floata[8],p; a[7]=0;for<i=7;i>1;i--> {a[i-1]=2+<2*i-1>*<2*i-1>/a[i]; } a[0]=1+1/a[1];p=4/a[0];/*设为字母p*/ printf<"p=%f\n",p>; }运行结果:P=2.976046〔三一些计算圆周率的经典的常用公式1、1593年,韦达给出这一不寻常的公式是的最早分析表达式。甚至在今天,这个公式的优美也会令我们赞叹不已。它表明仅仅借助数字2,通过一系列的加、乘、除和开平方就可算出值。计算机程序实现〔C语言:#include"stdio.h"#include"math.h"main<>{inti;doublea[8],p;a[0]=sqrt<2>;p=a[0]/2; for<i=1;i<8;i++>{a[i]=sqrt<2+a[i-1]>;p=p*<a[i]/2>;}p=2/p;printf<"p=%lf\n",p>;}运行结果:P=3.1415732、Machin公式〔又叫"泰勒级数"法这个公式由英国天文学教授JohnMachin于1706年发现。他利用这个公式计算到了100位的圆周率。Machin公式每计算一项可以得到14位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。计算机程序实现〔Mathematica:T[x_,n_]:=Sum[<-1>^k*x^<2k+1>/<2k+1>,{k,0,n}];Print[N[16*<T[1/5,110]-4*T[1/239,30]>,150]];Print[N[Pi,150]];运行结果:还有很多类似于Machin公式的反正切公式。在所有这些公式中,Machin公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位,Machin公式就力不从心了。3、Ramanujan公式下面介绍的算法,在PC机上计算大约一天时间,就可以得到圆周率的过亿位的精度。这些算法用程序实现起来比较复杂。因为计算过程中涉及两个大数的乘除运算,要用FFT<FastFourierTransform>算法。FFT可以将两个大数的乘除运算时间由O<n2>缩短为O<nlog<n>>。1914年,印度数学家SrinivasaRamanujan在他的论文里发表了一系列共14条圆周率的计算公式,这是其中之一。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。计算机程序实现〔Mathematica:T[n_]:=Sum[<4*k>!/<<4^<4*k>>*<k!>^4>*<<1103+26390*k>/99^<4*k>>,{k,0,n}];Print[N[9801/<2*Sqrt[2]*T[1000]>,200]]运行结果:4、欧拉计算机程序实现〔Mathematica:T[x_]:=Sqrt[Sum[<-1>^<k+1>/k^2,{k,1,x}]];Print[N[2*Sqrt[3]*T[1000],200]]运行结果:计算的方法还有很多本文仅列具几种常见并且典型的计算方法。最后不得不提一句的是,为什么对于的位数的竞争会持续不断呢?这也应该是相当一部分人的问题吧,可能是因为分数诞生的缘故吧!5、AGM<Arithmetic-GeometricMean>算法

Borwein四次迭代式:初值:

重复计算:

最后计算:

计算机程序实现〔C语言:#include"stdio.h"#include"math.h"main<>{inti;doublep,a[100],y[100];a[0]=6-4*sqrt<2>;y[0]=sqrt<2>-1;for<i=0;i<100;i++>{y[i+1]=<1-pow<<1-pow<y[i],4>>,1/4>>/<1+pow<<1-pow<y[i],4>>,1/4>>;a[i+1]=a[i]*pow<<1+y[i+1]>,4>-pow<2,<2*i+3>>*y[i+1]*<1+y[i]+pow<y[i+1],2>>;}p=1/a[99];printf<"p=%lf\n",p>;}运行结果:P=2.914214

这个公式由JonathanBorwein和PeterBorwein于1985年发表,它四次收敛于圆周率。6、Bailey-Borwein-Plouffe算法计算机程序实现〔Mathematica:T[n_]:=Sum[1/16^k*<4/<8*k+1>-2/<8*k+4>-1/<8*k+5>-1/<8*k+6>>,{k,0,n}];Print[N[T[1000],200]]运行结果:这个公式简称BBP公式,由DavidBailey,PeterBorwein和SimonPlouffe于1995年共同发表。它打破了传统的圆周率的算法,可以计算圆周率的任意第n位,而不用计算前面的n-1位。这为圆周率的分布式计算提供了可行性。1997年,FabriceBellard找到了一个比BBP快4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论