數值微分簡介
你好!在標準的數學課程中,你可能已經花了很多時間,利用代數方法來求出 \(x^2\) 或 \(\sin(x)\) 這類函數的導數(即斜率)。但如果函數複雜到無法直接微分,又或者你手頭上只有一組數據點而沒有具體的函數公式時,該怎麼辦呢?
這時候,數值微分(Numerical Differentiation)就能派上用場了!它讓我們僅憑坐標點,就能估算出曲線在特定點的斜率。這就像是與其擁有一張完美的 3D 地形圖,不如透過觀察身前身後幾厘米的地面,來估計山坡的陡峭程度一樣。
快速回顧:請記住,導數 \(f'(x)\) 代表了函數在該點的切線斜率。在數值方法中,我們會使用一個很小的步長,稱為 \(h\),來協助我們求出這個斜率。
1. 前向差分法 (Forward Difference Method)
前向差分法是估算斜率最簡單的方法,其原理與你在 Year 12 接觸到的微積分基本定義(由第一原理求導)如出一轍。
想像你正站在 \(x\) 點。為了找出斜率,你向前邁出極小的一步到 \(x + h\),計算「高度」(即 y 值)的變化量,然後除以步長。
公式
\(f'(x) \approx \frac{f(x + h) - f(x)}{h}\)
逐步操作指南:
1. 確定你想要求斜率的點 \(x\)。
2. 選擇一個較小的 \(h\) 值(通常越小越好!)。
3. 計算 \(f(x)\) 和 \(f(x + h)\)。
4. 將這些數值代入公式中即可。
比喻:想像你正在爬山。為了估計你腳下位置的陡峭程度,你只需觀察前方一步遠的地面,看看它比你現在腳下的位置高出多少。
如果覺得這個方法不夠精確,別擔心! 因為我們只向前看,所以當曲線彎曲程度較大時,這個方法往往會高估或低估真實的斜率。
重點總結:前向差分法使用該點本身以及其前方的一點。它計算簡單,但準確度不是最高的。
2. 中心差分法 (Central Difference Method)
如果說前向差分法是「向前看一步」,那麼中心差分法就是「向前看一步,同時向後看一步」。這通常能提供更好的「平衡」,從而得到更精確的結果。
公式
\(f'(x) \approx \frac{f(x + h) - f(x - h)}{2h}\)
小心陷阱! 一個常見錯誤是分母只除以 \(h\)。由於你向前移動了 \(h\),又向後移動了 \(h\),這兩點之間的總水平距離實際上是 \(2h\)。
為什麼它更好?
透過使用 \(x\) 兩側的點,曲線彎曲帶來的「誤差」往往會互相抵消。在圖形上,連接 \(f(x-h)\) 和 \(f(x+h)\) 的直線,幾乎總是比前向差分法所用的直線更接近真正的切線。
記憶小撇步:「中心」意味著我們關心的點位於我們兩個計算點的中心。「向前一步,向後一步,除以雙倍距離(\(2h\))。」
重點總結:中心差分法使用 \(x\) 兩側的點。對於相同的 \(h\) 值,它通常比前向差分法精確得多。
3. 準確度與方法的「階」(Order of Methods)
在數值方法中,我們會討論當 \(h\) 減小時,誤差消失的速度。這稱為方法的階(Order of the Method)。
一階與二階方法
1. 前向差分法是一階方法,記作 \(O(h)\)。
意義: 如果你將步長 \(h\) 減半,斜率估計中的誤差大約也會減半。
2. 中心差分法是二階方法,記作 \(O(h^2)\)。
意義: 如果你將步長 \(h\) 減半,誤差大約會變成原來的四分之一(\(0.5^2 = 0.25\))。這就是為什麼它能這麼快達到精確的原因!
你知道嗎? 雖然較小的 \(h\) 通常意味著更高的精確度,但如果你把 \(h\) 設定得「太小」(例如 \(0.000000000001\)),電腦和計算機可能會因為處理不了這麼多位小數而產生「捨入誤差」。所以,\(h\) 其實有一個「黃金區間」!
快速回顧表:
- 前向差分: \(O(h)\) - 當 \(h\) 減半時,誤差減半。
- 中心差分: \(O(h^2)\) - 當 \(h\) 減半時,誤差變為原來的四分之一。
4. 使用一系列的 \(h\) 值
在考試中,你可能會被要求計算一系列遞減的 \(h\) 值(例如 \(h = 0.1\),接著 \(h = 0.05\),然後 \(h = 0.025\))對應的斜率。
透過觀察答案如何變化,你可以觀察到準確度的極限。如果 \(h = 0.05\) 和 \(h = 0.025\) 的答案在小數點後四位都幾乎相同,你就可以很有把握地認為你的答案達到了該精確度。
必須避免的常見錯誤:
- 分母陷阱:在中心差分法中誤用 \(h\) 而非 \(2h\)。
- 過早取捨入:如果在計算過程中將 \(f(x+h)\) 等數值提早取捨入到小數點後兩位,最終答案就會變得毫無意義!請保留盡可能多的位數,直到最後計算完畢再處理。
- 負號問題:如果 \(x\) 本身是負數,或者函數涉及減法運算,在計算 \(f(x-h)\) 時要特別留意負號的變化。
總結:數值微分是透過小步長來估算斜率。前向差分法是一種簡單的一階方法,而中心差分法是一種更優秀的二階方法,它透過觀測目標點兩側的數據,提供了更高的準確度。