阿基米德计算π方法的改进

标签:
教育 |
阿基米德计算π方法的改进
第一部份:我为什么要编算本文
2013年8月,我写过一篇题为《重走古希腊阿基米德、古中国刘徽的路,用割圆法计算圆周率π》的文章,以自己独立推导的割圆法公式,分步、循环递归,从正六边形出发,计算得正十二、二十四、四十八边形 … 的一系列π,可以说是重走了古希腊阿基米德、古中国刘徽的路,验证了π在223/71和22/7之间。三年来,此文在新浪博客上有4600多人阅读过,其中有一条评论还说:“这真是极好的”。
但阿基米德原著我没有见到过,所以他是怎样具体计算的,我还不得而知。最近,我化50元在卓越网上买到了一本《阿基米德全集》,得以见到《圆的度量》的原文。
研读之后,一,我懂得了他计算π的思路。二,钦佩他将起算数据1、√3、2转化为三个整数153、265、306,或780、1351、1561,这就使计算方便得多。三,明白了不相似直角三角形之间,边长的比例关系,要靠一个命题来支持,这就是《几何原本》第六卷中的一个命题6-3。如果没有这个命题,就无法推算有关边长的比例关系,也就无法计算π。因为它是一个理论基础。所以我有意补进了这一命题的内容,使全部计算有根有据。四,有了阿基米德的原文,就不必重复他的计算细节了。但阿基米德的算法,还可以改进一下,使它适合编程电算。这就是我编算本文的原因。
第二部份:阿基米德原文《圆的度量》的特点
一
外切法求π 见图二
1
2
圆心角∠AOC=300 ,是圆周的1/12。则圆周率π= 圆周/直径=AC弧*12/2B。但AC弧不知,便以AC代替,算得近似的π=AC*12/2B。代入S、B后,得=153*12/530=3.46415。
3
理,圆周率π=圆周/直径=Ad弧*24/2B。但Ad弧不知,便以AD代替,如果知道了AD,则可算得近似的π=AD*24/2B。但AD也不知,所以关键是要在△AOC、△AOD中算出AD。
3
4
5
1
2
∠BAC=300 ,圆心角∠BOC=600 为圆周的1/6,则圆周率π= 圆周/直径=BC弧*6/B。但BC弧不知,便以BC弦代替,算得近似的π=BC*6/B。代入S、B后,得近似的π=780*6/1560=3
3
阿基米德由此作出结论:圆周与直径的比,小于22/7大于223/71。
细细体味,阿基米德求π,与多边形逼近圆的方法,原理上相同,但还是小有区别。他仅仅用一个三角形中分、中分、再中分,就达到了目的。并且关键仅是计算直角短边。所以推算公式既简单,又容易理解。
二 将起算数据由1、√3、2转化为三个整数的比,√3的误差仅为0.000025或0.00000047。
一个300、600、900的直角三角形,作为推算π的起算,其对应的边长之比为1、√3、2 。这个道理在古希腊时代早已知道。但3的开方比较麻烦。阿基米德没有直接写出√3的具体数值,而是将√3表示为两个整数的比,即265:153 =√3。反算可得√3=1.73202614379,它与现代
√3=1.732050807568877 … 相比,仅差0.000025,真是了不起啊。这样,一个300、600、900的直角三角形,对应的边长比例便为153、265、306,就作为推算π的实用起算数据。
更有高招。阿基米德在内接三角形求π时,却又将√3表示为1351:780即√3=1.73205128205,它与现代√3相比,误差更小,仅为0.00000047。
写到这里,我顺便要自我点赞一下。原来,还在我只读到265:153,而没有读到1351:780之前,我便停下来,思考了一下。想,有没有更精确的两个整数之比,更接近√3呢?就在电子表格上凑算,很快发现,还有6对整数之比,更接近√3,其中1351:780与2340:1351的误差最小。见下表:
S=直角短边 |
B=直角长边 |
√3 ≒ B / S |
误差 |
阿采用 |
阿采用 |
1.73202614379 |
0.00002500 |
209 |
362 |
1.73205741626 |
0.00000670 |
306 |
530 |
1.73205741626 |
0.00000661 |
362 |
627 |
1.73204419889 |
-0.00000661 |
571 |
989 |
1.73204903677 |
-0.00000177 |
780 |
1351 |
1.73205128205 |
0.00000047 |
1351 |
2340 |
1.73205033308 |
-0.00000047 |
|
|
精确√3=1.73205080756887 |
|
我当时就用780、1351、1560为起算数,又算了一遍π,结果当然小有变化,但不影响π应小于22/7的结论。后来我翻过几页,这才发现,阿基米德在内接法求π时,早已采用780、1351、1560为起算数了。我禁不住既高兴我的发现,又叹息我的迟到。因2000年的前人早已捷足登先了。但是我还是禁不住要点赞一下自已,毕竟79岁了,而思维、计算能力还在呢。
三
在整个计算过程中,要知道三角形中边与边的比例关系。一般而言,只有在三角形相似的条件下,边与边才有比例关系。但是,当一个角度被中分后,分出来的两个三角形不相似,那么边与边有没有比例关系呢?如果没有比例关系,那将无法再计算下去。幸好,阿基米德的前辈欧几里德,在他的《几何原本》第六卷中,有一个关键命题6-3。说:当三角形的一个角度被中分后,存在一个比例关系X/Y=C/B。阿基米德一开始就引用了这个命题,因而推算出了三角形中边与边的各种比例关系,才得以算出π。查《几何原本》,得命题 6-3。见图一。
http://s2/bmiddle/0033AirQgy71zHcPpGVd1&690
命题 6-3
证明:
1
2
3
→
CY=BX
4
四
我在阅读过程中觉得,阿基米德在找边与边的比例关系时,虽然严密正确,但似乎也繁了一些,转弯多了一些。每中分一个三角形,都要重新去找这些比例关系。其实,在整个计算过程中,关键是怎样由上一个直角三角形的三条边S、B、C,计算出下一个直角三角形的三条边Y、B、E。并将Y、B、E作为又下一级三角形的S、B、C,这就构成了一个递归。如果整理出它们的转换递归公式,就不必每次去找边与边的比例关系,则整个计算就有规律可循,乃至可以编电算程序。于是我就整理出“由上一个直角三角形的三条边,计算出下一个直角三角形的三条边”的公式,并一一计算,得到正确验证。现在,我就按照阿基米德的思路、图形,但按照我的理解,将阿基米德的算法,改动一下,也可说改进一下,并把我的计算过程记录一下、发表一下,算是我学习阿基米德算法的一个心得吧。
第三部份:阿基米德计算π方法的改进
一 外切法求π。见图二、图三。
1
2
3
4
5
6
7
8
http://s7/bmiddle/0033AirQgy71zHsSrfE26&690
第一个三角形算完。逼近一步,将⊿AOD再中分,见图四。
1
2
3
4
5
6
7
8
http://s12/bmiddle/0033AirQgy71zHTltDd9b&690
再步步逼近得:
次
I
1
2
3
4
…
8
16
24
36
可见,到24 次后,π 就基本隐定在3.14161247963026,近似为3+1/7.06。
Private Sub Form_Click() :Form1.Width = 11520:Form1.Height = 15360
End Sub
二
1
2
3
4
5
6
7 △CAd与△DAB相似,所以X/F
= E/B
F = X * B /
E=362*1560/1398.658=403.758
8
现用BD=F作为近似圆弧,则
π=
9
(注意:AD就是下一个三角形△DAB的长边C )
10
http://s2/bmiddle/0033AirQgy71zI5UGWt21&690
第一个三角形算完。逼近一步,将△DAB再中分,见图七。
1
3
设De=X
4
5
6
7 △CAd与△DAB相似,所以X/F
= E/B
F = X * B /
E=198.380*1560/1519.847=203.621
8
现用BE=F作为近似圆弧,则 π= F * T / B=203.621*24/1560=3.132628
9
(注意:AD就是下一个三角形的长边C )
10
Private Sub Form_Click() :Form1.Width = 11520 :Form1.Height = 15360
End Sub
http://s2/bmiddle/0033AirQgy71zIun9fPe1&690
运算结果如下
次 圆心角
I
1
2
3
4
…
8 0.1171875
…
16
24
到24 次后,π就基本隐定。现取π=3.14159227217831,近似为222/70
阿基米德逼近4次,相当于96正多边形求π=6336/2017.25>3+(10/71)。或>223/71
三
经外切、内接逼近,证实π在3.14159 22721 7831与3.14161 24796 3026与之间。而历代有:
阿基米德推算的
祖冲之推算的
刘徽推算的
现在,圆周率有2061亿位精度。实用上取π=3.14159
山巅一寺一壶酒(3.14159),儿乐(26),我三壶不够(53589),… … …