一說起圓周率π,很多人就想到祖沖之老爺子的割圓術。
說實話,祖大人也挺無奈的,從我們小學就開始割圓,一直割到大學還在割。
但割圓術隻适合手算,如何用電腦算π呢?
泰勒展開泰勒展開在科學計算中簡直有着匪夷所思的變态威力。
之前我有一篇文章泰勒為何要展開? 泰勒公式有什麼神奇作用?介紹了什麼是泰勒展開,它可以把複雜函數轉換成加減乘除,比如sinx:
之所以要展開,是因為通用計算機本質上隻能計算加減乘除。
用泰勒展開計算π首先想到的思路就是,反三角函數,根據定義有:
那麼,接下來的問題就是,
如何計算arctan(1)
有人說,直接調用C語言庫函數atan(double,double)不就行了。
确實,這可以完成計算,然而,這是一種令人不齒的開挂行為,就好像我問怎麼跑完馬拉松,你說你開車一溜煙就跑完了一樣。
庫函數是别人寫好的,我們現在是思索如何實現計算,而不是考慮如何調用。
至此,我們隻好請出祖傳配方,把arctan(x)進行泰勒展開:
然後,令x = 1,得到:
格雷戈裡-萊布尼茨公式
它被稱為萊布尼茨級數,也被稱為格雷戈裡-萊布尼茨級數,用以紀念萊布尼茨同時代的天文學家兼數學家詹姆斯·格雷戈裡。
看起來很吊是不是······
但是啊但是,還不夠吊,因為問題還沒完:
這個級數收斂極慢。
比如,算到 4/9,也就是前五項,結果僅為3.3396,誤差有0.2之多。
它要到算500000項之後,才會精确到小數點後五位:
就算電腦也算得太累了。
何況萊布尼茲(1646年7月1日-1716年11月14日)當年是沒有電腦的!
加快收斂于是,人們嘗試改進,希望能快點計算。
英國數學家梅欽在1706年用上面的級數,發掘了一個可以快速收斂的公式:
配合上面arctan(x)泰勒展開,梅欽依據此公式(沒有電腦),把圓周率計算到小數點後一百多位。
英國數學家威廉·謝克斯花15年的時間以此計算到小數點後707位,不過在第528位時出錯,因此後面的都不正确了。
微微杯具就是了。
神奇公式現代有了電腦,我們希望更快的收斂速度,因此科學家在尋找新的級數。
曆史總是留給吊人的,也總是會生産一些吊人的。
比如:
拉馬努金公式
這玩意被稱為拉馬努金公式,是印度科學家拉馬努金發明的。
第一位用拉馬努金公式計算π并取得進展的是比爾·高斯珀,他在1985年計算了小數點後一千七百萬位。
收斂再快一點?還有楚德諾夫斯基公式:
楚德諾夫斯基公式
楚德諾夫斯基兄弟于1989年算得π小數點後10億(10⁹)位,法布裡斯·貝拉于2009年算得2.7千億(2.7×10¹²)位,亞曆山大·易和近藤滋在2011年算得一萬億(10¹³)位。
意不意外,驚不驚喜,
無不無聊······
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!