“望星樓”裏的圓周率_風聞
中科院之声-中国科学院官方账号-2020-03-15 08:38
人類求解圓周率的歷史非常悠久。在數學史上,圓周率的計算方法大體上可以分為兩類:早期大多使用的是幾何算術方法,即利用多邊形逼近單位圓來近似求解;第二類是近現代數學中的解析方法。本文主要講前者,讀者們一般較熟悉的是我國南北朝數學家祖沖之(429~約500),他在《綴術》中將圓周率推算為3.1415926至3.1415927之間。可惜的是《綴術》一書早已遺失,我們並不清楚祖沖之推算圓周率的細節,但幸運的是,約一千年後在遙遠的“望星樓”裏有一位數學家,他使用了相同的算法將圓周率準確推算到更高的精度,這些完整保存下來的史料為我們展現了古人們的高深智慧。
《隋書·律曆志》中關於祖沖之圓周率的記載
中亞明珠:撒馬爾罕
《絲路山水地圖》是明代中後期佚名創作的絹本設色畫,描繪了東起嘉峪關西至天方城(麥加)的遼闊地域範圍。今天所講故事的發生地是畫中所繪“望星樓”,實際為位於今烏茲別克斯坦第二大城市撒馬爾罕的兀魯伯格天文台。撒馬爾罕在突厥語中意為“富裕的村落”,是中亞最古老的城市之一,公元前4世紀已有史書記載,中國古書稱之為“康居”“康國”。撒馬爾罕座落在連接中國、印度和波斯的陸上絲綢之路的十字路口。1220年,成吉思汗的蒙古鐵騎將其攻陷,撒馬爾罕遭受了滅頂之災。轉折點是14世紀下半葉,帖木兒(Timur,1336~1405)掌握西察合台汗國的大權,1370年他定都撒馬爾罕並將其建為中亞的經濟中心。他的孫子烏魯伯格(Ulugh Beg,公元1394~1449年)統治這裏直到1449年,並將其建設成為文化學術中心,兀魯伯格天文台就是在這一時期修建的。
《絲路山水地圖》(局部)中的“望星樓”(左)與兀魯伯格天文台遺址(右)
波斯奇才:阿爾·卡西
為了天文台工作的開展,烏魯伯格邀請了當時眾多最優秀的科學家在此任教和工作,這其中就包括今天故事的主角——波斯數學家、天文學家阿爾·卡西(al-Kāshī,約1380~1429)。烏魯伯格給予了卡西很高的評價:“…他(卡西)是一位偉大的科學家,是世界上最優秀的學者之一,他通曉古代科學並且能夠推動其發展,他可以解決世界上最困難的問題。”卡西在其1424年成書的《論圓周》(Treatise on the Circumference,1424)中將圓周率準確推算至小數點後第16位。
伊朗郵票上的阿爾·卡西(左)和蘇聯郵票上的兀魯伯格(右)
揭秘本原:天球與馬鬃
卡西在《論圓周》介紹部分給出了求解高精度圓周率的原因。他簡要回顧了以往三位著名的數學家阿基米德(Archimedes,287~212BC)、阿布·瓦法(Abu’l-Wafā’ ,940~998)和阿爾·比魯尼(Al-Bīrūnī,973~約1050)相關工作中存在的缺陷。隨後,卡西給出了他所要求圓周率的精度要求,即若存在一個直徑為地球直徑600,000倍的假想天球,使得通過此直徑所求得的圓周長與真實值之間的誤差小於一根馬鬃的粗細。通過估算,卡西得出滿足上述要求的圓周率必須精確到60進制分數值的第9位,即60-9(相當於10-16)。換句話説,再將圓周率繼續推算幾位並不存在技術困難,只是推算至60-9即可。
《論圓周》(1424)首頁
算法核心:迭代的力量
卡西算法核心是首先從半徑為1的單位圓中的內接正(3×2=)6邊形入手,連續利用三角公式推算出圓內接正3×2n邊形的邊長為,將其乘以3×2n邊數便可以得出圓內接正多邊形周長,正整數n的取值越大,此內接多邊形的周長越接近圓周。類似地,卡西構造了另一個與之相似的圓外切正多邊形,二者共同逼近圓周,最後用二者的算術平均數來表示單位圓周長,即2倍圓周率。上述算法思想與中國傳統數學中的“割圓術”相似。
卡西利用正多邊形推算圓周率圖示
運籌帷幄:預知的計算
如果利用將圓周率推算到60-9(10-16)的精確度,馬上就會遇到兩個問題:(1)每次迭代開方運算的平方根要精確到什麼數位?(2)總共要進行多少次開方(相當於3×2n邊形中的n的大小)?通過估算,卡西得到每次開方需要精確到60-18,隨後連續進行28次開方運算,相當於利用正3×228邊形來逼近圓周。換句話説,如果運算量達不到上述要求,則所求的圓周率精度便不能滿足題設,這種事先估算出來的計算量對於後續的求解至關重要。
《論圓周》第1張(共28張)迭代開方算表(求3的平方根)
精美絕倫:完美的算表
卡西的核心工作是連續28張迭代開平方算表。開平方運算對於古代數學家們並不陌生,例如我國秦漢時期數學經典《九章算術》“少廣章”中就有關於開平方和開立方的完整論述,但是將高精度開方運算整合在一張算表中在數學史上是很少見的。要保證28張複雜算表中每一個數據的準確性並非易事,為此卡西進行了兩類保證其準確性的運算——“棄九法”和平方復原檢驗法,以做到萬無一失。最終卡西計算出2π≈6.2831853071795865。
卡西在《算術之鑰》(1427)中關於“棄九法”的論述
卡西在《論圓周》一書中得到用十進制小數表示擁有17位準確數字的圓周率,首次打破了祖沖之保持千年之久的記錄,直至1596年荷蘭數學家魯道夫(Ludolph,1539~1610)才將用十進制小數表示的圓周率推算至20位準確數字。今天,藉助計算機和更先進的算法,可將圓周率的準確值推算到1000萬億位以上。不斷追求卓越是人類與生俱來的天性,我們一定會迎來更加美好的明天。
來源:中國科學院自然科學史研究所