刁乾坤
【摘要】 圓周率是人類獲得的最古老的數(shù)學(xué)概念之一.3世紀(jì)中期,魏晉時(shí)期的數(shù)學(xué)家劉徽[1]首創(chuàng)割圓術(shù),為計(jì)算圓周率建立了嚴(yán)密的理論和完善的算法,所謂割圓術(shù),就是不斷倍增圓內(nèi)接正多邊形的邊數(shù)求出圓周率的方法.本文將通過(guò)Python語(yǔ)言,在JUPYTER NOTEBOOK中實(shí)現(xiàn)割圓術(shù)算法.
【關(guān)鍵詞】 圓周率;割圓術(shù);算法
主要儀器設(shè)備JUPYTER NOTEBOOK PYTHON 3.
設(shè)半徑為1的圓的邊數(shù)為6·2n的內(nèi)接正多邊形邊長(zhǎng)為an,如圖所示,其中,AC= an 2 ,AD=a2n,OD=1,OC= 1-? an 2? 2 ,AD2=AC2+CD2=AC2+(OD-OC)2,
則a2n=?? an 2? 2+ 1- 1-? an 2? 2? 2 = 2- 4-a2n? .
相應(yīng)的△AOD面積為:Sn+1= 1 2 OD·AC.
所以,π≈6·2n+1·Sn+1,
程序代碼
import numpy as np
def liuhui(n):
a=np.zeros(n+2)
a[0]=1
for k in range(n+1):
a[k+1]=np.sqrt(2-np.sqrt(4-a[k]**2))
return(print(′圓的內(nèi)接正6*2^n邊形的邊長(zhǎng)為:′,a[n]),print(′圓周率的近似值為:′,3*2**n*a[n]))
Python中π的參考值為3.141592653589793.
運(yùn)算結(jié)果為:
n 正多邊形邊長(zhǎng) 正多邊形邊數(shù) 圓周率近似值
0 1.0 6 3.0
1 0.517638090205 12 3.10582854123
2 0.26105238444 24 3.13262861328
3 0.13080625846 48 3.13935020305
4(劉徽) 0.0654381656436 96 3.14103195089
5 0.032723463253 192 3.14145247229
6 0.0163622792079 384 3.14155760791
7 0.00818120805247 768 3.14158389215
8 0.00409061258234 1536 3.14159046324
9 0.00204530736071 3072 3.14159210604
10 0.00102265381399 6144 3.14159251659
11(祖沖之) 0.000511326923607 12288 3.14159261864
12 0.000255663463975 24576 3.14159264532
13 0.000127831731987 49152 3.14159264532
結(jié)果分析:劉徽利用正96邊形算得圓周率小數(shù)點(diǎn)后3位精確數(shù)字;祖沖之利用正12288邊形算得圓周率小數(shù)點(diǎn)后7位精確數(shù)字.在數(shù)學(xué)上,祖沖之推算出圓周率的真值應(yīng)該介于3.1415926和3.1415927之間,比歐洲要早一千多年.
【參考文獻(xiàn)】
[1]郭書(shū)春.中國(guó)古代數(shù)學(xué)[M].北京:商務(wù)印書(shū)館,1997:164.