自從人們學會了用越來越多的方法來求圓周率,似乎在怎么求圓周率的研究上已經信心十足。你提出100種要求來得到圓周率的值,那我就能想到101種方法來求解圓周率。的確,人們在這項事業上可以說是蒸蒸日上,從上古時代的割圓術,到萊布尼茲級數,投針實驗,以及各種各樣的無窮級數等等。每一種方法到最后都可以把圓周率精準無誤地算出來,然而這并不意味著,這每一種方法實施起來都是一樣的效果。這里就必須考慮一個執行效率的問題。
永無休止的π
這里不考慮遙遠時代的割圓術了,在兩千年前的古人能得出這樣的算法就已經很不容易了,你還要求他們,割圓術求π太慢了,能不能找個更快的。這樣就太過苛刻了,這樣苛刻的要求應該要放在微積分時代的人們身上才顯得公平。
萊布尼茨
萊布尼茨級數
我們再來回顧一下萊布尼茨大神的得意之作,這個式子很容易記,可操作性也不錯。但是若需要在很短時間內去求很多位數的圓周率值,這個級數其實是不實用的。為什么呢?因為這個級數的收斂速度太慢了!人們用計算機模擬過,大約要計算500000項,才能精確到小數點后5位。這樣的執行效率實際中會有人采用嗎,反正我是不會,因為我將浪費大量的時間和資源在那里兜兜轉轉才勉強達到的精度值上。
歐拉大神
巴塞爾級數
那再來看看歐拉大神的揚名之作,巴塞爾級數,這個級數的和也是一個包含π的數字。這個級數求和過程十分精彩,但是如果你也想通過這個公式來求圓周率那就大錯特錯了。雖然理論上,巴塞爾級數的收斂速度不會像萊布尼茲級數一樣出奇地慢,但是也基本上也要計算到10000項,才能精確到小數點3位。所以,如果我來選擇一種算法求解圓周率,這兩大鼎鼎有名的公式第一輪就會被pass掉。
于是,我們想在圓周率問題上有所突破,就必須去找一些快,準,狠的算法,不對,應該是快,易,準的方法。
梅欽公式
1706年,英國數學家梅欽提出了一個收斂速度不錯的公式,令人驚訝的是這個公式完全沒有用到微積分,也沒有采用無窮級數,僅僅是三角函數變換就得到了。這個公式是這樣子的。
梅欽公式
是不是覺得這個公式有點莫名其妙,好像兩邊驢唇不對馬嘴之間也可以建立如此漂亮的等式關系。雖然看起來怪異,但是這個公式還是很好證明出來的。
梅欽公式推導
得到這個反正切的公式之后,我們利用梅欽公式計算圓周率就已經完成了一大半了。那接下來呢,我們就要用親愛的泰勒級數展開式把反正切轉換成具體可以計算的形式,其中反正切的泰勒級數展開形式是這樣子。
反正切函數泰勒展開式
特別的,如果我們對于精度很執著,那么需要計算的式子項數就會格外地多在項數過多的情況下,這樣的計算量仍然是可以簡化的。這里就不得不提到我國古代一位數學家的成就,這就是秦九韶算法,在高次多項式數值計算時,可以極大地減少計算復雜度,也特別容易通過程序來實現。
數學家 泰勒
秦九韶算法和梅欽公式相結合,使得這套計算算法成為歷史上第一個快速求圓周率算法。1706年,英國數學家梅欽本人利用這個公式將圓周率計算到了小數點后100位,這在割圓術時代是根本無法想象的,至于為什么是這樣子的,請參考魯道夫窮盡一生用割圓術才計算到小數點35位而已。
我國古代著名數學家 秦九韶
后來出現了許多類梅欽公式,都是利用反正切函數的組合。人們用差不多的風格去改造梅欽公式,在這方面做到巔峰的應該是這位,英國的謝克斯。他利用這類公式把圓周率計算到了小數點后707位,這個也是人工計算圓周率取得的最高紀錄。不過可惜的是,后人檢查他的計算結果,發現第528位是錯誤的,所以在528位之后的結果就都是錯誤的了。
秦九韶算法原理 轉自維基百科
拉馬努金公式
雖然說梅欽公式的極大得改進了求π的進程,但是如果我們想計算千萬位圓周率數字,梅欽公式就顯得力不從心了。然而數學家們的追求是無止境的,琢磨琢磨就總會有新的玩意出來,一句話,求π公式里沒有最快只有更快。這里就需要一位超級大神再一次搬出來了,印度的傳奇數學家,拉馬努金。
拉馬努金
拉馬努金,1887年出生在印度的小鎮上,從小家庭貧困,生活艱難,不過好在他很早就發現自己在數學上有著常人無可比擬的天賦。在那個印度教育普遍不行的情況下, 拉馬努金靠著一本記載了5000個公式的數學教普書《純粹數學與應用數學概要》。他完全自學,掌握了最高級的數學技巧,他甚至補全了那本書中很多缺少的內容,比如很多高級公式的證明。這本書也決定了拉馬努金日后的研究方向,他受到這本書的啟發,日后提出了許許多多駭人聽聞的公式,大約有3900個,絕大多數都是對的。任何一個數學愛好者都會把這些公式當成是寶藏一般,細心研究的。
比如,他曾經提出過很多關于求π的公式,這些公式都有以下幾個特點:等號右邊的構造超乎常人想象,收斂速度極快!比如這個拉馬努金在1914年發布的以他自己名字命名著名公式。
拉馬努金公式
我們普通人根本難以想象等式后邊的部分如此繁雜無序,確實深深地與π產生等價關系,事實上,人們也是在研究了很久才得知拉馬努金是如何得出這樣的公式的。這是來自高深的橢圓積分函數,我們不去深刻研究如何由橢圓積分函數推導出上面這個式子,這已經超過曉然菌的能力了。我們只是來欣賞一下這樣的式子究竟有多厲害就行了。
拉馬努金筆記
右邊的組成部分雖然紛繁復雜,但是倘若我們一項一項地來整理還是比較容易用編程的方法來實現的?,F在利用一臺簡單的的計算器來進行,我們發現只要計算一次,精度就會超過計算器能夠顯示的有效位數。大概這里的k每次累加計算一次,我們就會得到圓周率8位有效數字。也就是說,你只要進行第一步計算,其結果就大大超過了萊布尼茨公式50萬步計算的總和,這是一個何其壯哉的進步!當然,當年拉馬努金發現這個公式的初衷可不是為了圓周率計算,可能他也完全沒有想過這個公式有著如此恐怖的計算速度。
Chudnovsky公式
在進入到了計算機時代,有些算法如果易于編程,便立刻會有極其龐大的計算成果出現。1985年,Gosper利用拉馬努金公式,用計算機得到圓周率小數點后1750萬位。然而,有人仍然覺得拉馬努金公式有深度可挖,這個公式應該也會像梅欽公式一樣,可以繼續改進,獲得更加恐怖的收斂速度。
David Chudnovsky
1989年,Chudnovsky兩兄弟在一起合作,將拉馬努金公式改進不少,這個公式也當之無愧地稱為Chudnovsky公式。比起拉馬努金公式,這兩兄弟得到的公式就更加鬼畜了。就是下面這個。
Chudnovsky公式
這個公式可不得了,之前拉馬努金公式每計算一項可以獲得8位有效數字已經很了不起了,然而他們的這個公式居然可以做到每計算一項得出15位有效數字!1994年,他們利用這個強大的公式,得到了圓周率小數點后40.44億位。
你以為到了這里就結束了么?當然沒有,人們對于算法的改進是永無止境的,很多算法在手工時代看不出效率高低,但是一旦拿到計算機上執行,在計算到百萬位,上億位之后,是一定能分得清效率高低的。
高斯勒讓德迭代公式
現在我們的計算機還是只能根據指令來計算的,可能在以后會有別的方式來主導它的計算。它不怕繁雜重復的執行命令,只要你給時間和存儲空間,如果算法得當,那么就一定會有一個結果出來。比如,計算機最喜歡做的就是迭代計算,所謂迭代,就是把一個大問題先分解成很多個小過程,小過程的計算很簡單,但是后面一步的計算是建立在前一步的基礎上的。如果問題足夠麻煩,可能會有非常多的小步驟,如果你只盯著其中的一小步,你會覺得這樣的計算毫無意義,很難讓你有著繼續下去的動力。
勒讓德
比如斐波那契數列的定義,這就是一個最簡單的迭代方式:后一項總是前面兩項的和。倘若我們不知道這個數列的通項公式,那就只能用這樣近乎呆滯的方法一步一步來算。比如讓你求斐波那契數列的第30項,這個計算量對于人工來說就已經很龐大了。然而,這樣迭代的計算過程對于機器來說,卻是最擅長的事情了。
斐波那契數列遞推關系
有一個著名的圓周率迭代計算方法,這個迭代算法的收斂速度已經到了一種登峰造極的地步。高斯勒讓德迭代算法。
高斯勒讓德算法 轉自維基百科
這個算法并不是高斯和勒讓德得出的,而是1975年理查德·布倫特和尤金·薩拉明基于上面兩位大神的某些成果獨立發現的。和別的迭代公式類似,初始值很簡單,每一步計算難度也不大。不過這個收斂的速度,怎么形容呢?這套算法只要迭代25次就可以得到4500萬位有效數字!1999年,日本的高橋大介和金田康正用這個算法計算到了圓周率的2061億位數字,創造了當時的世界紀錄。
多次打破圓周率世界紀錄的金田康正
2019年3月14日,一位日裔女程序員艾瑪利用谷歌云平臺計算引擎得到了圓周率31.4萬億位數字,這也是人類目前的新紀錄。這樣的成果是在谷歌云平臺計算引擎上使用了25臺虛擬機,歷時4個多月得到的,整個計算過程中一共產生了大約170TB的數據,他們使用的就是Chudnovsky公式。
日裔女程序員艾瑪
31.4萬億位當然不是人類追求圓周率數值計算的終點,每一次數值里程碑背后都附帶著一個當時最先進的算法。到目前為止,人們仍然孜孜不倦地探索著求圓周率的新算法,我們的最終目的不是求到了多少多少位圓周率,而是在計算圓周率的過程中,我們可以檢驗很多內容深刻的算法。用更少的時間,更小的空間,更少的資源來獲得更多精準的數據。
超級計算機 晝夜不停計算圓周率
從人工計算到機器計算,關于圓周率的各路求法其實也代表了科學水平的發展水平。尤其是現代計算機算力的加成讓算法越來越深刻,成果也越來越豐富。我們也會在這條計算的道路上一直走下去,永不停息!
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.