首頁 > 三國古人用來測量山高的數學:重差術–三角測量
:::

三國古人用來測量山高的數學:重差術–三角測量

你是否想過建築物或山的高度是如何測量出來的?中國古代的重差術,可以幫助我們巧妙地計算出無法直接測量的高度。
 
 
我們從小就聽過很多建築物或山的高度,比如說,臺北 101 大樓高 509 公尺、玉山高 3,952 公尺。但是,你是否想過這些高度是如何測量出來的?

除了這些高度外,還有比如山谷的深度等,也都是古人有興趣的問題。現代人最常應用在測量上的數學,是所有高中生都會的「三角函數」。研究三角函數的學問稱為「三角學」(trigonometry),從英文字源來看,這個字的意義是「三角(trigon)測量(metry)」,就是用三角形作測量的學問。臺灣某些補教界名師或少數高中教師,很努力地教高中生三角函數「和差化積」、「積化和差」等公式的技巧,來證明各種漂亮的恆等式,卻不重視三角測量的應用,實在是本末倒置。

玉山有多高

古人對大地測量也有興趣,但是,像山的高度、谷的深度,是無法用一把夠長的尺直接看刻度量得的。事實上,就算真的有那麼一把超級長的尺,人們還是無法直接測量山高。
 
玉山有多高?
▲玉山有多高?
 
那麼,要如何量山的高度呢?在測量時,常用到國中學的畢氏定理—直角三角形兩股上的正方形面積和等於斜邊上的正方形面積。如果直角三角形的三邊長是 abc,其中 c 是斜邊,三邊就會有 a2 + b2 = c2 的關係。如果知道直角三角形的其中兩邊,就可以很容易地求出第三邊。可惜的是,如果把山的高度看成直角三角形的一股,仍然有另一個未知數,因為我們不能從平地水平地向峰頂下方挖一條地道。因此,在這個直角三角形中,至少有兩個未知數。

在國中數學課程中,我們知道,要求出兩個未知數必須列出兩個方程式。古人也知道,雖然無法直接求出山高,但可以利用兩次測量求山高,這就是「重差術」。

重差術的應用

西元 3 世紀,三國時代魏國的劉徽,寫了一本《海島算經》,第一題「望海島」就是測量海島的高度。測量海島的困難與測量山高一樣,因為你只能在遠處測量,不能拿一把尺越過海拉到海島上。劉徽所使用的「重差術」,就畫在古書裡。原文為
今有望海島,立兩表,齊高三丈,前後相去千步,令後表與前表三相直。從前表卻行一百二十三步,人目著地取望島峰,與表末三合。從後表卻行一百二十七步,人目著地取望島峰,亦與表末三合。問島高及去表各幾何? 答曰:島高四里五十五步;去表一百二里一百五十步。 術曰:以表高乘表間為實;相多為法,除之。所得加表高,即得島高。求前表去島遠近者:以前表卻行乘表間為實;相多為法。除之,得島去表裡數。
 
《古今圖書集成》中的望海島圖。(圖片來源:http://upload.wikimedia.org/wikipedia/commons/5/5c/Sea_island_survey.jpg)
▲《古今圖書集成》中的望海島圖。(圖片來源:http://upload.wikimedia.org/wikipedia/commons/5/5c/Sea_island_survey.jpg)
劉徽當年如何找出重差術的方法,並沒有記載在《海島算經》中,不過,我們可以運用相似三角形的概念來理解這個方法。我們用以下引文來看看望海島的題目與示意圖,為了計算方便,題目的數字與單位已經過修改。文中所謂的「兩表」是指兩根(測量用)標竿,「前後相去」表示前後表距離,「參相直」是指三點共線,「卻行」表示向後退,「表末」則指表的頂端。

今有望海島,立兩表,齊高 5 公尺,前後相去 50 公尺,令後表與前表參相直。從前表卻行 10 公尺,人目著地取望島峰,與表末參合。從後表卻行 15 公尺,人目著地取望島峰,亦與表末參合。問島高及去表各幾何?
 
《海島算經》第一題「望海島」使用的「重差術」
▲《海島算經》第一題「望海島」使用的「重差術」

 
本題是說,想要測量海島 AB 的高度,在岸邊立了兩個「表」(CD 與 EF),都是 5 公尺,兩表之間 DF 的距離是 50 公尺。從前表 CD 向後走 10 公尺,把眼睛貼到地面 G 點,則島峰 A 與表末 C 重合,也就是 A、C、G 成一直線。從後表 EF 向後走 15 公尺,把眼睛貼到地面 H 點,則島峰 A 與表末 E 也重合,也就是 A、E、H 成一直線。

假設島高 AB 是 x,前表到海島峰頂正下方的 BD 是 y。很明顯地,△ABG 與 △CDG 相似,ΔABH 與 ΔEFH 相似。因此,AB:CD = BG:DG 且 AB:EF = BH:FH。根據這些性質,可以列出兩個方程式,解二元一次聯立方程式得 x = 55,y = 100。因此,海島高度是 55 公尺。
 
重差術的一般性解法
▲重差術的一般性解法
上述方法可以一般化。只要運用符號表示「表高」、「前表卻行」、「後表卻行」、「兩表相去」等數據,例如用 abcd 依序表示上述 4 個已知量。同樣可以列出二元一次聯立方程式如圖,解二元一次聯立方程式,得到海島高度的公式,其中 a 是表高,bc 是前、後表卻行,d 是兩表之間的距離。

中國古代的重差術,可以幫助我們巧妙地計算出無法直接測量的高度。或許下一次,你可以嘗試自己測量看看某座海島(譬如宜蘭龜山島),或是某座建築物(譬如臺北 101)的高度喔!

還有,古代數學中常見的一些方法(譬如重差術),都針對了某些特定問題求解,然而,它們也具備了一般性的延拓條件。由此來看,解決特定問題並不影響我們理解一般性的理論與方法,重差術的歷史啟發性在此!
推薦文章