数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: 吴玉明

圆周率计算公式

[复制链接]
发表于 2005-10-27 19:59 | 显示全部楼层

圆周率计算公式

圆周率的计算方法
 
    古人计算圆周率,一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。Archimedes用正96边形得到圆周率小数点后3位的精度;刘徽用正3072边形得到5位精度;Ludolph Van Ceulen用正262边形得到了35位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。下面挑选一些经典的常用公式加以介绍。除了这些经典公式外,还有很多其他公式和由这些经典公式衍生出来的公式,就不一一列举了。
 
 
Machin公式
   
   
    这个公式由英国天文学教授John Machin于1706年发现。他利用这个公式计算到了100位的圆周率。Machin公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。
    Machin.c 源程序

   
    还有很多类似于Machin公式的反正切公式。在所有这些公式中,Machin公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位,Machin公式就力不从心了。下面介绍的算法,在PC机上计算大约一天时间,就可以得到圆周率的过亿位的精度。这些算法用程序实现起来比较复杂。因为计算过程中涉及两个大数的乘除运算,要用FFT(Fast Fourier Transform)算法。FFT可以将两个大数的乘除运算时间由O(n2)缩短为O(nlog(n))。
    关于FFT算法的具体实现和源程序,请参考Xavier Gourdon的主页
 
Ramanujan公式
   
    1914年,印度数学家Srinivasa Ramanujan在他的论文里发表了一系列共14条圆周率的计算公式,这是其中之一。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。
    1989年,David & Gregory Chudnovsky兄弟将Ramanujan公式改良成为:
   
    这个公式被称为Chudnovsky公式,每计算一项可以得到15位的十进制精度。1994年Chudnovsky兄弟利用这个公式计算到了4,044,000,000位。Chudnovsky公式的另一个更方便于计算机编程的形式是:
   
 
 
AGM(Arithmetic-Geometric Mean)算法
    Gauss-Legendre公式:
    初值:
   
    重复计算:
   
    最后计算:
   
    这个公式每迭代一次将得到双倍的十进制精度,比如要计算100万位,迭代20次就够了。1999年9月Takahashi和Kanada用这个算法计算到了圆周率的206,158,430,000位,创出新的世界纪录。
    Borwein四次迭代式:
    初值:
   
    重复计算:
   
   
    最后计算:
   
    这个公式由Jonathan Borwein和Peter Borwein于1985年发表,它四次收敛于圆周率。
 
 
Bailey-Borwein-Plouffe算法
   
    这个公式简称BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同发表。它打破了传统的圆周率的算法,可以计算圆周率的任意第n位,而不用计算前面的n-1位。这为圆周率的分布式计算提供了可行性。1997年,Fabrice Bellard找到了一个比BBP快40%的公式:
   
 

--------------------------------------------------------------------------------
上一页  主页  下一页
发表于 2005-11-8 17:41 | 显示全部楼层

圆周率计算公式

[这个贴子最后由含笑的波浪在 2005/11/08 05:43pm 第 1 次编辑]

   
    楼主所说的公式,我记得在美国书中译本里(80年代)已有介绍了,书名是
《数学是什么》。我曾经介绍过李明波的研究成果,见
   《李明波 与 π  》
http://www.kmmeeting.com/bbs/showtopic.asp?page=1&Topic_ID=3976&forum_id=7

发表于 2005-12-9 12:21 | 显示全部楼层

圆周率计算公式

   这不是很简单吗?
   其实,这只是纯代数的,试试思考用除分圆以外的几何方法,看能否解决!
发表于 2006-1-20 03:37 | 显示全部楼层

圆周率计算公式

楼主所说的公式是:
π=2^n√(2-√(2+…√2)…)
  (n→∞)
其推导过程是利用正弦倍角公式从两个方面得出:
⑴当π=180°sinθ/θ 时,  以角 度90°/2^n代入即可。
⑵当令π=180°,得出极限式:sinθ/θ =1时, 以弧度π/(2×2^n)代入即可。
公式π=180°sinθ/θ和sinθ/θ =1其实都是一个公式,用相同的角度或弧度代入,必然会得出相同的结果,它们其实就是中国割圆术的现代式。
发表于 2008-3-8 16:00 | 显示全部楼层

圆周率计算公式

[这个贴子最后由98ming在 2008/03/08 04:03pm 第 1 次编辑]

证明如下:.
发表于 2008-4-27 23:26 | 显示全部楼层

圆周率计算公式

哈哈,六楼的方法我高中时就试图计算过,不过那时还不会极限的运算
发表于 2008-5-8 18:01 | 显示全部楼层

圆周率计算公式

下面引用由William2005/05/03 00:33pm 发表的内容:
我不知你写的是什么(也许是我语文不及格),我自己曾推了一个公式n×sin(180/n)= ∏(当n→∞)
这个是错误的............
发表于 2008-5-8 18:09 | 显示全部楼层

圆周率计算公式

下面引用由William2005/05/03 00:33pm 发表的内容:
我不知你写的是什么(也许是我语文不及格),我自己曾推了一个公式n×sin(180/n)= ∏(当n→∞)
因为这个根本就是在玩文字游戏。 你的计算过程中用到了pi:
n趋于无穷大的时候
对于变量x : lim(n*(sin(x/n))) =
x=pi的时候:
lim(n*(sin(180/n))) = lim(n*(sin(pi/n))) = pi
发表于 2008-6-21 00:05 | 显示全部楼层

圆周率计算公式

呵呵,这个问题是很复杂的,现在都在争论不止
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-6-10 11:42 , Processed in 0.078125 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表