科學月刊【數‧生活與學習】專欄 96 年 2 月

第五常數

我們已經知道,對任意一個正數 x 做任意的 y 次方計算的『意義』, 必須透過指數與對數函數來認知: $x^y=b^{\log_bx^y}=b^{y\log_bx}$, 其中 b 是某個拿來當作『底』的正數。 白底黑底,凡是正數都能當底; 就次方計算和許許多多用到指數或對數當作成長或衰退模型的問題來說, 我們不在乎用誰當底。 所謂的常用指對數拿 10 當底, 關於計算機科學和演算法的課題中,經常拿 2 當底。 以現今的科技而言,最常以一個被記做 e 的無理數當底; 它大約是 2.71828。

雖然在我們的教育體制當中,很晚才學到它 (可能晚至大學一年級), 但是其實常數 e 應該與圓周率 $\pi\approx3.14159$ 並列數學中最重要的常數。 當然 0 和 1 更重要,它們吃虧在曝光率太高了,反而很少被注意。 另一個重要的常數是單位虛數 i,也就是平方以後等於 -1 的那個數; 我們以後一定有機會聊聊它的故事。 按照教育體制中的學習順序,五個重要數學常數依序是 1, 0, $\pi$, ie

e 當底的指數函數 ex 常記作 EXP(x),用 e 當底的對數函數 $log_ex$ 常記作 LN(x)。任何其他底的指對數都可以用它們算出來。 例如 10x 就是 EXP(LN(10)*x), 而 logx 就是 LN(x)/LN(10)。 相對於以 10 為底者號稱『常用』,以 e 為底者號稱『自然』。 這兩個名號,如今看來真該對調才合情合理: 其實 e 才是常用的,而 10 對一般人而言比較自然。

所有的正數都能當底,而且只要採用一種底,就能將所有其他底的指數或對數算出來 (寫到這裡不由得想起『三個和尚沒水喝』的老故事)。 在這些無窮多的可能當中,為甚麼捨簡單的整數 10 而就一個奇怪的無理數 e 呢? 原因在於後者『好算』! 這個理由乍看很奇怪,無理數會比整數好算? 其實只要稍微冷靜下來想一想,就會發現底數是不是整數根本無關宏旨。 反正絕大多數的計算結果都是無理數,都只能以小數點下幾個少數的位數當作估計, 例如比較 101/2e1/2, 也就是 $\sqrt{10}\approx3.16228$$\sqrt{e}\approx1.64872$, 兩個計算結果都是無理數, 都需要以有限的小數來逼近, 所以用 10 為底並不會比用其他無理數為底得到更多好處。

為甚麼以 e 為底就會好算?而它又哪裡『自然』了? 這個問題必須透過微積分來回答。 根據微分的定義(以後有機會再談), 任意以某正數 a 為底的指數函數 ax 的微分結果(稱為導函數), 都是一個和 a 有關的常數,暫時記做 ka, 乘上原來那個指數函數 ax。 這個常數 ka 是:當 t 『幾乎』是 0 的時候, at-1 和 t 的比值。 當 t 就是 0 的時候,那個比值是 0/0,沒有意義 (因為 a0=1)。 所以 t 不能真的是 0。 那麼,甚麼叫做『幾乎』是 0 呢? t=0.01 算不算幾乎是 0?那 t=0.0001 呢? 這不是很奇怪嗎:隨便選一個夠小的數 t,就應該有一個對應的比值。 有多少『幾乎』是 0 的 t, 就有多少比值,我們要挑哪一個比值當作常數 ka 呢? 既然說它是一個『常數』,總得是個固定的數吧,怎麼可以飄忽不定?

沒錯,前述的比值隨著 t 而改變。 非常奇妙的是,只要有系統地觀察當 t 越變越小(卻又不是 0), 對應比值的數值變化,任何人都可以察覺到, 那些比值『終於』會成為一個不再改變的、固定的數。 就以 a=2 為例吧:

t(at-1)/t
0.10.717734...
0.010.695555...
0.0010.693387...
0.00010.693171...
0.000010.693149...
0.0000010.693147...
0.0000001   0.693147...
相信所有看官都同意,當 t 越變越小(卻又不可以是 0)的時候, 那個比值終於會變成一個固定的數。 各位應該也敢打賭,那個數的前六位小數,應該是 693147。 那個『終於』會固定下來的數,就是我們的 ka, 例如 $k_2\approx0.69315$, $k_3\approx1.09861$, $k_4\approx1.38629$。 也就是說 2x 的微分大約是 0.69315*2x, 而 3x 的微分大約是 1.09861*3x。 觀察 ka 的變化,似乎它隨著 a 而變大。 的確如此。那麼,因為 k2 不到 1, 而 k3 超過了 1, 想必應該有一個介於 2 和 3 之間的數 a, 使得 ka 恰好是 1 囉。 沒錯。而那個特別的數,就是我們的第五常數 $e\approx2.71828$! 因為 ke=1, 所以這個特別的指數函數 ex 微分之後還是原來的函數 ex。 在這個特別的意義之下, 我們認為 ex 是最『自然』的指數函數。

其實我剛才做比值計算的時候,用計算機按了 20.1 而得到 0.717734...。 在這個步驟,我已經不知不覺地用了指數與對數函數。 那個計算機其實幫我做的是 EXP(0.1*LN(2)) 的計算。 讀者或許會想,十八世紀的數學家又沒有計算機,他們怎麼會發現, 當 t 越來越小的時候,那個比值將會漸漸地固定下來呢? 如果您想到這個弔詭的問題,那麼就或許能體會,所謂數學的洞察力, 是多麼的威力強大啊。

至於以 e 為底的方便性, 則來自於以下這個形式上非常簡單的無窮級數 (參考一月號):

\begin{displaymath}
e^x = 1 + x + {x^2\over2!} + {x^3\over3!} + {x^4\over4!} + \cdots
\end{displaymath}

其中 n! 表示從 1 到 n 的連乘積,例如 3! 表示 $1\times2\times3=6$。 我們並不需要真的知道 e 大約是多少, 只要將 x 代入上面那個輕輕鬆鬆自自然然的公式 (等號右側), 計算前面若干項,就能得到 EXP(x) 的估計值。 那個公式裡的次方都是整數,所以經過自乘就能計算,並不是一般的次方計算。 而且,數學也能預測計算前面 n 項之後,能夠準確到小數點下第幾位。 例如,若想要準確到小數點下 16 位,則針對 EXP(1) 需要計算 20 項; 但是若針對 EXP(0.1) 則只需要計算 11 項, 而針對 EXP(10) 卻需要計算 60 項! 基本上,x 越大所需計算的項目就越多。 所以實用上我們並不直接代入公式,而會利用基本的指數律, 先設法縮小 x 再代入計算。 例如 EXP(10)=EXP(16*(10/16))=EXP(10/16) 的 16 次方, 我們可以先用無窮級數估計 EXP(10/16) 的數值,再做四次平方計算得到它的 16 次方。

同樣地,LN(x) 的計算方法,也有一個形式上很輕鬆簡單的無窮級數可資利用。 實用上,我們先以基本的對數律將 x 變換到 1/2 至 1 之間, 將 x 視為 1+pp 在 -0.5 到 1 之間。 然後利用無窮級數

\begin{displaymath}
\ln 1+p = p - {p^2\over2} + {p^3\over3} - {p^4\over4} + {p^5\over5} -\ldots
\end{displaymath}

的前幾項來估計 LN(x) 的數值。 例如 LN(10)=LN(16*(10/16)=LN(16)+LN(10/16), 而 LN(16)=4*LN(2),只要預先計算 LN(2) 的值, 儲存起來再重複使用即可。 而 LN(2) 本身的計算,固然可以代入 p=1 去算, 但是那得要計算十萬項才能準到小數點下第五位; 相對地,如果利用 LN(2)=-LN(1/2) 而代入 p=-1/2 去算, 則只要計算 14 項就夠了;其間的差異不可謂不大啊。

而 LN(2) 的數值大約是 0.69315。 咦?這個數不就是剛才說的 k2 嗎? 其實是的,ka 其實就是 LN(a), 故 ke 就是 LN(e)=1。 這難道是巧合嗎?當然不是,背後的原因雖然不算深奧,卻需要更多的微積分, 我們該在這裡停下來了。

我不記得見過以 1 當主角的數學科普讀物, 專門講 0 的倒有,例如商周出版的《零的故事》。 關於 e 的故事之豐富,牽涉西方文化與文明之廣泛深邃,當然不遑多讓。 如果這一短篇能夠引起讀者的興趣,推薦一本延伸讀物: 淡江大學鄭惟厚教授翻譯的《毛起來說e》,天下文化出版。


[ 回上層 ]


Created: Jan 11, 2007
Last Revised:
© Copyright 2007 Wei-Chang Shann

shann@math.ncu.edu.tw