托勒密計算正弦函數表的方法

托勒密 (Ptolemy, 100--178) 是希臘文明末期的天文學家, 他的宇宙觀大約主宰了西方人 1500 年的看法。 雖然與今天所知的事實不相符,但是他的觀察和假說, 在當時的確可以解釋所有的天文現象,並能用以預測星體的運行。 為了天文學的研究,托勒密需要三角函數來做計算。 當時並不存在足夠精密的三角函數值,於是他自己計算了一張三角函數的數值表格。 嚴格地說,他是計算了從 0 度開始,以 1/2 度為間隔,到 180 度為止的弦長表: Crd(x):x 度的弦長。 它就是單位圓 (半徑為 1 的圓) 之 x 度圓心角所對應的弦長。 見下圖

但是因為
Crd(x) = 2 sin (x/2)
所以就相當於求得了從 0 度開始,以 1/4 度為間隔,到 90 度為止的正弦函數值。 而我們都知道,其他的三角函數值都可以由正弦函數得到。

在我們開始之前,要特別提醒讀者,當時托勒密使用的是 60 進位的非對位記數系統。 他不但沒有小數的觀念,更沒有直式計算法。 而所有的三角函數公式推導,全部要用純粹的平面幾何知識。

首先,利用圓的內接正多邊形的邊長,可以知道某些特殊角的弦長。 例如邊數是 3、4、5、6、10 的時候,得知 120 度、90 度、72 度、60 度和 36 度的弦長。 其他的角度,就不容易由這種方法求得了。 完全用幾何知識,托勒密發現了一些我們今天熟知的和 (差) 公式與半角公式:

sin(x+y) = sinx cosy + cosx siny,    sin2(x/2) = (1-cosx)/2
但是他是以 Crd(x) 的形式來表現以上公式。 所以用差角公式可以從 Crd(72) 和 Crd(60),得到 Crd(12)。 再用半角公式,可以從 Crd(12) 得到 Crd(6)、Crd(3) 和 Crd(3/2)。 托勒密的最後絕招是三倍角公式:
sin(3x) = 3 sinx - 4 sin3x
理論上,將上式代入 x=1/2,利用已知的 Crd(3/2),就得知 Crd(1/2)。 實際的問題是,怎樣解上述的三階多項式? 1900 年前的希臘數學,還不會解這個問題。 即使是今天,如果不許使用計算機,也很少有人能解得出來。 所以托勒密在這裡花了相當大的工夫,而且還無法得到真確的解, 只能估計。 即使那些理論上用差角或半角公式可以得到真確答案的弦長, 也有實際上的困難。 因為半角公式要開根號。 計算到 Crd(3/2) 的時候,一共要開 5 層的根號! 即使是今天,若只准許用紙筆來計算,仍然是件非常人能及的工作。

就這樣千辛萬苦地,托勒密估計了 Crd(1/2) 的值。 因為他沒有小數點可用,就令圓的半徑是 60 (他用的數是 60 進位的), 使得計算的結果是 60*Crd(x),然後取整數和近似的分數。 可見,即使這樣辛苦地計算,到頭來的相對數值誤差還是頗高。

這份擴編教材只是要讓讀者體驗先民的創造性工作、欣賞他們所突破的困難, 並瞭解在微積分之前,要製造更精確的三角函數表的困難程度。 我們無意在此重現完整的數學 (特別是平面幾何) 推理過程。 欲知詳情,請看課外讀物。

課外讀物:
[1] 蔡聰明,星空燦爛的數學---托勒密如何編製弦表數學傳播 90(1999),57--67。

[ 發表感想或意見 ] ‧ [ 讀者推薦課外讀物 ]

BCC16 Home Up Chap 0 Chap 1 Chap 2 Chap 3 Chap 4 Chap 5 Chap 6 Chap 7 Chap 8 Chap 9 Chap A Chap B Chap C Chap D Chap E Chap F Copyright Pool User
製作人、
修改記錄
單維彰 (00/03/12) --- 00/03/25