李海
【摘 要】估算圓周率一直以來都是數(shù)學研究者感興趣的話題。本研究利用R語言,運用已知的數(shù)學關(guān)系,設計常用的計算機模擬思路,估算π值,以探討圓周率的多種可行性估算方法,以期啟發(fā)、訓練R語言編程思維。
【關(guān)鍵詞】R語言;實驗;圓周率
【中圖分類號】G642 ?【文獻標識碼】A ?【文章編號】1671-8437(2020)04-0229-02
在小學階段學習圓的相關(guān)知識時,必然會提及圓周率,隨著進一步的學習,發(fā)現(xiàn)有關(guān)圓周率π的學習幾乎貫穿了整個受教育過程,涉及的學科和用途也是十分廣泛。π取自希臘語,表示圓的周長與直徑的比值。歷史上,許多中外數(shù)學家都試圖尋求圓周率π的近似值,而中國數(shù)學家劉徽和祖沖之采用幾何法也分別對圓周率進行過估算,得出圓周率π的估計值,并一步一步將精確位數(shù)提升。2019年3月,谷歌利用現(xiàn)有計算機技術(shù)將圓周率精確到小數(shù)點后31.4萬億位。當然也有很多民間數(shù)學愛好者借助計算機軟件技術(shù)來估算圓周率值,唐永鴿[1]用office辦公軟件excel、程登彪[2]和周輝[3]則利用數(shù)學軟件mathematica分別對圓周率進行估算。
R語言作為一個自由、免費、源代碼開放的軟件,是一個用于科學繪圖和統(tǒng)計計算的優(yōu)秀工具[4]。該軟件將數(shù)學思維與計算機程序設計重要思想完美結(jié)合。采用R語言軟件,根據(jù)不同數(shù)學估算公式估計圓周率的值,最終以圖形的方式呈現(xiàn)。
1 ? 估算方法
1.1 ?“劃分網(wǎng)格”估算法
“劃分網(wǎng)格”估算法:此方法類似著名的蒙特卡羅法,不同的是將正方形分成n2個小正方形,統(tǒng)計落在內(nèi)接圓內(nèi)的小正方形個數(shù)占所有正方形的比例,利用四分之一個圓來研究,看落入其中的小正方形有多少個,并計算概率,再用概率反推π的值,即π=4N/n2(N表示落入單位圓內(nèi)小正方形的個數(shù)),如圖1所示。
通過計算機模擬,運行下列程序:
mianji=function(n){
kk=matrix(0,n,n)
o=1/n
for(x in 1:n){
for(y in 1:n){
zb=c(x*o,y*o)
kk[x,y]=ifelse(sqrt(sum(zb^2))<=1,1,0)
}
}
sum(apply(kk, 1, sum))/n^2*4
}
pi=rep(0,1000)
for(s in 1:1000){
pi[s]=mianji(s)}
plot(1:1000,pi,ylim = c(2.5,4))
abline(h=3.14,col=2)
隨著n的變大,π的值越趨于穩(wěn)定,如圖2:
1.2 ?“三角形”估算法
“三角形”估算法:利用已證明的結(jié)論,任意寫兩個小于1的數(shù)(x,y),將它和1組成一個數(shù)對(x,y,1),則由x、y和1作為線段長度,能構(gòu)成一個鈍角三角形的概率為P=(π-2)/4。利用計算機選取1到1000的隨機數(shù),并計算此概率,并反推π值,即π=4P+2。通過R軟件運行如下程序:
pi=rep(0,1000)
for(s in 1:1000){
i=rep(0,10000)
for(j in 1:10000){
bianchang=runif(2,0,1)
i[j]=ifelse(sum((bianchang)^2)<1&&sum(bianchang)>1,1,0)
}
pi[s]=4*mean(i)+2
}
plot(1:1000,pi,ylim = c(2.5,4))
abline(h=3.14,col=2)
模擬的π值大致分布如圖3:
1.3 ?“互質(zhì)”估算法
“互質(zhì)”估算法:利用數(shù)論和概率知識可知,任意兩個自然數(shù)互質(zhì)的概率為P=6/π2,即π=。利用計算機選取1到1000當中的任意兩個自然數(shù),并計算這兩個自然數(shù)互質(zhì)的概率,從而進一步估算π值。通過R軟件運行如下程序:
for(j in 1:1000){r=rep(0,1000)
for(i in 1:1000){
r[i]=husu(sample(1:1000,2))
}
z[j]=sum(r)
pi[j]=sqrt(6*1000/z[j])}
plot(1:1000,pi,ylim = c(2.5,4))
abline(h=3.14,col=2)
模擬的π值大致分布如圖4:
2 ? 結(jié)論
隨著社會的高速發(fā)展,計算機的普及,越來越多的數(shù)學問題都可以采用計算機解決,再加上各種軟件的產(chǎn)生,給數(shù)學愛好者帶來了很多的樂趣,更是加強了各類學科之間的融合,有利于學習者開展創(chuàng)造性的工作,促進整個科學事業(yè)的進步。利用各種計算機軟件程序?qū)A周率推導公式進行驗證,得到了直觀的結(jié)果,如以上三種估算方法中。若將n值增大,圖形呈現(xiàn)將會更加明顯,這是人工算法無法比擬的。因此,將數(shù)學和計算機結(jié)合的學習方法,將是培養(yǎng)學習者核心素養(yǎng)的一個重要途徑,能充分顯示“數(shù)形結(jié)合”的魅力,體現(xiàn)“實踐是檢驗真理的唯一標準”的哲學思想,更能真正體會數(shù)學之美,幫助學習者更好的學習,更快樂的學習。
【參考文獻】
[1]唐永鴿.用計算機模擬的方法估計圓周率的值[J].文理導航(中旬),2011(2).
[2]程登彪.計算機模擬蒲豐投針試驗近似計算圓周率研究[J].福建電腦,2012(11).
[3]周輝.關(guān)于圓周率π的幾種計算方法[J].科技致富向?qū)В?011(5)5.
[4]薛毅等.R統(tǒng)計建模與R軟件.北京:清華大學出版社,2007.