44207 不同於托勒密的弦表製作方法
不同於托勒密的弦表製作方法

本文起源來自於簡單的建築學問題, 此方法在工程延伸討論中偶然的情況下發現, 此一發現主要在於托勒密 的弦表製作方法有了另一解, 並且以此解進一步經由轉換而能快速建立起三角函數表。 起源問題如下:

長度為 $l_2$ 與 $l_3$ 的兩根柱子分別於距離 $l_1$ 的 $A,B$ 兩點並令其相互傾倒, 求其交點 $G$ 的位置?

定義兩柱子的數學式為 $$x^2+y^2=l_2^2,$$ $$(x-l_1 )^2+y^2=l_3^2,$$ 求解後獲得 \begin{equation} \begin{split} x&=\dfrac{l_1^2+l_2^2-l_3^2}{2l_1 },\\ y&=\sqrt{l_2^2-x^2}=\dfrac 1{2l_1}\sqrt{4l_1^2 l_2^2-(l_1^2+l_2^2-l_3^2 )^2}, \end{split} \label{1} \end{equation} 其中 $y$ 又可改寫成類似海龍公式的形式 $$y=\dfrac 1{2l_1}\sqrt{(l_1+l_2+l_3 )(l_1+l_2-l_3 )(l_1-l_2+l_3 )(-l_1+l_2+l_3 )}.$$ 而上式在經過移項後, 可獲得一個 常數 $\varphi$, 如下式 \begin{equation} \varphi =l_1 y=\dfrac 12 \sqrt{(l_1+l_2+l_3 )(l_1+l_2-l_3 )(l_1-l_2+l_3 )(-l_1+l_2+l_3 )}.\label{2} \end{equation} 式 \eqref{2} 說明 任意三角形只要知其三個邊長就可知道各對應的高。 舉例來說, 邊長 3、 4 與 5 的直角三角形, 其 $\varphi$ 常數經式 \eqref{2} 計算為 12, 則 $\varphi$ 除以各邊長即為高, 也就是 4、 3 與 2.4。 另一邊長 1、 1 與 $\sqrt{2}$ 直角三角形的例子也一樣, $\varphi$ 等於 1, 各高為 1、 1 與 0.7071。 這常數就如同身分證一樣, 適用於任意三角形, 下列手繪圖例即簡單闡明 $\varphi$ 常數的存在, 未填的數值可由讀者進行驗證。

$l_1$34.222.53.31
$l_2$$l_3$$\varphi$$l_1$ 的高$l_2$ 的高$l_3$ 的高
2.84.77.97932.6598
2.33.58.04981.9166
547.59933.7997
1.533.74171.49672.49441.2472
2.71.95.13001.55451.90002.7000
110.86600.86600.86600.8660

此 $\varphi$ 常數在特殊三角形有不同的形式, 例如在隨後的弦長計算上會用到的等腰三角形在式 \eqref{2} 即可簡化成如下

\begin{equation} \varphi =\dfrac{L_1}2 \sqrt{4L^2-L_1^2}\,.\label{3} \end{equation}

在有了這個常數的概念後, 接下來就是弦長的計算, 而此法建立在 弧長切割越小越接近弦長的概念下進行。 首先描繪一個半徑為 1 的單位圓, 並在此圓上先畫一個以基準角 $\theta$ 構成的等腰三角形, 此後的疊加都是以這三角形為基準, 這樣每次新構成等腰三角形所對應的圓心角就是以 $\theta$ 的倍數增加, 而等腰三角形的底邊就是弦長 $C$, 隨著基準三角形的疊加, 弦長 $C$ 也隨之變化, 如下圖

而此方法的展現, 則是以四邊形的疊加組合來達成, 也就是不論是疊加幾次的基準角都看成最近一次與前幾次總合的基準角疊加而成的四邊形, 如圖

不管幾次疊加都看成兩三角形疊加而成的四邊形

當逐次疊加構成四邊形的概念建立後, 就有構成了前後次弦長的關係, 這裡主要仍是 $\varphi$ 常數的相關應用, 目的在於求取四邊形的「對角線」長度, 如上圖中的虛線部分, 由該圖中可知, 原本的對角線在新一次的疊加時就變成四邊形的邊長, 也可說是拆解成其中一個三角形的邊長, 如圖:

$\left\{\begin{array}{l} \overline{GD}=C_1,\\[4pt] \overline{BG}=C_j,\\[4pt] \overline{BD}=C_{j+1}, \end{array}\right.\qquad j=1,2,3,4,\ldots,$

$\overline{AB}=\overline{AG}=\overline{AD}=1.$

由此圖, 我們的目的是求取弦長 $\overline{BD}=C_{j+1}$, 這裡的 $j+1$ 是想建立起前後關係, 如 $j=1,2,3,4,\ldots$, 這樣就能進行疊代計算, 先將焦點放置 $\triangle ABG$ 與 $\triangle AGD$ 上, 這兩個三角形的共同邊是 $\overline{AG}$, 所以兩者連結由此建立, 利用式 \eqref{1} 的 $x$ 計算法先計算 $E$、 $F$ 兩點距離 $A$ 點的長度 \begin{eqnarray*} E\hbox{點}&\ \rightarrow\ &\overline{AE}=\frac{\overline{AG}^2+\overline{AD}^2-\overline{GD}^2}{2\overline{AG}}=\frac{2-C_1^2}{2},\\ F\hbox{點}&\ \rightarrow\ &\overline{AF}=\overline{AG}-\overline{GF}=\overline{AG}-\frac{\overline{AG}^2+\overline{BG}^2-\overline{AB}^2} {2\overline{AG}}=\frac{2-C_j^2}{2}. \end{eqnarray*} 而此兩三角形的高資訊 $$\left\{\begin{array}{l} \overline{DE}=\dfrac{\varphi_{AGD}}{\overline{AG}}=\varphi_1,\\[12pt] \overline{BF}=\dfrac{\varphi_{ABG}}{\overline{AG}}=\varphi_j; \end{array}\right.$$ 這裡的 $\varphi_{ABG}=\varphi_j$, 也是想建立起前後關係, 每疊加一次 $\varphi$ 常數就改變, 在得知這幾個資訊後, 再來就是關鍵的連結動作, 我們將對角線部分與兩三角形的高提取分離出來觀察, 如圖

因為兩三角形的高分別垂直於 $\overline{AG}$ 而使得這樣的操作讓對角線 $\overline{BD}$ 能夠用畢氏定理計算出來,並且能與上一次的弦長做連結。 \begin{eqnarray} &&\hskip -20pt \left\{\begin{array}{l} \overline{BH}=\overline{AE}-\overline{AF}=\dfrac{2-C_1^2}{2}-\dfrac{2-C_j^2}{2}=\dfrac{C_j^2-C_1^2}{2},\\[2pt] \overline{HD}=\overline{DE}+\overline{BF}=\varphi_1+\varphi_j, \end{array}\right.\nonumber\\ &\ \Rightarrow\ &\overline{BD}=C_{j+1}=\sqrt{\left(\frac{C_j^2-C_1^2}{2}\right)^2+(\varphi_1+\varphi_j)^2}\nonumber\\ &\ \Rightarrow\ &C_{j+1}=\dfrac 12\sqrt{(C_j^2-C_1^2)^2+4(\varphi_1+\varphi_j)^2}\qquad j=1,2,3,\ldots\label{4} \end{eqnarray} 其中由式 \eqref{3} 可得 $$\varphi_j=\dfrac{C_j}{2}\sqrt{4-C_j^2}\,.$$ 在獲得了這個關係式後, 就宣告了只要有了基準角的弦長, 其餘的弦長都是可計算的。 舉例來說, 若需要繪製 $\frac{\pi}{37}$ 這個角度, 僅需將其切割得更小例如 $\frac{\pi}{3700}$ 並作為初始弦長再疊加回去即可, 切割的多寡端看要求的精度而定, 此一方法的適用範圍是 $0\sim \pi$ 之間的任一角度均可用此法計算得出弦長。 以 0.5 度 $\Big(\frac{\pi}{360}\Big)$ 等分點舉例 :

先計算基準角 0.5 度, 將其分成精度較低的 3 等分(初始弦長 $= \frac{\pi}{1080}$) 後利用式 \eqref{4} 再疊加三次可獲得 0.5 度的弦長 $C \cong 0.00872$, 此時有了 0.5 度的基準弦長則可再利用式 \eqref{4} 繼續疊加至 180 度即可製作出半圓周的弦表。 式 \eqref{4} 實現了不需使用托勒密定理與三角函數計算的弦表製作方法。

除此之外,這裡也存在另一形式使應用更為廣泛, 首先將 $C_1$ 與 $C_j$ 分別視為一個三角形, 則可用式 \eqref{1} 與式 \eqref{2} 來描述等分點的座標

$\left\{\begin{array}{l} x_1=\dfrac{2-C_1^2}{2},\\[6pt] y_1=\varphi_1, \end{array}\right.\hskip .5cm \left\{\begin{array}{l} x_j=\dfrac{2-C_j^2}{2},\\[6pt] y_j=\varphi_j. \end{array}\right.$

將座標點資訊代回式 \eqref{4} $$C_{j+1}^2=(x_1-x_j )^2+(y_1+y_j )^2,$$ 又依據畢氏定理 $x^2+y^2=1^2$, 則又可改寫成 $$C_{j+1}^2=2-2x_1 x_j+2y_1 y_j.$$ 而 $C_{j+1}$ 所包含的等分點資訊利用式 \eqref{1} $$x_{j+1}=\dfrac{2-C_{j+1}^2}2.$$ 這些關係又可進一步簡化成 \begin{equation} x_{j+1}=x_1 x_j-y_1 y_j,\qquad j=1,2,3,\ldots.\label{5} \end{equation} 其中由畢氏定理 $$y_j=\sqrt{1^2-x_j^2}\,.$$ 式 \eqref{5} 若仔細觀察可發現其為三角函數複角公式的變化形 「$\cos(\alpha +\beta)=\cos\alpha\cos\beta-\sin \alpha\sin\beta$」, 也因為這變化形揭露了等分點的訊息, 所以經由簡單的代數運算即可獲得各個等分點的座標, 而在單位圓下, $x$ 與 $y$ 分別代表 $\cos$ 與 $\sin$, 這樣一來只要知道基準角的資訊則半圓周任意等分角的三角函數表很快就能建立出來。 以前述製弦表的例子:

利用疊代 3 次而得的 0.5 度基準弦長 $C\cong 0.00872$ 來計算基準等分點座標資訊, $$ x_1=\dfrac{2-C^2}2\cong 0.99996\hskip 2cm y_1=\varphi_1=\dfrac{C}2 \sqrt{4-C^2}=0.00872 $$ 由此利用式 \eqref{5} 就能快速建立起每 0.5 度間隔增加的三角函數表。 同樣地,此表的精度取決於基準角的精度。

利用本文所描述的方法來求取任意角度的正餘弦值或是製作三角函數表, 方法其實相當精巧簡單, 表示式也簡潔漂亮, 本以為前人已討論過, 但在資料搜尋的情況下, 卻無發現有人闡述這方法, 因此簡易描述此方法的過程, 在此分享給大家。


文末附帶一提,在觀察到 $\varphi$ 常數的特性後,便思索將此思路延伸至三維的四面體上,過程中也發現到一個類似 $\varphi$ 常數的常數存在,思路由下圖開始

$ \begin{array}{ccc} \overline{AB}=l_1&\quad &\overline{AE}=L_1\\[4pt] \overline{AD}=l_2&\quad &\overline{BE}=L_2\\[4pt] \overline{BD}=l_3&\quad &\overline{DE}=L_3 \end{array} $

則 \begin{align} x^2+y^2+z^2=&L_1^2,\label{6}\\ (x-l_1)^2+y^2+z^2=&L_2^2,\label{7}\\ (x-a)^2+(y-b)^2+z^2=&L_3^2,\label{8} \end{align} 其中 $a,b$ 由式 \eqref{1} 獲得 \begin{align} a=&\frac{l_1^2+l_2^2-l_3^2}{2l_1},\label{9}\\ b=&\frac{\varphi_{ABD}}{l_1}=\frac 1{2l_1}\sqrt{4l_1^2 l_2^2-(l_1^2+l_2^2-l_3^2)^2}\,.\label{10} \end{align} 解聯立求得 $x$、 $y$ 與 $z$ 後, 從 $z$ 的表示式中可獲得一個常數 $v$ \begin{align} z \varphi=v.\label{11} \end{align} 在經過數個實例代值運算後發現, 這個 $v$ 常數如同 $\varphi$ 常數的性質一樣, 任一四面體均有, 只要 $v$ 除以此四面體任一平面的 $\varphi$ 即可獲得相對應的立體高, 相當方便, 可惜的是, 至本文定稿為止尚未找到如同 $\varphi$ 的簡潔表示式。 除此之外, 由此思路若繼續延伸至更多維度, 則各維度間的構型是否仍然具有特定常數, 則仍待後續探討。

參考文獻

蔡聰明。 星空燦爛的數學 (I) --- 托勒密如何編製弦表? 數學傳播季刊, 23(2), 57-67, 1999。

---本文作者為機械工程師,曾服務於華泰電子---