計算方法之祖沖之的精度
山巔一寺一壺酒,爾樂苦煞吾。
π≈3.1415926535≈22/7≈355/113
祖沖之(429年-500年)是我國古代偉大的數學家。他改進了劉徽(約225年—約295年)的割圓術,把圓周率計算到小數點後第7位,即3.1415926<π<3.1415927,還給出了約率(22 7≈3.143)="" 和密率(355="" 113≈3.1415929)。《算經十書》收錄過祖沖之的《綴術》五卷,然而“學官莫能究其深奧,故廢而不理”(《隋書》)。祖沖之到底是怎麼計算π的,我們現在並不清楚。
往事越千年。隨著科學知識的普及,每個大學一年級的學生,都可以輕鬆地把π計算到祖沖之的精度,但是,他們中的一些人並沒有意識到自己的能力。
中學生的方法
對於半徑為1的圓,其周長2π和麵積π都可以用來計算圓周率。這個圓的內切正n邊形和外切正n邊形的周長和麵積,在n趨於無窮大的時候,都趨近於圓的周長和麵積。
內切正n邊形的周長是2nsin(π/n),外切正n邊形的周長是2n tan(π/n),對於所有的n,都有
當然,我們不能用這個公式來計算π值,否則就迴圈論證了。但是,我們可以選擇適當的正n邊形,並逐漸增大n。最常用的方法是從正6邊形開始,然後逐步加倍,12、24、48、96,等等。這是因為內切正6邊形的邊長是1,外切正6邊形的邊長是,都是很好算的數值。
內切正邊形的邊長是,其中,。如果知道了,就很容易知道
再根據,就可以遞推地得到所有的,而。
同樣的方法,可以得到外切正邊形的邊長的遞推公式是
再根據,就可以遞推地得到所有的,而。
利用這些公式,就可以得到π值如下 :
表面看來,剛才這些計算涉及了三角函式,其實不用三角函式也可以得到相應的遞推公式,因為只涉及到勾股定理。比如說,對於內切正多邊形,AB的長度為,AC的長度為,則
這裡只涉及開平方和加減乘除,原則上誰都可以算的,但是計算太繁瑣了,如果沒有計算器,是很難算的。中國古代沒有我們現在的阿拉伯數字系統,計算起來很不方便,雖然說有人能夠“照位運籌如飛,人眼不能逐”( 沈括《夢溪筆談·技藝》),恐怕也不能採用蠻力來計算π值。
大學生的方法
在單位圓裡,弧邊梯形AOCB的面積減去三角形BOC的面積,就是扇形角AOB(張角為ϕ)的面積(ϕ/2),由此可以得到圓周率π。
AOCB的面積是,而BOC的面積是,扇形角AOB的面積就是
把積分裡的用二項式定理展開,就可以得到
選擇一些簡單的ϕ值,就可以得到π值
需要注意的是,上面這兩種方法都是野蠻處理,計算只涉及加減乘除和開方(用於計算sin 值),原則上來說,可以用手算出來的(開方可以用迭代法得到),儘管我這裡的結果來自於計算機(我手算過15度,確認是可以算的,可是後來發現結果有點錯兒)。這些方法甚至都沒有用到劉徽不等式,也沒有給出π值的上下限,從證明技巧上來說,還遠不如古人,更不用說符合現代數學的嚴格要求了。然而,科學知識的普及,使得我們這個時代的普通人也能輕鬆達到古代傑出人物的計算水平,卻是無可置疑的。
∑編輯 | Gemini
來源 | 科學網
更多精彩:
☞ 曲面論
演算法數學之美微信公眾號歡迎賜稿
稿件涉及數學、物理、演算法、計算機、程式設計等相關領域,經採用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
相關文章
- 高精度計算合集
- java方法練習之簡單計算器Java
- JS計算精度小記JS
- 高精度之階乘和
- Hive之同比環比的計算Hive
- 計算機網路之HTTP之概況計算機網路HTTP
- kubernets之計算資源
- JS-計算日期差值;計算日期之間的月數JS
- Java之BigDecimal(存任意精度的浮點型)JavaDecimal
- Oracle redo解析之-4、rowid的計算Oracle Redo
- 雲端計算之雲的分類
- JavaScript的高精度計算與JSON.parse的BIGINTJavaScriptJSON
- 人工智慧之計算智慧人工智慧
- JavaScript中解決計算精度丟失的問題JavaScript
- 紅外測溫儀的精度是怎麼計算的
- 設計模式之模板方法設計模式
- 雜篇:計算機的世界:[-bit之魂-]計算機
- 大資料計算生態之資料計算(二)大資料
- 大資料計算生態之資料計算(一)大資料
- JSON實戰拾遺之數字精度JSON
- 計算機網路之物理層計算機網路
- UAVStack之微服務計算平臺微服務
- 計算機網路之九:VLAN計算機網路
- kubernetes之計算機資源管理計算機
- 趨勢分析之雲端計算
- ORACLE 計算2個日期之間的天數Oracle
- 雲端計算管理平臺之OpenStack計算服務nova
- 計算機面試重難點之計算機網路面試計算機網路
- Netty中的Channel之資料沖刷與執行緒安全(writeAndFlush)Netty執行緒
- 設計模式之模板方法模式設計模式
- JAVA設計模式之模板方法Java設計模式
- 設計模式之【模板方法模式】設計模式
- Java程式設計之設計模式之工廠方法模式全解Java程式設計設計模式
- 計算機DIY之接駁線纜計算機
- 計算機網路之隧道技術計算機網路
- 計算機網路之網路層計算機網路
- 計算機網路之傳輸層計算機網路
- 文字相似度計算之餘弦定理