π的计算方法有哪些

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

圆周率π的计算方法

圆周率π的计算方法,是一个饶有趣味,值得探讨的问题。最直观的计算方法自然是从几何上着手,历史上也正是如此,这便是割圆法。设一半径为1的圆,作这个圆的内接正n边形,用此正n边形的周长去近似圆的周长。显然当n→∞时,正n边形的周长就无限趋近于圆周长,求得正n边形周长后除以直径便求出了圆周率。

I.

从几何上观察,可知:正n边形周长随n递增而递增,但始终是个有限值。割法如图1:

向左转|向右转

图1 割圆法

设圆半径为1,令半弦长AB=2a,AC=2c,OG和OD分别是等腰△OAB和△OAC 的中线。则我们要做的只是求出c关于a的表达式c=c(a).令GC=b,根据勾股定理有:

向左转|向右转

(1)

进而有

向左转|向右转

(2)

得到此式后,编写计算机程序就很容易了,C语言程序如下:

#include

#include

main()

{double a,b,c,d,pi;double sqrt(double);int i,j,n;a=0.5;b=0;c=0;d=0.5;scanf("%d",&n);

for(i=1;i<=n;i++)

{b=sqrt(1-a*a);c=(1-b)*0.5;d=sqrt(c);a=d;}

j=pow(2,n)*3;pi=2*d*j;printf("%d\n",j);printf("%f\n",pi)}

这里有一个问题就是a的初值如何选择?显然越简单直观越好,而已知对于圆内接正六边形的每一条边长等于圆的半径。所以取a=0.5,程序中参数n是对正六边形分割的次数,d的作用是当输入n=0(正六边形)的时候,得到π=3,此所谓的“径圆一三”。将这个文件保存为文本,在linux下用“gcc -lm”命令编译后,打开编译后得到的文件就能执行。

在古代可没有电子计算机,而祖冲之利用割圆法算得圆周率介于3.1415926和

3.1415927之间,可见古人之伟大!

II.

上面的方法简单直观,但是缺点也很明显。计算机在底层只能做“加减乘除四则整数运算”,显然开根号运算还是要通过转化为整数运算(级数展开等)才最后到硬件级计算。那么我们能否直接用整数的四则运算得到π的值?有!而且方法是多样的,其中一种叫作“Wallis公式”,有几种表达方式。如下:

向左转|向右转

(3)

向左转|向右转

(4)

(5)

下面证明这个公式:

向左转|向右转

(6)

利用分部积分法

于是有关系式

向左转|向右转

(7)

从上式可知I0=1,I1=π/4.根据这两个初值条件有向左转|向右转

(8)

或者

向左转|向右转

(9)

其中m=0,1,2,...而由(7)式也可知

向左转|向右转

(10)

将(10)式代入(9)式

向左转|向右转

向左转|向右转

(11)

其中

由式(11)可知Wm>0且有上限,而

说明Wm随着m的增大递增,所以如下极限存在,且由夹逼准则得其值

Wallis公式得证。

实际上Wallis公式的发现在微积分建立之前,其探寻过程限于篇幅不在这里给出,这也反映出同一个问题可以有不同的论证方法,也令我们不得不佩服古人的智慧。

III.

虽然Wallis公式比割圆法要易于计算得多,但是Wallis公式在形势上仍显复杂,且全部乘除算法也难以提高计算机计算效率,最好是有乘除项之和,如:

反观(6)式,实际上令x=cosθ,则有dx=-sinθdθ.式(6)变为

如果令x=sinθ,则只变换形式不影响结果。那我们设想利用其它的三角函数能否得到同样的结果?令

向左转|向右转

(12)

注意这里的积分上限改成了π/4,因为π/2>θ>π/4的时候tanθ>1,将导致积分发散。

对(12)式做一个小变换

于是有关系式

向左转|向右转

(13)

而初值T0=π/4,观察规律有

...

总结规律得

向左转|向右转

(14)

其中m=1,2,3,...而从式(12)中可知

结合(14)式,得到

向左转|向右转

(15)

或者

向左转|向右转

(16)

显然这种方法形式上比前两种方法要简单得多,计算机执行的时候也能更高效。

而在我前面的文章中讲过幂级数的应用,arctanθ展开为幂级数(泰勒级数)后表达式为

向左转|向右转

(17)

该级数的收敛域为[-1,1],将x=1代入,则得到式(15),这又是一个殊途同归的例子!

相关文档
最新文档