圓周率近似值

来自维基百科,自由的百科全书

圆周率近似值

幾個文明古國均在歷史早期就計算出了較精確的的近似值以便於處理生產的需要。公元5世紀時,中國劉宋數學家祖沖之用幾何方法將圓周率計算到小數點後7位數字。大約同一時間,印度的數學家也將圓周率計算到小數點後5位。歷史上首個的精確無窮級數公式(即π的萊布尼茲公式)直到約1000年後才由印度數學家發現。[1][2]微積分的出現,很快地將的計算位數推至數百位,足以滿足任何科學工程的計算需求。在20和21世紀,由於電腦技術的快速發展,藉助電腦的計算使得的精度急速提高。截至2021年8月,十進制精度已高達6.28×1013位。[3]當前人類計算的值的主要目的是為打破記錄、測試超級電腦的計算能力和高精度乘法演算法,因為幾乎所有的科學研究對的精度要求都不會超過幾百位。[4]:17[5]

近代圓周率近似值的發展
古代圓周率近似值的發展

近似值

經典近似值

  • 整數3
  • 分數(依準確度順序排列):22/7333/106355/11352163/16604103993/33102245850922/78256779[6](選自 A063674A063673。)
  • 小數(整數後首80個位):3.14159265358979323846264338327950288419716939937510582097494459230781640628620899...[4]:240(另見 A000796

其他進位制的近似值

  • 二進制(整數後首48個位):11.001001000011111101101010100010001000010110100011...
  • 十六進制(整數後首20個位):3.243F6A8885A308D31319...[4]:242
  • 六十進制(整數後首5個位):3;8,29,44,0,47[7]

連分式

和所有無理數一樣,也無法表達成分數。但每個無理數包括,都能表達成一系列叫連分數的連續分數形式:

在這個連分數的任意一點截斷化簡,都能得到一個π的近似值;前四個近似值是:3,。這些數在歷史上是最廣為人知且廣為使用的幾個近似值。用以上方式得出的的近似值要比任何有相同或更小的整數分母的其他整數分數近似值更接近π[6]由於是一個超越數,據超越數定義來說它不是代數數,又因此不可能是一個二次無理數;是故不能表示為迴圈連分數。儘管的簡單連分數沒有表現出任何其他明顯規律,[8]數學家們發現了數個廣義連分數能表示,例如:[9]

歷史

遠古時期

圓周率在遠古時期已估算至前兩位(「3」和「1」)。[誰?]

古埃及和古巴比倫

最早有記載的對圓周率估值在古埃及古巴比倫出現,而它們兩個文明古國估值都與圓周率的「精確值」相差不到百分之一,可說已是非常精準。

古埃及古王國時期時期

有不少埃及學家認為古埃及遠至古王國時期時期,古埃及人已經會用作為計算圓周率的近似值[10][註 1],但這個說法受到了質疑。[12][13][14][15]

古巴比倫

古巴比倫曾出土一塊前19世紀前16世紀泥板,泥板上顯示了人們當時把圓周率視同,即等於3.125。[4]:167

萊因德數學紙草書

古埃及萊因德數學紙草書,是古埃及第二中間期時代(約前1650年)由僧侶阿姆士在紙草上抄寫的一部數學著作,鑑定撰寫年份為公元前1650年,但抄自一份公元前1850年的文字。它載有用作計算圓面積的公式,該公式中圓周率近似值等於,約等於3.1605。[4]:167

其中,古埃及莫斯科數學紙草書,也有載有用作計算圓面積的公式,圓周率近似值等於,約等於3.1605。。

印度

公元前9世紀的《百道梵書英語Shatapatha Brahmana》中的天文學運算把,約等於3.139,精確到99.91%,用作圓周率估值[16]

公元前6世紀儀軌經當時採用的值是,約等於3.0883265。[17]

而某些公元前150年前的其他印度文獻把圓周率視為(約等於3.1622)[4]:169

希臘的阿基米德

Thumb
π可以透過計算圓的外切多邊形及內接多邊形周長來估算

第一個有紀錄、嚴謹計算π數值的演算法是透過正多邊形的幾何演算法,是由希臘數學家阿基米德在西元前250年做的。[4]:170

這個演算法使用了有一千年之久,因而有時π亦稱阿基米德常數。[4]:175、205

阿基米德的演算法是在計算圓的外切正六邊形及內接正六邊形的邊長,以此計算的上限及下限,之後再將六邊形變成十二邊形,繼續計算邊長,一直計算到正96邊形為止。他根據多邊形的邊長證明,也就是[18]

阿基米德得到的上限也造成一個常見誤解,認為就等於[4]:171

希臘羅馬的科學家克勞狄烏斯·托勒密在《天文學大成》一書中提到π的數值是3.1416,可能來自阿基米德,也可能來自阿波羅尼奧斯[4]:176[19]

數學家在1630年利用多邊形的方式計算π到第39位小數,一直到1699年,其他數學家才利用無窮級數的方式打破其紀錄,計算到第71位小數[20]

Thumb
阿基米德發展了用多邊形近似π的計算方式

中國

周朝的周髀算經

中國歷史上,的數值有3[21]、3.1547(公元前一世紀)、(公元前100年,數值約3.1623)及(第三世紀,數值約3.1556)[4]:176–177

漢朝的劉歆和張衡

公元5年,漢朝劉歆可能計算了圓周率3.1457。[22]

而一百年後,約公元130年,張衡計算了圓周率近似值,即約等於3.1622777。[23]

托勒密

克勞狄烏斯·托勒密,也計算了圓周率近似值為,也即是377120

第一個已知的精確到小數點後三位的近似值正是托勒密做的。[24]

這個正可用兩個六十進制數字表示。

中國

三國時期吳國的王蕃

王蕃通曉天文數學。撰有《渾天圖記》、《渾天象注》。曾根據渾天說和長期的天象觀察,精心製作渾天儀。

他計算了圓周率近似值為,也即是

三國時期魏國的劉徽

大約在公元265年,魏國的數學家劉徽創立了割圓術,用3,072邊的正多邊形計算出π的數值為3.1416。[25][4]:177

劉徽後來又發明了一個較快的演算法,利用邊數差兩倍的正多邊形,其面積的差值會形成等比數列,其公比為的原理,配合96邊形算出的數值為3.14。[25]

六朝時期的何承天

Thumb
何承天調日法

何承天亦對圓周率進行研究,他創立了調日法,計算出圓周率近似值為111035/35329,也即約等於3.1429,準確至小數點後2位[26]

六朝時期的祖沖之

據《隋書·律曆志》[27]記載,祖沖之以「以直徑一億為一丈,圓周盈數三丈一尺四寸一分五厘九毫二秒七忽,朒數三丈一尺四寸一分五厘九毫二秒六忽,正數在盈朒二限之間。密率,圓徑一百一十三,圓周三百五十五。約率,圓徑七,週二十二。」,以此為直徑求圓周率,求得盈數(即過剩的近似值)為;肭數(即不足的近似值)為,圓周率的真值介於盈肭兩數之間。

《隋書》沒有具體說明祖沖之是用什麼方法計算出盈肭兩數的。一般認為,祖沖之採用的是劉徽割圓術分割到24576邊形,又用劉徽圓周率不等式得祖沖之著名的圓周率不等式:

祖沖之的這一結果精確到小數點後第7位,直到一千多年後才由15世紀的阿拉伯數學家阿爾·卡西以17位有效數字打破此記錄[28]

按照當時計算使用分數的習慣,祖沖之還採用了兩個分數值的圓周率:「約率」(或稱之為「疏率」[註 2])以及「密率」。在分母<16600的所有整分數中,密率的比值最接近圓周率[註 3]。祖沖之可能利用何承天調日法求得圓周率的約率和密率[30]。數學家華羅庚曾認為密率的求得,說明祖沖之可能已經掌握了連分數的概念。

日本數學家三上義夫說,「約率,無非是幾百年前希臘數學家阿基米德已經得到的數值,但是 這個分數,卻是翻遍古希臘,古印度和阿拉伯的數學文獻都找不到的分數,希臘人肯定不知道它;在歐洲直到1586年才由荷蘭人安托尼斯宗(Adriaan Anthoniszoon)求出了這個比值。因此,中國人掌握這個非凡的圓周率分數比歐洲早出整整一千年之久」。為紀念這位偉大的中國古代數學家,三上義夫要求把稱為「祖率」[31]

祖沖之在公元480年利用割圓術計算12,288形的邊長,得到的值在3.1415926和3.1415927之間。在之後的八百年內,這都是準確度最高的π估計值。[4]:178為紀念祖沖之對圓周率發展的貢獻,日本數學家三上義夫將這一推算值命名為「祖沖之圓周率」,簡稱「祖率」。[32]

印度

阿耶波多

印度天文學家阿耶波多在公元499年的著作《阿里亞哈塔曆書》中使用了3.1416的數值。[4]:179

婆羅摩笈多

計算出出,也即約等於3.1622777。

斐波那契

斐波那契在大約1220年利用獨立於阿基米德多邊形法,計算出3.1418[4]:180

義大利的但丁·阿利吉耶里

義大利作家但丁·阿利吉耶里則計得[4]:180

波斯的卡西

波斯天文學家卡西在1424年利用3×228邊的多邊形,計算到六十進制的第9位小數,相當十進制的第16位元小數。[33][34]這一突破成為當時的紀錄,延續了約180年。[35]

法國的法蘭索瓦·韋達

法國的數學家法蘭索瓦·韋達在1579年用3×217邊形計算到第9位小數[35]

阿德里安·范·羅門

阿德里安·范·羅門在1593年計算到第15位小數[35]

荷蘭的魯道夫·范·科伊倫

荷蘭數學家魯道夫·范·科伊倫在1596年計算到第20位小數,他之後又計算到第35位小數,因此在二十世紀初之前,圓周率在德國會稱為魯道夫數。[4]:182–183

荷蘭的威理博·司乃耳

荷蘭科學家威理博·司乃耳在1621年計算到第34位元小數[4]:183

奧地利的克里斯多夫·格林伯格(英語:Christoph Grienberger)

奧地利天文學家克里斯多夫·格林伯格英語Christoph Grienberger在1630年用1040邊形計算到第38位元小數[36],至今這仍是利用多邊形演算法可以達到最準確的結果[4]:183

無窮級數

Thumb
比較幾條曾用來計π的無窮級數的收斂情形。Sn是只取前n項的近似值。每張圖都是對應前一張圖的陰影部份,然後放大橫軸10倍。(點擊察看細節)

16世紀及17世紀時,的計算開始改用無窮級數的計算方式。無窮級數是一組無窮數列的和[4]:185–191

無窮級數讓數學家可以計算出比阿基米德以及其他用幾何方式計算的數學家更準確的結果。[4]:185–191

雖然詹姆士·格雷果里哥特弗利德·萊布尼茲等歐洲數學家利用無窮數列計算π而使得該方法為大家所知,但這種方法最早是由印度科學家在大約1400到1500年之間發現的。[4]:185-186[37]第一個記載的用無窮級數計算π的人是約公元1500年左右時,印度天文學家尼拉卡莎·薩默亞士英語Nilakantha Somayaji在他的著作《系統匯編英語Tantrasamgraha》中用梵語詩所記錄。[38]當時沒有這個數列對應的證明,而證明出現在另一本較晚的印度作品《基本原理》,年代約在公元1530年。尼拉卡莎將該數列歸功於更早期的印度數學家桑加馬格拉馬的馬德哈瓦英語Madhava of Sangamagrama( 1350 –  1425)。[38]有許多相關的無窮級數,包括有關的,現在稱為馬德哈瓦數列英語Madhava seriesπ的萊布尼茲公式[38]。瑪達瓦在1400年用無窮級數計算π到第11位小數,但在1430年一位波斯數學家卡西利用多邊形演算法否定了他算的的結果[39]

Thumb
艾薩克·牛頓利用無窮級數計算π到第15位,後來寫道:「我很羞愧的告訴你我為了這個計算用了多少個數字。」[40]

歐洲第一個發現的無窮項圓周率公式無窮乘積(和一般用來計算π的無窮級數不同),由法國科學家法蘭索瓦·韋達在1593年發現[4]:187[41]

約翰·沃利斯在1655年發現了沃利斯乘積,是歐洲第二個發現的無窮項圓周率公式[4]:187

微積分學是由英國科學家艾薩克·牛頓及德國數學家哥特弗利德·萊布尼茲在1660年代發明,因此也出現許多計算π的無窮級數。牛頓自己就利用反正弦)數列在1655年或1666年將π近似到第15位小數,後來寫到「我很羞愧的告訴你我為了這個計算用了多少個數字,我當時沒有做其他的事。」[40]

蘇格蘭數學家詹姆士·格雷果里在1671年發現了馬德哈瓦公式,萊布尼茲也在1674年發現:[4]:188–189[42]

這個公式即為格雷果里-萊布尼茲公式,在時數值為[42]1699年時英國數學家亞伯拉罕·夏普用格雷果里-萊布尼茲公式,在時計算,計算到了的第71位小數,打破由多邊形演算法得到的第39位小數的記錄。[4]:189格雷果里-萊布尼茲公式在時非常簡單,但收斂到最終值的速度非常慢,因此現在不再會用此公式來計算[4]:156

約翰·梅欽在1706年利用格雷果里-萊布尼茲級數產生了一個可以快速收斂的公式:[4]:192–193

梅欽用這個公式計算到的第100位小數[4]:72–74後來其他數學家也發展了一些類似公式,現在稱為梅欽類公式,創下了許多計算位數的記錄。[4]:72–74在進入電腦時代時,梅欽類公式仍然是個耳熟能詳的可以計算的公式,而且在約250年的時間裡,很多有關位數的記錄都是梅欽類公式所得,比如在1946年時由達尼爾·弗格森(Daniel Ferguson)用這類公式計算到第620位小數,是在沒有計算裝置輔助下的最佳紀錄。[4]:192–196, 205

1844年,計算天才扎卡里亞斯·達斯英語Zacharias Dase在德國數學家卡爾·弗里德利希·高斯的要求下以梅欽類公式心算了的200個小數位,並創下紀錄。[4]:194-196英國數學家威廉·謝克斯英語William Shanks花了15年的時間計算π到小數707位,不過中間在第528位元小數時出錯,因此後面的小數也都不正確。[4]:194–196

收斂速度

有些π的無窮級數收斂的比其他級數要快,數學家一般會選用收斂速度較快的級數,可以在較少的計算量下計算,且達到需要的準確度[43][4]:15–17, 70–72, 104, 156, 192–197, 201–202。以下是π萊布尼茲公式[4]:69–72

隨著一項一項的值加入總和中,只要項次夠多,總和最後會慢慢接近。不過此數列的收斂速度很慢,要到500,000項之後,才會精確到的第五小數[44]

尼拉卡莎在15世紀發展了另一個的無窮級數,其收斂速度較格雷果里-萊布尼茲公式要快很多,該級數為:[45]

以下比較二個級數的收斂速率:

更多資訊 , ...
的無窮級數 第1項 前2項 前3項 前4項 前5項 收斂到:
4.0000 2.6666... 3.4666... 2.8952... 3.3396... π = 3.1415...
3.0000 3.1666... 3.1333... 3.1452... 3.1396...
關閉

計算前5項後,格雷果里-萊布尼茲級數的和跟的誤差為0.2,而尼拉卡莎級數和的誤差為0.002。尼拉卡莎級數收斂的快很多,因此也比較適合用來計算的數值。收斂更快的級數有梅欽類公式楚德諾夫斯基演算法,後者每計算一項就可以得到14位元正確的小數值數[43]

電腦時代與迭代演算法

Thumb
約翰·馮·諾伊曼所在的團隊是第一個用數位計算機ENIAC來計算π
高斯-勒壤得演算法
一開始設定

迭代計算:

π的估計值為

二十世紀中期電腦技術的發展、革新再次引發了計算π位數的熱潮。美國數學家約翰·倫奇及李維·史密斯在1949年利用桌上型計算機計算到1,120位[4]:205。同年,喬治·韋斯納(George Reitwiesner)及約翰·馮·諾伊曼帶領的團隊利用反三角函式(arctan)的無窮級數,通過ENIAC計算到了小數第2,037位,花了70小時的電腦工作時間[46]。這一紀錄後來多次由其他透過arctan級數計算出的結果打破(1957年到7480位元小數,1958年到第一萬位數,1961年到第十萬位小數),直到1973年,人們計算出了小數點後的第一百萬位小數[4]:197

1980年代的兩項發明加速了的計算。第一項是人們發現了新的的迭代法去計算π的值,其計算速度比無窮級數會要快很多。另一項是人們發現了可以快速計算大數字乘積的乘法演算法[4]:15–17。這類演算法在現代π的計算上格外的重要,因為電腦大部分的工作時間都是在計算乘法[4]:131。這類演算法包括Karatsuba演算法Toom–Cook乘法及以傅立葉轉換為基礎的乘法演算法(傅立葉乘法)[4]:132, 140

迭代演算法最早是在1975年至1976年間分別由美國物理學家尤金·薩拉明英語Eugene Salamin (mathematician)及奧地利科學家理查·布蘭特英語Richard Brent (scientist)獨立提出[4]:87。這兩個演算法沒有依賴無窮級數來計算。迭代會重覆一個特定的計算,將前一次的計算結果作為這一次的輸入值,使得計算結果漸漸的趨近理想值。此方式的原始版本其實是在160年前由卡爾·弗里德利希·高斯提出,現在稱為算術-幾何平均數演算法(AGM法)或高斯-勒壤得演算法[4]:87。因為薩拉明及布蘭特都曾對此進行修改,因此這個演算法也稱為薩拉明-布蘭特演算法。

迭代演算法因為收斂速度比無窮級數快很多,在1980年代以後廣為使用。無窮級數隨著項次的增加,一般來說正確的位數也會增加幾位,但迭代演算法每多一次計算,正確的位數會呈幾何級數增長。例如薩拉明-布蘭特演算法每多一次計算,正確位數會是之前的二倍。1984年加拿大人喬納森·波溫英語Jonathan Borwein彼得·波溫英語Peter Borwein提出一個迭代演算法,每多一次計算,正確位數會是之前的四倍,1987年時有另一個迭代演算法,每多一次計算,正確位數會是之前的五倍[47]。日本數學家金田康正使用的演算法在1955年及2002年之間創下了若干個紀錄[48]。不過迭代演算法的快速收斂也有其代價,因為這個演算法需要的主記憶體的大小明顯的要比無窮級數要多[48]

計算 π {\displaystyle \pi } 的意義

Thumb
當數學家發現新的演算法、電腦變得普及時,π的已知小數位急劇增加。注意垂直坐標使用了對數坐標

一般而言,值並不需要過於精確便能夠滿足大部分的數學運算的需求。按照約爾格·阿恩特(Jörg Arndt)及克里斯多夫·黑內爾(Christoph Haenel)的計算,39個數位已足夠運算絕大多數的宇宙學的計算需求,因為這個精確度已能夠將可觀測宇宙圓周的精確度準確至一個原子大小[49]。 儘管如此,人們仍然是奮力地運算出小數點後的上千甚至上百萬個數位[4]:17–19。這一部分是出於人類對打破記錄的衝動,因為那些和有關的成就往往成為世界各地的新聞頭條[50][51]。此外,這其中也有一些實際的好處,例如測試超級電腦、測試數值分析演算法等(包括高精度乘法演算法英語Multiplication algorithm#Fast multiplication algorithms for large inputs)。在純粹數學的領域中,計算的位數也能讓人們來評定π的隨機性[4]:18

快速收斂級數

Thumb
斯里尼瓦瑟·拉馬努金的肖像,他在印度獨立工作時提出了許多新穎的計算的數列。

現代計算的程式不僅僅局限於迭代演算法。20世紀80與90年代,人們發現了一些可用來計算的新無窮級數,其收斂速度可與迭代演算法媲美,而又有著複雜度、主記憶體密集度更低的優勢。[48]印度數學家斯里尼瓦瑟·拉馬努金是這方面的先驅,他在1914年發表了許多與相關的公式,這些公式十分新穎,極為優雅而又頗具數學深度,收斂速度也非常快。[4]:103–104下式即為一例,其中用到了模方程式

這個無窮級數收斂速度遠快於絕大多數反正切數列,包括梅欽公式。[4]:104第一位使用拉馬努金公式計算並取得進展的是比爾·高斯珀英語Bill Gosper,他在1985年算得了小數點後一千七百萬位。[4]:104, 206拉馬努金公式開創了現代數值近似演算法的先河,此後波爾文兄弟和楚德諾夫斯基兄弟英語Chudnovsky brothers進一步發展了這類演算法。[4]:110–111後者於1987年提出了楚德諾夫斯基公式,如下所示:

此公式每計算一項就能得到的約14位元數值[52],因而用於突破圓周率的數位的計算。利用這個公式,楚德諾夫斯基兄弟於1989年算得小數點後10億(109)位,法布里斯·貝拉於2009年算得2.7千億(2.7×1012)位,亞歷山大·易和近藤滋在2011年算得一萬億(1013)位。[4]:110–111, 206[53][54]類似的公式還有拉馬努金-佐藤級數英語Ramanujan–Sato series

2006年,加拿大數學家西蒙·普勞夫利用PSLQ整數關係演算法英語integer relation algorithm[55]按照以下模版生成了幾個計算的新公式:

其中e是一個奇數是普勞夫計算出的有理常數。[56]

蒙地卡羅方法

Thumb
布豐投針問題,多枚長度為的針隨機地拋擲向平面。
Thumb
隨機地往內切四分之一圓的正方形內拋擲大量的點。
蒙地卡羅方法基於隨機試驗結果計算的近似值

蒙地卡羅方法是以機率統計理論為指導的一類非常重要的數值計算方法,通過進行大量重複試驗計算事件發生的頻率,按照大數法則(即當試驗次數充分大時,頻率充分地接近於機率)可以求得的近似值[57]布豐投針問題就是其中一個應用的例子:當一枚長度為的針隨機地往一個畫滿間距為的平行線的平面上拋擲次, 如果針與平行直線相交了次,那麼當充分大時就可根據以下公式算出的近似值[58]

另一個利用蒙特卡羅方法計算值的例子是隨機地往內切四分之一圓的正方形內拋擲大量的點,落在四分之一圓內的點的數量與拋擲點的總量的比值會近似等於.[4]:39–40[59]


此外,還可以通過進行隨機漫步試驗,並利用蒙特卡羅方法計算值,如拋擲一枚均勻的硬幣次,並記錄正面朝上的次數,所得結果中,正面朝上的次數服從二項分布

因為硬幣均勻,所以N次試驗中每次試驗結果相互獨立。由此可定義一系列獨立的隨機變數,當拋擲結果為正面時否則為-1,且且取何值具有相同的機率(即,正面朝上和背面朝上的機率相同)。對隨機變數求和可得

k為「硬幣正面朝上的次數」減去「硬幣反面朝上的次數」,即可得到。對式子進行轉換,得,因此

,其中

可以證明[60]

,以及

並且當變大時,的值會漸近於,因此當充分大時可根據以下公式算出的近似值:[61]

和其他計算值的方法相比,蒙地卡羅方法收斂速度很慢,而且無論進行多少次實驗,都無從得知的估值已經精確到了第幾位。因此,當追求速度或精度時,蒙地卡羅方法不適合用來估計[4]:43[62]

閥門演算法

1995年引入的兩個演算法開闢了研究的新途徑。因為每計算出一位數字,該數就會像流過閥門的水一樣不會再出現在後續的計算過程中,這種新進演算法叫做閥門演算法英語spigot algorithm[4]:77–84[63]這就與無窮級數及迭代演算法形成對比——無窮級數和迭代演算法自始至終的每一步計算都會涉及到之前所有步驟計算出的中間值。[4]:77–84

1995年,美國數學家斯坦·華格納英語Stan Wagon和史丹利·拉比諾維茨(Stanley Rabinowitz)發明了一種簡單的閥門演算法[63][4]:77[64],其運算速度類似arctan演算法,但速度比迭代演算法要慢[4]:77

貝利-波爾溫-普勞夫公式(BBP)是另一個閥門演算法,屬於一種位數萃取演算法英語digit extraction algorithm。1995年,西蒙·普勞夫等人發現[4]:117, 126–128[65]

這個公式和其他的公式不同,可以在十六進制下計算的任意位數小數,而不用計算所有前面的小數位數[4]:117, 126–128。一個十六進制下的數位可計算得到特定一個二進制的數位;想要得到一個八進制數位的話,計算一、兩個十六進制小數即可。目前也已發現一些這種演算法的變體,不過人們還沒有發現針對十進制、可以快速產生特定位數小數數字的位數萃取演算法[66]。位數萃取演算法的一個重要用途是用來確認聲稱是計算到小數位數的新記錄:若有聲稱是新紀錄的計算結果出現,先將十進制的數值轉換到十六進制,再用貝利-波爾溫-普勞夫公式,去確認最後的一些位數(用亂數決定),若這些位數都對,人們就能有一定把握認為此計算結果是對的[54]

在1998年到2000年之間,分散式計算計畫PiHex英語PiHex利用貝拉公式(貝利-波爾溫-普勞夫公式的一種變體)計算的第1015個位,結果是0[4]:20[67]。在2010年9月,一名雅虎員工利用公司的Apache Hadoop應用程式在上千台電腦上計算在2×1015個數位開始,往後數的256個位,其第2×1015個位剛好也是0[68]

趣聞

值得注意的是,一些法律或歷史文字欲「定義π」為有理數,尤其是1897年的「印第安納州法案」,指明「直徑和圓周比例為四分之五比4(暗示「π= 3.2」);和希伯來聖經中的一個段落,暗示「π= 3」。

聖經估算的價值

印第安納州法案

計算圓周率近似值的方程式的發展

梅欽類公式(Machin-like formulae)

其他古代公式

現代公式

二進制數位公式

π和一個碎形

多方面的近似值

在古代,人們使用60進制來計算。在60進制中,π能被準確至小數點後八位(十進制),而這數字是3:8:29:4460,即是:

(下一個60進制的數位為0)

除此之外,π的近似值還能以以下方式表示:

  • 準確至3位:
  • 準確至4位元:
[69]
  • 準確至4位元:
[70]
  • 準確至5位:
  • 準確至7位:
前述無窮級數僅取第1項即得
  • 準確至9位:
這是拉馬努金提出的,拉馬努金說他在夢中收到印度神Namagiri的啟示。[71]
  • 準確至10位:
  • 準確至10位:
  • 準確至18位元:
[72]
  • 準確至30位:

圓形的面積

可以通過蒙地卡羅方法來計算圓周率

以原點(0, 0)為圓心,畫一個半徑為的圓。然後以原點為中心,畫一個邊長為的正方形。圓和正方形內切。

圓的面積為,正方形的面積為

於是有,

通過生成0到r之間亂數作為一個點的橫縱坐標,所有點均落在正方形內。

通過統計圓內的點數與總點數

當隨時點的數目增加時,所得結果會越接近於圓周率。

但是該方法也有不足之處。具體可參考蒙地卡羅方法

以正多邊形來計算π的值

連分數

π連分數表示式是[3; 7, 15, 1, 292, 1, 1, ...]。這連分數沒有任何模式。π有很多用一條簡單的規矩然製成的廣義連分數

(其他連分數能在這裡頁面存檔備份,存於網際網路檔案館)檢視。)

三角函式

萊布尼茲公式

反正切

反正弦

薩拉明 - 布倫特公式

計算任意數位的方法

在1995年,西蒙·普勞夫發現了貝利-波爾溫-普勞夫公式。這公式能在16進制中計算pi的任意數位,而不用計算之前的數位。[73]

在1996年,西蒙·普勞夫發明了一個公式,能在O(n3log(n)3)的時間之內計算出pi在任意進制的第n個數位[74]。在1997年,法布里斯·貝拉發明了另一個公式,把計算所需時間縮短至O(n2)。他又發明了在2進制計算pi的公式。[75]

有效的方法

在1961年,丹尼爾柄英語Daniel Shanks和他的團隊在美國海軍研究實驗室計算了π的前100,000數位。

他和他的團隊使用了兩個不同的冪級數來計算π的數值。第一個冪級數中,任何錯誤都會造成一個比較高的數值;而另一個中,任何錯誤都會造成一個比較低的數值。所以如果兩個冪級數計算出同樣的數值,那個數值就肯定正確。美國海軍研究實驗室發放了π的前100,000數位。

但是以上的兩個冪級數也要很長的時間才能計算出結果。相反地,約翰·梅欽的公式與反正切泰勒級數一起使用則能很快地計算結果:

使用複數極坐標系便能證實這公式,以以下的數學式開始:

這類的公式被稱為梅欽類公式。(注意,{ x,y} = {239, 132}是佩爾方程式x2-2y2 = -1」的其中一個解答。)

印度數學家斯里尼瓦瑟·拉馬努金發現了π的很多其他表示方式。他與戈弗雷·哈羅德·哈代一起工作了很多年。

如果要計算π小數點後很多位,計算者通常會使用高斯-勒壤得演算法波爾溫公式英語Borwein's algorithm,和1976年發明的薩拉明 - 布倫特公式

π1/π的小數點後首十萬位能在古騰堡計劃裡查閱(參見#外部連結)。

在2002年12月,在東京大學進修的金田康正發放了π小數點後1,241,100,000,000位的值,創造了新的世界記錄。他在2002年9月以六十四部日立超級電腦計算出這值。這些電腦有1TB的記憶體,而且能在每秒執行2兆次運算。上一個記錄(21億位)所使用的電腦每秒只能執行1兆次運算。金田康正使用了以下公式:

K. Takano (1982).
F. C. W. Störmer (1896).

這些近似值由於有太多數位,所以沒有實際用途,只是用來測試超級電腦。

在1997年,大衛·貝利(David H. Bailey英語David H. Bailey)、皮特·波爾溫英語Peter Borwein西蒙·普勞夫發佈了一條新的公式來計算π的值:

這公式能在不知道前k - 1數位的值之下,在2進制16進制中計算出π的第k個數位的值。貝利的網頁頁面存檔備份,存於網際網路檔案館)包含了計算方法,而且把方法以幾個程式語言記下。PiHex英語PiHex計算出π小數點後一兆數位的值。

法布里斯·貝拉推出了貝利-波爾溫-普勞夫公式的改良版——貝拉公式

還有其他計算π的值的公式:

牛頓
斯里尼瓦瑟·拉馬努金

拉馬努金的公式收歛的速度異常地快,這公式後來在2000年演變成最快的公式(楚德諾夫斯基演算法):

David ChudnovskyGregory Chudnovsky.

關於圓周率近似值的計劃

計算圓周率近似值的軟體

General purpose

大多數電腦代數系統可以計算出π和其他常見的數學常數到任何所需的精度。

計算π的功能中還包括許多通用庫任意精度算術運算,例如CLNMPFR

注釋

參考資料

Wikiwand - on

Seamless Wikipedia browsing. On steroids.