歡迎來到數值解法的世界!

在你過往的數學學習中,你已經學過如何透過因式分解或公式解來求解 \(x^2 - 5x + 6 = 0\) 這類方程。但如果遇到像 \(x - \cos(x) = 0\) 這種「怪獸級」方程,該怎麼辦呢?這時就沒有簡單的代數技巧能直接算出答案了!

這正是數值方法 (Numerical Methods) 大顯身手的時候。我們不再追求精確的代數解,而是利用聰明的「猜測」技巧,讓答案一步步逼近真實值。在本章中,我們將探討五種主要的解根方法。如果一開始覺得抽象也不用擔心——你可以把它想像成數字版的「猜數字遊戲」!

1. 二分法 (Bisection Method):「大點還是小點」遊戲

二分法是尋找根最簡單也最可靠的方法。它依賴於符號變號 (Change of Sign) 原則:如果一個連續函數在某區間的兩個端點之間從負值變為正值,那麼它在兩點之間一定穿過了零點!

運作步驟:

1. 找出兩個數 \(a\) 與 \(b\),使得 \(f(a)\) 與 \(f(b)\) 的符號相反(一正一負)。
2. 計算中點 (Midpoint):\(m = \frac{a + b}{2}\)。
3. 檢查 \(f(m)\) 的符號。
4. 用 \(m\) 取代 \(a\) 或 \(b\),確保新的區間依然包含符號變號。
5. 重複以上步驟,直到區間小到足以達到你需要的精確度為止!

類比:想像你在書中找特定頁碼。你把書從中間翻開,看看那一頁的頁碼是大了還是小了?接著把「錯誤」的那一半撕掉,不斷重複這個過程。最後你一定能找到那一頁!

重點回顧:二分法速度較慢但很穩健。只要函數是連續的,且起始區間存在符號變號,它一定能找到根。

2. 試位法與正割法 (False Position and the Secant Method)

雖然二分法總是取中間點,但試位法 (False Position,又稱線性插值法) 顯得更聰明。它將兩個端點連成一條直線,觀察這條直線與 x 軸的交點在哪裡。

試位法 vs. 正割法

試位法:總是將根「鎖定」在兩個符號相反的點之間,非常安全。
正割法 (Secant Method):與試位法類似,但它不強求將根鎖定在兩點之間,而是直接使用最近的兩次猜測值來繪製直線。

常見錯誤:由於正割法不會「鎖定」根的位置,有時它可能會偏離得太遠而找不到答案(即發生發散 (divergence))。

你知道嗎?「線性插值 (Linear Interpolation)」其實就是一種高級說法,意指「假設兩點之間的圖形是一條直線」。

3. 不動點迭代法 (Fixed Point Iteration):\(x_{n+1} = g(x_n)\)

這個方法就像數學上的回聲。我們將方程 \(f(x) = 0\) 重新整理成 \(x = g(x)\) 的形式。選定一個起始值代入,算出結果後,再將該結果代回同一個公式中繼續計算。

視覺化狩獵:蛛網圖與階梯圖

將這些迭代繪製在圖形上時,會出現兩種不同的規律:
蛛網圖 (Cobweb Diagrams):當數列在根的兩側震盪(來回跳躍)時會出現這種圖形。看起來就像蜘蛛網向內(或向外)盤旋!
階梯圖 (Staircase Diagrams):當數列從單側逼近根時會出現,看起來就像通往答案的階梯。

記憶小撇步:如果 \(g(x)\) 在根附近的斜率(梯度)太大——特別是當 \(|g'(x)| > 1\) 時——該方法就會失敗。因為「網」會向外螺旋發散,而不是向內收斂!

4. 牛頓-拉弗森法 (The Newton-Raphson Method)

這堪稱數值方法中的「法拉利」。它速度極快,因為它使用了當前猜測值處的切線 (tangent line,即斜率) 來尋找下一個值。

公式:

\(x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}\)

強大之處:它通常具有二階收斂 (second-order convergence)。這意味著正確的小數位數在每一步幾乎都會翻倍

何時會失敗:
1. 如果你的猜測值靠近駐點 (stationary point,即斜率為零處),公式會導致除以零。這就糟了!
2. 如果曲線非常複雜,它可能會跳到完全不同的另一個根上。

關鍵總結:不動點迭代法是「一階」的(較慢),而牛頓-拉弗森法則是「二階」的(極快)。

5. 利用鬆弛法 (Relaxation) 提升成功率

有時,不動點迭代的數列收斂得慢到讓人抓狂,甚至會發散(遠離根)。我們可以使用一種稱為鬆弛法 (Relaxation) 的技巧來修正它。

鬆弛公式:

與其直接使用 \(x_{n+1} = g(x_n)\),我們改用:
\(x_{n+1} = (1 - \lambda)x_n + \lambda g(x_n)\)

這裡的 \(\lambda\) (lambda) 是「加權」係數。
• 如果方法發散,我們用較小的 \(\lambda\) 來「拉回」它,強制收斂。
• 如果速度太慢,我們可以選擇一個能加速收斂的 \(\lambda\)。

不用擔心這看起來很複雜:在考試中,鬆弛法的公式通常會直接提供給你。你的任務是代入數字,觀察它是否越來越接近根即可!

總結:選擇你的武器

需要保證找到答案? 用二分法。
方程有清晰的導數? 用牛頓-拉弗森法以追求速度。
迭代失敗了? 試試鬆弛法,或檢查 \(g(x)\) 的斜率。
使用試算表? 這些方法非常適合用拖曳公式的方式,即時觀察「收斂」過程!

常見考題:你可能會被要求「驗證答案的精確度」。要做到這一點,請檢查你的四捨五入後的答案,在其上下分別代入函數確認符號。如果符號發生改變,那麼根一定就在那個極小的區間內!