Goc-圓周率“π”是怎么計算來的?-續(xù)

上一篇文章中我們使用了細分圓面積,然后數(shù)格子的方法計算得到圓周率π的近似值。但更科學的方法是使用π的展開式形式來計算。比如下面這個公式:

第一眼看到這個公式都會驚訝甚至懷疑,不過你可以用下面的Goc代碼來驗證這個事情,看看循環(huán)次數(shù)是否越多就越接近π的值:

int main(){
    float he=0;
    for(int i=1;i<1000;i+=2){
        he=he+1.0/(i*i);
    }
    float pi=sqrt(he*8); //sqrt是把括號里面的數(shù)字開平方,比如sqrt(16)就是4
    char str[10];
    gcvt(pi, 10, str);
    p << str;
}

由于普通計算機數(shù)字精度問題,不能處理超大的數(shù)字,所以上面for循環(huán)不要使用太大的數(shù)字,請在3萬以內(nèi)測試。如果您有好的解決方案,煩請留言,萬分感激!

但為什么會這樣?


從倒數(shù)勾股定理說起

還是從勾股定理開始:任意直角三角形,斜邊c的平方等于兩個直角邊平方的和。

我們再看這個:


對于直角三角形面積我們知道是兩個直角邊相乘再除以2,也就是(ab)/2;但看這個倒下的直角三角形,如果我們把c當成底邊,d是三角形的高,那么我們就知道整個三角形的面積是(cd)/2。兩個方法哪個才正確?當然都正確啦!

所以我們有:


也就是:



然后:



兩邊都平方:

因為勾股定理c方又等于a方加b方:



也就是:

換個寫法:


也就是有:


終于到最后了~兩數(shù)相加除以一個數(shù),等于兩數(shù)分別除以這個數(shù)再相加:


這就是神奇的倒數(shù)勾股定理公式,三角形斜邊上高的倒數(shù),等于兩個直角邊倒數(shù)的和:




圓直徑內(nèi)接三角形

我們再來看另外一個和勾股定理沒關系的事情,圓上任意一個點,連接直徑兩端,和直徑一起圍成的三角形,一定是個直角三角形。比如下圖:


由于三角形內(nèi)角和是180度,所以橙色和綠色兩個三角形內(nèi)角和加起來是360度,也就是兩個黃色角和兩個綠色角加中心的黑色半圓等于360度。

又因為虛線也是半徑,c邊分成左右兩邊也都是半徑,所以這兩個三角形都是等腰三角形,兩個黃色角相等,兩個綠色角相等,:


兩邊都減半,就有



很明顯,黃色角加綠色角就是90度,也就是恰好是紅色直角位置。

這證明了,圓上任意一點連接直徑兩端圍成的三角形一定是直角三角形。


從第一個圓開始

好了,我們已經(jīng)做好準備,下面就開始拿下開頭的那個神奇公式:


先看下面這個:


這里灰色大圓直徑是黑色小圓的兩倍。
首先根據(jù)我們證明的倒數(shù)勾股定理,我們有:

a和b左右兩邊是對稱的,所以有:


假設我們的小黑圓周長是2,那么直徑d是2/π;d的平方就是(2/π)的平方,倒數(shù)就是(π/2)的平方,就是:


注意,由于大圓直徑是小圓直徑的2倍,周長也是2倍。小黑圓周長是2,那么大圓周長是4,兩個點之間的半圓長度是2。


再看更大的圓

我們再看下圖,外面增加一個4倍大的圓:

注意粗橙色的三角形,是直徑和圓上點組成的直角三角形!在這個粗橙色三角形內(nèi),b是斜邊上的高!所以有:


結合上面的結論:


我們得到:


注意這里,四個橙色的圓點把整個大圓四等分。b2上面對著的最大圓的灰色周長,正好是整個大圓的1/8,也正好是小黑圓的一半,也就是1(小黑圓周長我們開始就設定是2),和中等圓的1/4相等。


再看超大的圓

似乎規(guī)律還不明顯,我們再看超大的圓:

這個圖上,根據(jù)倒數(shù)勾股定理,可以得到:


我們再看a2的情況:


這個圖很亂,我們只看粗線,橙色粗線a2,m和n代表綠色粗線,根據(jù)倒數(shù)勾股定理我們有:


好了,如果再繼續(xù)下去我們可能會頭暈了,但是我們可以換個思路來看。


圓繼續(xù)變大會怎樣?

每次我們把圓增加1倍,都會產(chǎn)生下面的規(guī)律:
首先,圓上的點會一個分裂成為兩個。最初1個黑色點,分裂成兩個藍色點,再分裂成4個橙色點,再分裂成為8個綠色點,繼續(xù)下去就是16個。


其次,我們最初的黑色點上到頂部,也就是小黑圓直徑平方分之一,也被分解為兩個藍色點到頂部距離平方的倒數(shù)和。然后每個藍色點到頂部距離的平方分之一,又被分解成兩個橘色點到頂部距離的平方倒數(shù)和。然后每個橙色點到頂部的距離分之一,又被分解成兩個綠色點到頂部距離的平方倒數(shù)和。

從上圖可以看出,我們最初的黑色豎線平方分之一,被分解成2條藍線平方倒數(shù)和(2個點每個點有一條到頂部),然后分解成4個黃色點到頂部距離平方倒數(shù)和(圖中只畫了1個藍點分裂的情況),又分解為8個綠色點到頂部距離平方倒數(shù)和(圖中分兩種情況畫了2個點橙色點分裂的情況)...如下圖所示:


再次,我們來注意上圖這些線的長度,最初周長是2;然后周長翻倍變成4,有兩個藍色點,點之間隔半個圓長度是2;然后周長翻倍變成8,有4個橘色點,相鄰點之間隔1/4圓,也就是弧長8/4=2;然后周長變16,點之間弧長16/8還是2;然后周長32,點之間弧長還是2...無論繼續(xù)編號多少次,點之間的弧長永遠是2!

最后,假設我們的圓無限大,比地球赤道還要大無限倍,會怎樣?無限大的那個圓會在頂部變?yōu)橐粭l直線!



然后呢?前面圖中我們畫的藍色-橙色-綠色-紅色線最終都重疊在這條直線上!
這又怎樣?記得我們上面的計算的黑色小線段平方倒數(shù)和嗎?


我們把黑色點到0的距離平方倒數(shù)(π平方除以4),無限分解,最終分解成無限多個紫色點到0的長度平方倒數(shù)和!
這就有:


我們再把負數(shù)的一半去掉,那么左邊就變?yōu)棣衅椒匠?:


大功告成!

可能你已經(jīng)注意到,對于無限大圓,頂部的點都在直線上,但我們忽略了底下對面圓上的點,沒有畫出它們連過來的線。這是因為對于無限大圓,底下的點在無限遠處,無限遠的倒數(shù)平方和近乎是0,對我們的計算沒有影響。當然如果我們計算100倍大的圓時候,下面的點會有影響的,這會讓我們計算得到的π值小那么一丁點,微乎其微,如果我們真的希望更精確,那么不應該糾纏于損失的這么一點,而是使用更大的圓(比如10000倍)來進行計算,圓越大,損失越小,圓無限大的時候,我們就得到了最好的π數(shù)值?!斎?,無限是不可能實現(xiàn)的,所以無論如何,這個算法得到的π總是比實際小那么一丟丟。


小結

圓周率π的展開式很多,可以百度搜索到。這些展開式基本都是微積分計算得到的,這種形式的展開式形式也稱為微積分的泰勒展開式。

這篇文章主要是利用幾何極限的方法對它進行證明,也不是最好的證明方法,但可以讓初中數(shù)學水平就能理解。

圓周率π的神奇故事還有很多,就像是數(shù)學世界的一個萬能鑰匙,可以打開一扇又一扇大門,希望大家一起來探索!


致力于讓一切變得通俗易懂

如果您發(fā)現(xiàn)文章錯誤,請不吝留言指正;
如果您覺得有用,請點喜歡;
如果您覺得很有用,感謝轉發(fā)~


END

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容