計算方法之祖沖之的精度
山巔一寺一壺酒,爾樂苦煞吾。
π≈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
相關文章
- 高精度計算合集
- 精度計算問題
- JS計算精度小記JS
- 商業計算Java高精度計算BigDecimal類JavaDecimal
- 紅外測溫儀的精度是怎麼計算的
- JavaScript中解決計算精度丟失的問題JavaScript
- JavaScript的高精度計算與JSON.parse的BIGINTJavaScriptJSON
- javascript浮點數計算精度問題介紹JavaScript
- iOS --NSDecimalNumber 處理計算精度不準確問題iOSDecimal
- 高精度計算庫math.js使用踩坑記JS
- java方法練習之簡單計算器Java
- 關於JS的浮點數計算精度問題解決方案JS
- [Java] 浮點數的精度丟失問題與精度控制方法Java
- Java深海拾遺系列(5)--- 精度計算中的BigDecimal,double和floatJavaDecimal
- word公式怎麼計算 word公式計算的方法公式
- js算數運算精度問題解決方案JS
- 演算法導論學習之補漏:高精度冪運算演算法
- VB計算圓周率的方法
- 【計算機組成原理】第6章 計算機的運算方法計算機
- Java中的小數運算與精度損失Java
- 高精度計時器
- 經緯度計算兩地之間的距離(原理與方法)
- CUDA 8的混合精度程式設計程式設計
- JavaScript 小數乘法運算精度問題JavaScript
- JS-計算日期差值;計算日期之間的月數JS
- 路由器自組織機制之計算方法研究路由器
- javascript小數乘法運算導致的精度問題JavaScript
- [落伍原創] 伺服器頻寬的計算方法,機房頻寬的計算方法伺服器
- JavaScript解決浮點數算數運算精度問題JavaScript
- 快多個數量級,清華更高精度、更泛化的深度學習電子結構計算方法登Nature子刊深度學習
- 咖啡汪日誌———數值計算,精度、舍入、溢位(極客時間)
- Hive之同比環比的計算Hive
- 雲端計算之雲的分類
- 等精度頻率計的設計與驗證
- 關於vue的使用計算屬性VS使用計算方法的問題Vue
- 產品成本計算方法
- JS呼叫時間的方法和計算JS
- 計算檔案Checksum的幾種方法