几个文明古国均在歷史早期就计算出了较精确的的近似值以便于處理生产的需要。公元5世纪时,中國劉宋数学家祖冲之用几何方法将圆周率计算到小数点后7位数字。大约同一时间,印度的数学家也将圆周率计算到小数点后5位。历史上首个的精确无穷级数公式(即π的莱布尼茨公式)直到约1000年后才由印度数学家发现。微積分的出現,很快地將的計算位數推至數百位,足以滿足任何科學工程的計算需求。在20和21世纪,由于计算机技术的快速发展,借助计算机的计算使得的精度急速提高。截至2021年8月,的十进制精度已高达6.28×1013位。当前人类计算的值的主要目的是为打破记录、测试超级计算机的计算能力和高精度乘法算法,因为几乎所有的科学研究对的精度要求都不会超过几百位。
近似值
經典近似值
*整数:3
*分数(依准确度顺序排列):、、、、、
连分式
和所有无理数一样,也无法表達成分数。但每个无理数包括,都能表達成一系列叫连分数的连续分数形式:
:
\pi=3+\textstyle \frac{1}{7+\textstyle \frac{1}{15+\textstyle \frac{1}{1+\textstyle \frac{1}{292+\textstyle \frac{1}{1+\textstyle \frac{1}{1+\textstyle \frac{1}{1+\ddots}}}}}}}
在这个连分数的任意一点截断化简,都能得到一个的近似值;前四个近似值是:3,\frac{22}{7},\frac{333}{106},\frac{355}{113}。这些数在历史上是最广为人知且广為使用的几个近似值。用以上方式得出的的近似值要比任何有相同或更小的整数分母的其他整数分数近似值更接近。由于是一个超越数,据超越数定义来说它不是代數數,又因此不可能是一个二次無理數;是故不能表示为循环连分数。尽管的简单连分数没有表现出任何其他明显规律,数学家们發現了数个广义连分数能表示,例如:
:\pi=\textstyle \cfrac{4}{1+\textstyle \frac{1^2}{2+\textstyle \frac{3^2}{2+\textstyle \frac{5^2}{2+\textstyle \frac{7^2}{2+\textstyle \frac{9^2}{2+\ddots}}}}}}
=3+\textstyle \frac{1^2}{6+\textstyle \frac{3^2}{6+\textstyle \frac{5^2}{6+\textstyle \frac{7^2}{6+\textstyle \frac{9^2}{6+\ddots}}}}}
=\textstyle \cfrac{4}{1+\textstyle \frac{1^2}{3+\textstyle \frac{2^2}{5+\textstyle \frac{3^2}{7+\textstyle \frac{4^2}{9+\ddots}}}}}
歷史
遠古時期
古埃及和古巴比倫
最早有記載的对圓周率估值在古埃及和古巴比倫出现,而它們兩個文明古国估值都与圆周率的「精確值」相差不到百分之一,可說已是非常精準。
古埃及古王國時期時期
有不少埃及學家認為古埃及遠至古王國時期時期,古埃及人已經會用\frac{22}{7}作為計算圓周率的近似值,但這個說法受到了質疑。
古巴比倫
古巴比倫曾出土一塊前19世纪至前16世纪的泥板,泥板上顯示了人们当时把圓周率視同\frac{25}{8},即等於3.125。。
而公元前6世紀的儀軌經當時採用的值是\left(\frac{9785}{5568}\right)^2,約等於3.0883265。
而某些公元前150年前的其他印度文獻把圓周率視為\sqrt{10}(約等於3.1622)
阿基米德得到的上限\frac{22}{7}也造成一個常見誤解,認為就等於\frac{22}{7}
數學家在1630年利用多邊形的方式計算到第39位小數,一直到1699年,其他數學家才利用無窮級數的方式打破其紀錄,計算到第71位小數。
中國
周朝的周髀算經
在中国历史上,的數值有3、3.1547(公元前一世紀)、\sqrt{10}(公元前100年,數值約3.1623)及\frac{142}{45}(第三世紀,數值約3.1556)
而一百年後,約公元130年,张衡計算了圓周率近似值\sqrt{10},即約等於3.1622777。
托勒密
克劳狄乌斯·托勒密,也計算了圆周率近似值為\frac{377}{120},也即是3.141\overline{6}。
第一個已知的精確到小數點後三位的近似值正是托勒密做的。
這個3+8/60+30/60^2正可用兩個六十進制數字表示。
中國
三國時期吳國的王蕃
王蕃通曉天文數學。撰有《渾天圖記》、《渾天象注》。曾根據渾天說和長期的天象觀察,精心製作渾天儀。
他計算了圆周率近似值為\frac{142}{45},也即是3.1\overline{5}。
三國時期魏國的刘徽
大約在公元265年,魏國的數學家刘徽創立了割圆术,用3,072邊的正多邊形計算出的數值為3.1416。。
六朝時期的祖冲之
据《隋书·律曆志》记载,祖沖之以「以直徑一億為一丈,圓周盈數三丈一尺四寸一分五厘九毫二秒七忽,朒數三丈一尺四寸一分五厘九毫二秒六忽,正數在盈朒二限之間。密率,圓徑一百一十三,圓周三百五十五。約率,圓徑七,週二十二。」,以此为直径求圆周率,求得盈数(即过剩的近似值)为3.1415927;肭数(即不足的近似值)为3.1415926,圆周率的真值介于盈肭两数之间。
《隋书》没有具体说明祖冲之是用什么方法计算出盈肭两数的。一般认为,祖冲之采用的是刘徽割圆术分割到24576边形,又用刘徽圆周率不等式得祖冲之著名的圆周率不等式:
3.1415926 。
祖冲之的这一结果精确到小数点后第7位,直到一千多年后才由15世纪的阿拉伯数学家阿尔·卡西以17位有效数字打破此记录。
按照当时计算使用分数的习惯,祖冲之还采用了两个分数值的圆周率:“约率”\tfrac{22}{7}(或称之为“疏率”)以及“密率”\tfrac{355}{113}=3.141592920354。在分母\frac{52163}{16604}=3.1415923874才比祖率略准。}}。祖冲之可能利用何承天的调日法求得圆周率的约率和密率。数学家华罗庚曾认为密率的求得,说明祖冲之可能已经掌握了连分数的概念。
日本数学家三上义夫说,“约率 \pi=\tfrac{22}{7},无非是几百年前希腊数学家阿基米德已经得到的数值,但是 \pi=\tfrac{355}{113} 这个分数,却是翻遍古希腊,古印度和阿拉伯的数学文献都找不到的分数,希腊人肯定不知道它;在欧洲直到1586年才由荷兰人安托尼斯宗(Adriaan Anthoniszoon)求出了\tfrac{355}{113}这个比值。因此,中国人掌握这个非凡的圆周率分数比欧洲早出整整一千年之久”。为纪念这位伟大的中国古代数学家,三上义夫要求把355 \over 113称为“祖率”。
祖冲之在公元480年利用割圆术計算12,288形的邊長,得到的值在3.1415926和3.1415927之间。在之後的八百年內,這都是準確度最高的估計值。
印度
阿耶波多
印度天文學家阿耶波多在公元499年的著作《阿里亚哈塔历书》中使用了3.1416的數值。這一突破成為當時的紀錄,延續了約180年。
法國的弗朗索瓦·韦达
法國的數學家弗朗索瓦·韦达在1579年用3×217邊形計算到第9位小數,至今這仍是利用多邊形算法可以達到最準確的結果第一個记载的用無窮级数計算的人是约公元1500年左右时,印度天文學家在他的著作《》中用梵語詩所記錄。當時沒有這個數列對應的證明,而證明出現在另一本較晚的印度作品《》,年代約在公元1530年。尼拉卡莎將該數列歸功於更早期的印度數學家( 1350 – 1425)。。
的畫像|艾萨克·牛顿利用無窮级数計算到第15位,後來寫道:「我很羞愧的告訴你我為了這個計算用了多少個數字。」:
: \frac2\pi = \frac{\sqrt2}2 \cdot \frac{\sqrt{2+\sqrt2}}2 \cdot \frac{\sqrt{2+\sqrt{2+\sqrt2}}}2 \cdots
約翰·沃利斯在1655年發現了沃利斯乘积,是歐洲第二個發現的無窮項圓周率公式
蘇格蘭數學家詹姆斯·格雷果里在1671年發現了馬德哈瓦公式,莱布尼茨也在1674年發現:1699年時英國數學家亚伯拉罕·夏普用格雷果里-莱布尼茨公式,在z=\frac{1}{\sqrt{3}}時計算,計算到了的第71位小數,打破由多邊形算法得到的第39位小數的记录。。
尼拉卡莎在15世紀發展了另一個的無窮級數,其收斂速度較格雷果里-萊布尼茨公式要快很多,該級數為:
: \pi = 3 + \frac{4}{2\times3\times4} - \frac{4}{4\times5\times6} + \frac{4}{6\times7\times8} - \frac{4}{8\times9\times10} + \cdots
以下比較二個級數的收斂速率:
計算前5項後,格雷果里-萊布尼茨級數的和跟的誤差為0.2,而尼拉卡莎級數和的誤差為0.002。尼拉卡莎級數收斂的快很多,因此也比較適合用來計算的數值。收斂更快的級數有梅欽類公式及楚德诺夫斯基算法,後者每計算一項就可以得到14位正確的小數值數。這一紀錄後來多次由其他透過arctan級數计算出的結果打破(1957年到7480位小數,1958年到第一萬位數,1961年到第十萬位小數),直到1973年,人们计算出了小数点后的第一百萬位小數。日本數學家金田康正使用的演算法在1955年及2002年之間創下了若干个紀錄。
计算的意义
。]]
一般而言,值并不需要过于精确便能够满足大部分的数学运算的需求。按照約爾格·阿恩特(Jörg Arndt)及克里斯托夫·黑內爾()的计算,39個數位已足夠運算絕大多數的宇宙学的计算需求,因為這個精確度已能夠将可觀測宇宙圆周的精确度準確至一個原子大小。
尽管如此,人們仍然是奋力地運算出小数点后的上千甚至上百萬個數位。此外,这其中也有一些實際的好處,例如測試超级计算机、測試数值分析算法等(包括)。在純粹數學的领域中,计算的位数也能让人们来评定的隨機性,因而用於突破圆周率的数位的计算。利用这个公式,楚德诺夫斯基兄弟于1989年算得小数点后10亿(109)位,法布里斯·贝拉于2009年算得2.7千亿(2.7×1012)位,亚历山大·易和近藤滋在2011年算得一万亿(1013)位。类似的公式还有。
2006年,加拿大数学家西蒙·普勞夫利用PSLQ按照以下模版生成了几个计算的新公式:
:\pi^k = \sum_{n=1}^\infty \frac{1}{n^k} \left(\frac{a}{q^n-1} + \frac{b}{q^{2n}-1} + \frac{c}{q^{4n}-1}\right),
其中q为,k是一个奇数,a,b,c是普勞夫计算出的有理常数。
蒙特卡洛方法
蒙特卡洛方法是以概率统计理论为指导的一类非常重要的数值计算方法,通过进行大量重复试验计算事件发生的频率,按照大数定律(即当试验次数充分大时,频率充分地接近于概率)可以求得的近似值。 布豐投針問題就是其中一个应用的例子:当一枚长度为l的针随机地往一个画满间距为t\left ( l\leq t \right )的平行线的平面上抛掷n次, 如果针与平行直线相交了m次,那么当n充分大时就可根据以下公式算出的近似值:
: \pi \approx \frac{2n\ell}{mt}
另一个利用蒙特卡罗方法计算值的例子是随机地往内切四分之一圆的正方形内抛掷大量的点,落在四分之一圆内的点的数量与抛掷点的总量的比值会近似等于\frac{\pi}{4}.
此外,还可以通过进行随机游走试验,并利用蒙特卡罗方法计算值,如抛掷一枚均匀的硬币N次,并记录正面朝上的次数,所得结果中,正面朝上的次数n_N服从二項分佈且
:\Pr(n_N = m) = \binom N m (\frac{1}{2})^m (\frac{1}{2})^{N-m}
因为硬币均匀,所以次试验中每次试验结果相互独立。由此可定义一系列独立的随机变量X_k\left ( k=1,2,\ldots \right ),当抛掷结果为正面时X_k=1否则为-1,且X_k=\pm 1且取何值具有相同的概率(即,正面朝上和背面朝上的概率相同)。对随机变量X_k\left ( k=1,2,\ldots, N \right )求和可得
:W_N = \sum_{k=1}^N X_k
设为“硬币正面朝上的次数”减去“硬币反面朝上的次数”,即可得到m-\left ( N-m \right )=k。对式子进行变换,得m=\frac{N+k}{2},因此
:\Pr(W_N = k) = \binom N \frac{N+k}{2} \frac{1}{2^N},其中k=-N,-N+2,-N+4,\ldots,N-2,N。
可以证明,
:E(W_N) = 0,E(W_N^2) = N,以及E(|W_N|) = \binom{N}{\left\lceil{N/2}\right\rceil \frac{\left\lceil{N/2}\right\rceil}{2^{N-1}}} = \begin{cases}
\frac{(N-1)!!}{(N-2)!!}, & \text{若 }N\text{偶 ,} \\
\frac{N!!}{(N-1)!!}, & \mbox{若 }N\mbox{奇 .}
\end{cases}
并且当N变大时,E\left ( \left \vert W_N \right \vert \right )的值会渐近于\sqrt{\frac{2N}{\pi}},因此当N充分大时可根据以下公式算出'的近似值:**
:\pi \approx \frac{2N}{|W_N|^2}
和其他计算值的方法相比,蒙特卡洛方法收敛速度很慢,而且无论进行多少次实验,都无从得知的估值已经精确到了第几位。因此,当追求速度或精度时,蒙特卡洛方法不适合用来估计。
阀门算法
1995年引入的兩個算法开辟了研究的新途径。因为每计算出一位数字,該數就会像流过阀门的水一样不会再出现在后续的计算过程中,这种新進算法叫做。这就与无穷级数及迭代算法形成对比——无穷级数和迭代算法自始至终的每一步计算都会涉及到之前所有步骤计算出的中间值。,其運算速度類似arctan演算法,但速度比迭代算法要慢
: \pi = \sum_{k=0}^\infty \frac{1}{16^k} \left( \frac{4}{8k + 1} - \frac{2}{8k + 4} - \frac{1}{8k + 5} - \frac{1}{8k + 6}\right)
這個公式和其他的公式不同,可以在十六进制下計算的任意位數小數,而不用計算所有前面的小數位數。位數萃取演算法的一個重要用途是用來確認聲稱是計算到小數位數的新記錄:若有聲稱是新紀錄的計算結果出現,先將十進制的數值轉換到十六進制,再用贝利-波尔温-普劳夫公式,去確認最後的一些位數(用亂數決定),若這些位數都對,人们就能有一定把握认为此計算結果是对的。在2010年9月,一名雅虎員工利用公司的Apache Hadoop應用程式在上千台電腦上計算在2×1015個数位开始,往后数的256個位,其第2×1015個位剛好也是0。
趣聞
值得注意的是,一些法律或歷史文本欲「定義π」為有理數,尤其是1897年的「印第安納州法案」,指明「直徑和圓周比例為四分之五比4(暗示「π= 3.2」);和希伯來聖經中的一個段落,暗示「π= 3」。
聖經估算的價值
印第安納州法案
計算圓周率近似值的方程的發展
梅欽類公式(Machin-like formulae)
其他古代公式
現代公式
二進制數位公式
和一個碎形
多方面的近似值
在古代,人們使用60進制來計算。在60進制中,能被準確至小數點後八位(十進制),而這數字是3:8:29:44,即是:
: 3 + \frac{8}{60} + \frac{29}{60^2} + \frac{44}{60^3} = 3.14159\ 259^+
(下一個60進制的數位為0)
除此之外,的近似值還能以以下方式表示:
*準確至3位:
:: \sqrt{2} + \sqrt{3} = 3.146^+
*準確至4位:
::\sqrt{7+\sqrt{6+\sqrt{5}}} = 3.1416^+
*準確至4位:
::\sqrt[3]{31} = 3.1413^+
*拉馬努金的近似值,準確至4位:
::\frac{9}{5}+\sqrt{\frac{9}{5}} = 3.1416^+
*準確至5位:
::\frac{7^7}{4^9} = 3.14156^+
*準確至7位:
::\frac{355}{113} = 3.14159\ 29^+
*拉馬努金的近似值,準確至7位:
::\frac{9801}{2206 \sqrt{2}}=3.1415927^+
:由前述無窮級數僅取第1項即得
*準確至9位:
:: \sqrt[4]{3^4+2^4+\frac{1}{2+(\frac{2}{3})^2}} =\sqrt[4]{\frac{2143}{22}} = 3.14159\ 2652^+
: 這是拉馬努金提出的,拉馬努金說他在夢中收到印度神Namagiri的啟示。
*準確至10位:
::\frac{63}{25} \times \frac{17 + 15\sqrt{5}}{7 + 15\sqrt{5}} = 3.14159\ 26538^+
*準確至10位:
::\sqrt[193]{\frac{10^{100}}{11222.11122}} = 3.14159\ 26536^+
*準確至18位:
::\frac{80\sqrt{15}(5^4+53\sqrt{89})^\frac{3}{2}}{3308(5^4+53\sqrt{89})-3\sqrt{89}}
*準確至30位:
圓形的面積
可以通过蒙特卡洛方法来计算圆周率\pi。
以原点(0, 0)为圆心,画一个半径为r的圆。然后以原点为中心,画一个边长为2r的正方形。圆和正方形内切。
圆的面积为A_1=\pi*r^2,正方形的面积为A_2=(2r)^2=4r^2。
于是有,A_1/A_2=\pi/4。
通过生成0到r之间随机数作为一个点的横纵坐标,所有点均落在正方形内。
通过统计圆内的点数N_{inside}与总点数N_{total},\pi=4A_1/A_2=4N_{inside}/N_{total}。
当随时点的数目增加时,所得结果会越接近于圆周率。
但是该方法也有不足之处。具体可参考蒙特卡洛方法。
以正多邊形來計算的值
連分數
的連分數表示式是[3; 7, 15, 1, 292, 1, 1, ...]。這連分數沒有任何模式。有很多用一條簡單的規矩然製成的廣義連分數
:
\pi= {3 + \cfrac{1^2}{6 + \cfrac{3^2}{6 + \cfrac{5^2}{6 + \ddots\,}}}}\!
:
\pi = \cfrac{4}{1 + \cfrac{1^2}{3 + \cfrac{2^2}{5 + \cfrac{3^2}{7 + \ddots}}}}\!
(其他連分數能在[http://functions.wolfram.com/Constants/Pi/10/ 這裡]查看。)
三角函數
莱布尼茨公式
反正切
反正弦
薩拉明 - 布倫特公式
計算任意數位的方法
在1995年,西蒙·普勞夫發現了贝利-波尔温-普劳夫公式。這公式能在16進制中計算的任意數位,而不用計算之前的數位。
: \pi=\sum_{n=0}^\infty \left(\frac{4}{8n+1}-\frac{2}{8n+4}-\frac{1}{8n+5}-\frac{1}{8n+6}\right)\left(\frac{1}{16}\right)^n\!
在1996年,西蒙·普勞夫發明了一個公式,能在O(3log()3)的時間之內計算出在任意進制的第個數位。在1997年,法布里斯·贝拉發明了另一個公式,把計算所需時間縮短至O(2)。他又發明了在2進制計算的公式。
: \pi=\frac{1}{2^6}\sum_{n=0}^\infty \frac{(-1)^n}{2^{10n}} \left (-\frac{2^5}{4n+1}-\frac{1}{4n+3}+\frac{2^8}{10n+1}-\frac{2^6}{10n+3}-\frac{2^2}{10n+5}-\frac{2^2}{10n+7}+\frac{1}{10n+9}\right )\!
有效的方法
在1961年,和他的團隊在美國海軍研究實驗室計算了的前100,000數位。
他和他的團隊使用了兩個不同的幂級數來計算的數值。第一個幂級數中,任何錯誤都會造成一個比較高的數值;而另一個中,任何錯誤都會造成一個比較低的數值。所以如果兩個幂級數計算出同樣的數值,那個數值就肯定正確。美國海軍研究實驗室發放了的前100,000數位。
但是以上的兩個幂級數也要很長的時間才能計算出結果。相反地,約翰·梅欽的公式與反正切的泰勒级数一起使用則能很快地計算結果:
: \frac{\pi}{4} = 4 \arctan\frac{1}{5} - \arctan\frac{1}{239}\!
使用複數的極坐標系便能證實這公式,以以下的數學式開始:
:(5+i)^4\cdot(239-i)=2^2 \cdot 13^4(1+i).\!
這類的公式被稱為梅欽類公式。(注意,{ ,} = {239, 132}是佩爾方程「2-22 = -1」的其中一個解答。)
印度數學家斯里尼瓦瑟·拉马努金發現了的很多其他表示方式。他與戈弗雷·哈罗德·哈代一起工作了很多年。
如果要計算小數點後很多位,計算者通常會使用高斯-勒让德算法,,和1976年發明的薩拉明 - 布倫特公式。
和1/的小數點後首十萬位能在古腾堡计划裡查閱(參見#外部連結)。
在2002年12月,在東京大學進修的金田康正發放了小數點後1,241,100,000,000位的值,創造了新的世界記錄。他在2002年9月以六十四部日立的超級電腦計算出這值。這些電腦有1TB的記憶體,而且能在每秒執行2兆次運算。上一個記錄(21億位)所使用的電腦每秒只能執行1兆次運算。金田康正使用了以下公式:
: \frac{\pi}{4} = 12 \arctan\frac{1}{49} + 32 \arctan\frac{1}{57} - 5 \arctan\frac{1}{239} + 12 \arctan\frac{1}{110443}\!
:K. Takano (1982).
: \frac{\pi}{4} = 44 \arctan\frac{1}{57} + 7 \arctan\frac{1}{239} - 12 \arctan\frac{1}{682} + 24 \arctan\frac{1}{12943}\!
:F. C. W. Störmer (1896).
這些近似值由於有太多數位,所以沒有實際用途,只是用來測試超級電腦。
在1997年,大衛·貝利()、和西蒙·普勞夫發佈了一條新的公式來計算的值:
: \pi = \sum_{k = 0}^{\infty} \frac{1}{16^k}
\left( \frac{4}{8k + 1} - \frac{2}{8k + 4} - \frac{1}{8k + 5} - \frac{1}{8k + 6}\right).\!
這公式能在不知道前 - 1數位的值之下,在2進制或16進制中計算出的第個數位的值。[http://crd.lbl.gov/~dhbailey/ 貝利的網頁]包含了計算方法,而且把方法以幾個程式語言記下。計算出小數點後一兆數位的值。
法布里斯·贝拉推出了贝利-波尔温-普劳夫公式的改良版——貝拉公式:
:\pi = \frac{1}{2^6} \sum_{n=0}^{\infty} \frac{{(-1)}^n}{2^{10n}} \left( - \frac{2^5}{4n+1} - \frac{1}{4n+3} + \frac{2^8}{10n+1} -\frac{2^6}{10n+3} - \frac{2^2}{10n+5} - \frac{2^2}{10n+7} + \frac{1}{10n+9} \right)\!
還有其他計算的值的公式:
:
\frac{\pi}{2}=\sum_{k=0}^\infty\frac{k!}{(2k+1)!!}=\sum_{k=0}^{\infty}\frac{2^k k!^2}{(2k+1)!} =1+\frac{1}{3}\left(1+\frac{2}{5}\left(1+\frac{3}{7}\left(1+\cdots\right)\right)\right)\!
:牛頓
: \frac{1}{\pi} = \frac{2\sqrt{2}}{9801} \sum^\infty_{k=0} \frac{(4k)!(1103+26390k)}{(k!)^4 396^{4k}}\!
:斯里尼瓦瑟·拉马努金
拉馬努金的公式收歛的速度異常地快,這公式後來在2000年演變成最快的公式(楚德諾夫斯基算法):
: \frac{1}{\pi} = 12 \sum^\infty_{k=0} \frac{(-1)^k (6k)! (13591409 + 545140134k)}{(3k)!(k!)^3 640320^{3k + 3/2}}\!
:David Chudnovsky和Gregory Chudnovsky.
關於圓周率近似值的計劃
計算圓周率近似值的軟件
General purpose
大多数计算机代数系统可以计算出π和其他常见的数学常数到任何所需的精度。
计算π的功能中还包括许多通用库任意精度算术运算,例如CLN和MPFR。
相關條目
*證明22/7大於π
注释
參考資料
评论 (0)