數學教「識」

對數本事續

Briggs 常用對數製作法

《科學月刊》2025 年 2 月號刊登了筆者的〈對數本事〉(請看它的網頁)。 礙於《科學月刊》篇幅限制,以及科普內容的設定,我無法展開布里格 (Briggs) 製作常用對數的方法,只用以下幾句話帶過:
布里格教授發明了另一種算法,那是非常接近現代數值分析思想的算法, 也可以說是「微分」思想的前兆;雖然還是很苦,但至少比納皮爾的算法輕鬆一點。 布里格把之前算出的 \(\log2\) 和 \(\log7\) 當作正確答案, 用來確認自己的新算法有效。
布里格的算法已經公開在他自己的書裡 [1], 雖然書裡寫著拉丁文,但閱讀數字還算清楚,例如下文 \(x_0\)、\(p_0\) 和 \(L_0\) 的數值取自那本書第 11 頁。 一位熱心的澳洲人 Ian Bruce 提供布里格這本書籍的英文翻譯 [2], 事實上 Bruce 公佈了很多 17、18 世紀拉丁文數學典籍的英文翻譯。 在臺灣,至少也有蘇俊鴻 [3] 和蘇惠玉 [4] 兩位老師的科普與解釋。 老實說筆者是先讀 [4] 獲得基本概念,然後才去翻閱原著 [1 and 2]。

既然該知道的都已經有人寫過了,為什麼我還想要作此文? 讀者能從此文獲得什麼新的知識或理解?

本文意圖詮釋:比對布里格算法和納皮爾算法(看《科月》文章), 可以感覺到「兩代人」的差異:納皮爾是老一代,他的方法仍是「算術」思維, 布里格則是新一代,如今知道當時微積分的想法已經開始蔓延, 他的方法萌現了「分析」思維。

連續開方趨近於 \(1\)

布里格(也許還有納皮爾以及那個時代具備很多計算經驗的人)從實務中發現: 對任一大於 \(1\) 的數 \(a\), 對它連續開方,數值會遞減而趨近於 \(1\)。 所謂連續開方就是迭代地取平方根,亦即 \[a^{1/2}=\sqrt{a},\quad a^{1/4}=\sqrt{a^{1/2}},\quad a^{1/8}=\sqrt{a^{1/4}}, \cdots\] 布里格處於分析數學(微積分)啟蒙的前夕,主流的數學文化仍然傾向古希臘, 所以當代人的說法是「連續幾均」:從 \(a\) 開始, 迭代地取它和 \(1\) 的幾何平均。 例如 \(\sqrt{a}\) 是 \(a\) 和 \(1\) 的幾何平均,\(\sqrt[4]{a}\) 是 \(\sqrt{a}\) 和 \(1\) 的幾何平均,\(\sqrt[8]{a}\) 是 \(\sqrt[4]{a}\) 和 \(1\) 的幾何平均,依此類推。

布里格等人發現的性質是: \[\text{當}\; a\gt1\; \text{則}\;a\gt a^{1/2}\gt a^{1/4}\gt a^{1/8}\gt\cdots\gt 1\; \text{且}\;\lim_{n\to\infty}a^{\frac1{2^n}}=1\] 我們稱(當 \(a\gt1\))數列 \(\langle a^{1/2^n}\rangle\) 嚴格遞減收斂到 \(1\)。 而這個性質,如今只是以下定理的特例: \[\text{若}\;a\gt0\;\text{則}\;\lim_{p\to0}a^p=1\]

二項展開的終極正比

承上,布里格(可能只有他)也從實務中發現: 當 \(a\gt1\) 且 \(p\) 是很小的正數,則 \(a^p\) 終究會呈現 \(1+\delta\) 的形式,其中 \(\delta\)(讀 delta) 是小小的正數,而且 \(\delta\) 和 \(p\) 在某種範圍內呈現正比關係。 這可能是布里格算法的關鍵發現。 以 \(10\) 的連續開方為例,他發現:如果只取小數 \(\delta\) 的兩位有效數字,則 \[10^{2^{-10}}\approx1.0022,\quad 10^{2^{-11}}\approx1.0011,\quad 10^{2^{-12}}\approx1.00056\] 觀察開方的結果都是 \(1+\delta\) 的形式,而對應 \(p\) 為 \(\displaystyle\frac1{2^{10}}\)、 \(\displaystyle\frac1{2^{11}}\)、 \(\displaystyle\frac1{2^{12}}\) 的小數 \(\delta\) 依序大約是 \(0.0022\)、\(0.0011\)、\(0.00056\), 顯然 \(p\) 和 \(\delta\) 成正比。

如今我們知道前述現象的原因是 \[a^p=1+\ln a\cdot p +\frac{(\ln a)^2}2p^2+\cdots\] 以 \(a=10\) 為例, \[10^p\approx 1+2.3p+\text{Err}\] 其中誤差 \(\text{Err}\) 不超過 \(6p^2\),所以當 \(p\lt10^{-3}\), 誤差不影響小數點下前五位。若捨去誤差不計,則 \(10^p\approx1+2.3p\) 可見 \(\delta\approx2.3p\) 成正比,或者反之 \(p\approx0.4348\,\delta\)。


本文寫的 \(\log\) 是常用對數,亦即以 \(10\) 為底的對數;\(\ln\) 是自然對數,唸 long,亦即以歐拉數 \(e\) 為底的對數。\(e\) 是大約 2.7183 的無理數。

指定有效位數的相等

前面使用的 \(\approx\)(近似符號)是一個含糊籠統的概念。 我們都知道:連續量的測量必有誤差。 例如當我們用尺量出一段長度 \(\ell\) 為 \(5 \) 公分, 雖然數學上寫成 \(\ell=5\) 但我們知道那是 \(\ell\approx5\) 的意思。 在實務上,我們默認目測可以準確到 \(0.1\) 公分, 所以其實 \(\ell=5\)(公分)是在兩位有效數字的範圍內的相等, 有時候記作 \(\ell=5.0\)(公分)。

但布里格製作對數表的工作,非常在乎「近似」的程度。 因為布里格和納皮爾預定提供 14 位正確有效數字的對數表, 所以他在製造常用對數的計算過程中,通常保持至少 15 位準確的有效數字。 為了溝通的效率,本文引進符號 \(\def\xeq#1{\;\overset{\raise1ex\hbox{$\scriptscriptstyle#1$}}{\smash{=}}\;}\) \(\xeq{n}\) 表達「在至少 \(n\) 個最高位有效數字範圍內相等」,例如 \(\pi\xeq{3}3.14\)、\(\pi\xeq{4}3.1416\); 高中數學經常寫 \(\log2=0.3010\),其實它是 \(\log2\xeq{4}0.3010\) 的意思。

經過勤奮的計算,布里格發現:當 \(p\lt0.5\times10^{-15}\),就會 \[10^p=1+\delta\;\text{且}\;0\lt\delta\lt10^{-15}\] 而且 \(p\) 和 \(\delta\) 在至少十五位有效數字的範圍內成正比,意思是:若 \(p\)、\(p_0\lt0.5\times10^{-15}\) 而且 \(10^p=1+\delta\)、\(10^{p_0}=1+\delta_0\),則 \[p:p_0\xeq{15}\delta:\delta_0\]

近一對數的終極正比

前面用 \(a=10\) 作為特例發現了一些性質, 而其實前面的 \(p=\log(1+\delta)\)、\(p_0=\log(1+\delta_0)\)。 布里格直覺地認為反之亦然,而且可以推廣到任何靠近 \(1\) 的對數 \(\log(1+\delta)\)(他的直覺是對的)— 其中 \(\delta\) 是個很小的正數。 定量而言,他認定 \[\text{若}\; \delta, \delta_0\lt10^{-15}\;\text{則}\; \log(1+\delta):\delta\xeq{15}\log(1+\delta_0):\delta_0\] 換句話說: \[\log(1+\delta)\xeq{15}\frac{\log(1+\delta_0)}{\delta_0}\cdot\delta\] 其中 \(\displaystyle\frac{\log(1+\delta_0)}{\delta_0}:=L\) 是 \(\log(1+\delta)\) 和 \(\delta\) 成正比的比例常數。

布里格的比例常數相當於發現了以下極限的存在: \[L=\lim_{x\to0}{\log(1+x)\over x}\] 如今我們知道:若 \(|x|\lt1\),則 \[\log(1+x)=\frac1{\ln10}\bigl(x-\frac{x^2}2+\frac{x^3}3-\cdots\bigr)\] 可見,當 \(\delta<10^{-15}\) 而且 \(\delta_0\) 本身的正確數字夠多, 確實可以 \(\log(1+\delta)\xeq{15}L\,\delta\) 其中比例常數 \(\displaystyle L=\frac1{\ln10}=\log e\)。 當然,布里格當年就連 \(\log\) 都還沒有,哪裡來的 \(\ln\)?

布里格在實務上追求 14 位正確的對數,因此他以 \(p=2^{-n}\) 的形式, 取 \(10^p=1+\delta\) 而在 \(10^{-16}\lt\delta\lt10^{-15}\) 範圍內找到發生最小 \(\delta\) 的 \(p\)。 布里格對 \(10\) 連續開方 54 次,得到他需要的很靠近 \(1\) 的數 \(1+\delta\): \[\sqrt[2^{54}]{10}=1.00000\,00000\,00000\,12781\,91493\,20032\,34416\,5\cdots\] 於是取特定的 \(\delta_0=1.2781\cdots\times10^{-16}\),這時候的 \(p\) 是特定的 \[\log(1+\delta_0)=\frac1{2^{54}} =0.05551\,11512\,31257\,82702\,11815\cdots\times10^{-15}\] 我們將此特定的 \(p\) 記作 \(p_0\)。因此他獲得了 \[L=\lim_{x\to0}{\log(1+x)\over x}\xeq{15}\frac{p_0}{x_0} \xeq{15}0.43429\,44819\,03251\,804\] 我們將準到 15 位小數的 \(L\) 記作 \(L_0\); 比對現在所知的 \(\displaystyle\log e\) 數值: \[L=\frac1{\ln10}=0.43429\,44819\,03251\,82765\cdots\] 我們看到其實布里格的 \(L_0\) 算對了 16 位有效數字。

新算法的示範

算出 \(L_0\) 之後,布里格用各種技巧將計算的目標化為 \(\sqrt[2^n]{a}=1+\delta\) 的形式。 以計算 \(\log2\) 為例,眾所皆知 \(2^{10}=1024\), 做 \(a=2^{10}\div1000=1.024\) 連續開方,發現 \[(1.024)^{2^{-47}}=1+1.68516\,05705\,39497\,6636\cdots\times10^{-16}\] 此時 \(\delta=1.618\cdots\times10^{-16}\) 符合小於 \(10^{-15}\) 之條件。所以 \[\log(1+\delta)\xeq{15}L_0\,\delta =7.3185\,59369\,06239\,33138\cdots\times10^{-17}\] 另一方面 \[\log(1+\delta)\xeq{15}\log(1.024)^{2^{-47}}=\frac{\log1.024}{2^{47}}\] 所以 \[\log1.024\xeq{15}2^{47}\times7.318\cdots\times10^{-17} =0.01029\,99566\,39811\,95265\,27744\cdots\] 布里格已經備妥許多 \(2\) 的(正負)次方待命,例如他記著 \[2^{47}=14\,0734\,8835\,5328\] 由 \(\log1.024 = 10\log2-3\) 即可推算 \(\log2\)。 然後用 \(1-\log2\) 得到 \(\log5\)。

布里格已經用納皮爾算法(第一種算法)獲得 14 位小數的 \(\log2\) 和 \(\log7\),他用這兩個對數確認新算法的有效性。 但是布里格並沒有在書裡示範新算法製造 \(\log7\) 的細節, 他反而示範了 \(\log6\)。

布里格為了製作 \(\log6\) 所採用的技巧是取 \(a=6^9\div1000\,0000=1.0077696\), 對 \(a\) 連續開方 46 次就足夠靠近 \(1\): \[\sqrt[46]{1.0077696}=1+\delta\] 其中 \[\delta=1.09985\,93458\,81557\,1866\cdots\times10^{-16}\] 此時的 \(2^{46}L_0\,\delta\) 是 \(0.00336\,12534\,52792\,69\cdots\), 加上 \(7\) 再除以 \(9\) 即為 \(\log6\); 將它減去 \(\log2\) 則為 \(\log3\)。

我想,在已知 \(\log2\) 的前提下, 何不使用 \(a=3^4\div80=1.025\) 來計算 \(\log3\) 呢? 此處 \(1.025\) 跟前面算過的 \(1.024\) 非常接近, 應該會提供一點便利。

結語

期許讀者體會到「分析思維」的滋味。 尤其是數學教師同仁,期許教師本身能分辨算術思維與分析思維, 才比較能夠在教學與評量中掌握分析思維的培育。 我(粗糙地)認為代數思維是算術與幾何思維的直接承續, 但分析思維則否。 所以在學校裡,算術、幾何、代數比較讓人感覺一脈相承, 相對而言分析就比較不容易掌握其精神 — 那就會讓分析的教學變得跟代數一樣。 希望這篇科普能夠啟發分析類型的數學思維特徵。

如我寫在《科學月刊》文章裡的:

〔新算法〕雖然還是很苦,但至少比納皮爾的算法輕鬆一點。
本文完整說明了布里格的「新算法」,讀者也該明白它「還是很苦」。 布里格當時因為不甚掌握「誤差」的擴散性質, 因此不甚確定他所需的「最小有效位數」; 為了保險起見,他經常做到十七、八位甚至二十位的有效位數。 因為這樣,他多吃了一些不必要的苦。 可是,我們想想,他一個人吃的苦 — 還有後續幾個人的再接再厲 — 造出一本對數表,在歐洲和美國足足用了 300 年,甚至傳播到中國和世界各地。 想像有多少人在這 300 年中使用這冊數表, 因此而提升了多少工程的效率?賦能了多少科學的探究?節省了多少人的歲月? 如此想像,我們就該可以體會:布里格做了一件多麼偉大的事! 而數學創作,可以為文明做出多麼偉大的貢獻!

參考文獻

  1. Briggs, Henry (1624). Arithmetica Logarithmica. London: William Jones.
  2. Bruce, Ian (2006). Briggs' Arithmetica Logarithmica. 2024/11/24 取自 www.17centurymaths.com/contents/albriggs.html
  3. 蘇俊鴻(2003)。數學史融入教學 — 以對數為例。HPM 通訊, 第六卷,第二、三期合刊。
  4. 蘇惠玉(2014)。布里格斯的《對數算術》與對數表的製作。HPM 通訊, 第十七卷,第六期。
  5. 單維彰(2025)對數表誕生的漫長旅程:製造「對數表」比算對數更難。科學 月刊662,40–45。 [網頁]

[ 回上層 ]


Created: Aug 17, 2026
Last Revised: 8/23
© Copyright 2026 Wei-Chang Shann 單維彰     [Home Page]
shann@math.ncu.edu.tw