如何计算圆周率?(30分)

Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
请教如何用Delphi计算圆周率,带100或者1000位小数?
 
这与Delphi有关吗?随便找个算法书来"翻译"一下就可以了.
(如果你没有,我可以抽空找找)
 
我可以提供给您几个计算公式:

1. By Leibniz
Pi = 4(1- 1/3 + 1/5 - 1/7 + 1/9 ...)

2. By Euler
Pi = 4( 1/2 - 1/(3*2^3) + 1/(5*2^5) - 1/(7*2^7) ... )

3. By Herdon
Pi = 12 * arctan(1/4) + 4 * arctan(5/99)

4. By Martin
Pi = 16 * arctan(1/5) - 4 * arctan(1/239)

5. By BrownCouro
4/Pi = 1 + 1/(2+ 9/(2+25/(2+49/(2+81/....... 连分数展开式

6. By Newton
Pi = 6(1/2 + 1/(2*3*2^3) + (1*3)/(2*4*5*2^5) + (1*3*5)/(2*4*6*7*2^7) + ... )

7. By Wallis
Pi = 2*(2/1)*(2/3)*(4/3)*(4/5)*(6/5*(6/7*(8/7)*(8/9)*...

...

其中, 连分数的公式收敛极快, 但是不易用程序计算
Euler, Martin, Newton 的公式收敛快. 现代计算机求Pi多用
Euler的公式(编程简单, 误差容易估计)
 
呵呵,peg果然热心,干脆再贴上一段用数组存储
小数位数的代码,不就彻底解决了?

不过从这些公式来看,peg似乎不是数学专业出身.
 
不知道数学专业的高手是如何回答的?
 
tqz也来了?

其实没什么,我只是想说,这些公式从数学的角度看
有重复的,其实这也并不能判定peg兄就如何如何,
特也许是太热心,一口气就都给贴上来了。
 
我虽然不是数学专业的, 可也是个业余数学爱好者嘛! :)
有重复? 不可能! (Possibility(Formula Duplicates) = 0)
数学专业的高手是如何回答的?
xixi :
1. 给出上面公式的通项形式 (我也想给, 可是实在太难排版)
2. 给出误差的表达式 (这我可就计穷啦, 只能给出很粗略的估计)
3. 提出更好的计算公式, :) 那可就真是高手啦

其实, 我知道一位数学家(Lambert)的连分数展开式,
只需要计算到第三项就可以给出祖冲之的密率, 但是我不
知道通项公式, 所以就不好贴出来啦!
 
Hi, peg

你还在网上吗?我刚装了ICQ,可是我的邮件都被公司的
邮件程序"接走"了,你再把ICQ number告诉我一下吧.
 
顺便说一句:老孙甭管用什么办法算,算完了可以到这个网址去核对一下:
(前十万位)
http://eowyn.fr.eu.org/anciens/anciens/pauliat/pi_data_1.html
 
孙兄:

我有两个非常老的Pascal程序(Turbo Pascal 7.0)专门计算PI, 现在发给你供参考.
 
谢谢,huizhang,
您用了个我不认识的Email地址,刚刚还在纳闷,是不是有人与您同名 :)
<hr>
请大家下载:
<a href=/delphi/attachments/Pi.zip>Pi1.pas 和 Pi2.pas</a>
 
hehe, 我分析了这两个程序, 他们都是采用公式4,
Pi2号称精确到5000位, Pi1没有给出精确度.
呵呵, 这两个程序显然都是业余数学爱好者编的
精度均无保证 (每一项都精确到5000位小数,
可是最后各项相加的和呢?, :( )
 
Pi1是用浮点数计算的,谈不上精度.

你好象也自称业余数学爱好者来着!?

专业人士曰:算PI主要有两种方式:
利用反三角函数的展开式和连分数/无穷乘积.

公式1-4,6都是利用arctg,只是选取的特殊值
和分解方式不同.

3,5实际上是等价的
(非常不好意思,这种等价性也不是我这种"专业人士"能一言解释清楚的)
 
呵呵, 有些不写成arctan的形式是因为这样更美妙些(也显得更神
秘一些, :)
牛顿的公式是利用了arcsin
瓦里斯的公式是利用了定积分(不过当时定积分还没有发明,
那时他的学生牛顿的杰作, :)

至于三和五为什么相同, 我倒需要研究一下, 因为我对于连分数
求Pi 的方法还没有研究过, 哎! 现在工作太忙, 不然真要多花些
时间钻研美妙的数学
 
呵呵, 有些不写成arctan的形式是因为这样更美妙些(也显得更神
秘一些, :)
牛顿的公式是利用了arcsin
瓦里斯的公式是利用了定积分(不过当时定积分还没有发明,
那时他的学生牛顿的杰作, :)

至于三和五为什么相同, 我倒需要研究一下, 因为我对于连分数
求Pi 的方法还没有研究过, 哎! 现在工作太忙, 不然真要多花些
时间钻研美妙的数学

是呀, 如果是专业人士编的程序, 大概不会不考虑得更周全一些
吧! :)
 
Sorry, I made a mistake.
Wallis公式使用了二项式定理. 没有用定积分. (现在, 该公式的推
导可以采用定积分, 更简单明了). hehe, 定积分那时还没有被发
明呢
 
我想起了Euler的一个非常著名的无穷级数求和的结果:
(Pi * Pi)/6 = 1 + 1/2^2 + 1/3^2 + 1/4^4 ...

Euler!
哇! 我太佩服他啦!
我刚才在他的最著名的著作:&amp;lt&amp;lt无穷分析引论&amp;gt&amp;gt中, 发现了
极为丰富的Pi的公式, 呵呵, dwwang, 公式5与公式1实质是相同
的, 真是奇妙!

我太兴奋了!
 
对不起,可能是我写错了,看来你手边的书还不少嘛!

但是那个"著名的结果"应该大家都知道,由于不能用来算PI,
所以就没人提了.
 
突然想起,这里是Delphi论坛啊!
这些东东还是到ICQ讨论比较好.
 
呵呵, 我就是从这个著名的结果想到, 象Eiler这样的大师
应该有许多这方面的成果, 果然不出所料. Euler真可以说是
个魔术师, 公式在他手中何止千变万化, 如果他能有幸使用
计算机的话, 这世界不知会变成怎样, :)

好,就到这里, 就到这里吧!... :)
 
顶部