歡迎來到數值解法(Numerical Solutions)的世界!助你找出隱藏的根

哈囉,未來的數學家!這一章「方程的數值解法 (Numerical solution of equations)」,我們將告別單純的代數移項,開始運用計算的真正力量。你可能已經學過如何解二次方程,甚至是三次方程,但如果遇到像 \(x^5 - 3x + 1 = 0\) 這樣棘手的方程該怎麼辦呢?

現實世界中,大多數的方程都過於複雜,難以求得精確解。數值方法就是我們用來尋找根(即函數值為零的 \(x\) 值)之高精度近似值的工具。把這一章想像成學習進階的「搜索技術」吧!

如果一開始覺得有點難,別擔心。我們會一步步拆解每一種方法。這些方法都涉及迭代(iteration)——即透過重複簡單的計算來逐步優化答案。


第 1 節:定位根的位置(符號改變法則)

在我們進行近似求根之前,需要先大致掌握根的位置。這要利用連續函數(continuous functions)的性質。

1.1 先決條件:連續性與符號改變

在進階數學 (Further Maths) 中,除非另有說明,否則我們通常處理的是連續函數 \(f(x)\)。這意味著畫函數圖形時不需要提起筆,圖形上沒有間斷點或垂直漸近線。

根 \(\alpha\) 是圖形穿過 x 軸的位置,即 \(f(\alpha) = 0\)。

符號改變法則 (The Change of Sign Rule)

如果你在兩個點 \(a\) 和 \(b\) 處計算連續函數 \(f(x)\) 的值:

  • 若 \(f(a)\) 為正且 \(f(b)\) 為負(反之亦然),
  • 那麼根必定位於區間 \([a, b]\) 之內。

比喻:想像你在穿過一個山谷(函數)。如果你從海平面以上(正值 \(f(x)\))出發,最後來到海平面以下(負值 \(f(x)\)),那你一定至少穿過一次海平面(根,即 \(f(x)=0\))!

1.2 定位步驟

若要證明根 \(\alpha\) 位於區間 \([a, b]\) 內,請執行以下步驟:

  1. 計算 \(f(a)\) 和 \(f(b)\)。
  2. 展示 \(f(a)\) 和 \(f(b)\) 的符號相反(一正一負)。
  3. 陳述結論:「由於函數發生了符號改變且 \(f(x)\) 是連續的,因此根必定位於區間 \([a, b]\) 內。」

常見錯誤警示!

你必須提及「連續性」!如果函數有漸近線(例如 \(f(x) = 1/x\)),它可能會在沒有根的情況下改變符號。例如,若檢查 \(f(x) = 1/x\) 在 \(f(-1)\) 和 \(f(1)\) 的值,雖然符號變了,但根並不介於 -1 和 1 之間——因為它在 \(x=0\) 處是不連續的。

第 1 節重點總結

符號改變法則是一切的基礎。只要函數是連續的,它就能保證兩點之間存在根。


第 2 節:二分法 (The Interval Bisection Method)

二分法是尋找根最簡單、最可靠,但速度最慢的技術。

2.1 概念:將不確定性減半

一旦我們知道根介於 \(a\) 和 \(b\) 之間,二分法就會重複將包含根的區間減半。

比喻:想像你在尋找躲在田野裡的朋友。你知道他就在這片田野某處。你將田野一分為二(二分),詢問他在哪一半邊。接著你再將那個較小的區塊一分為二,以此類推。每一次切割,你的誤差可能範圍就減半了。

2.2 二分過程(迭代步驟)

從區間 \([a, b]\) 開始,其中 \(f(a)\) 和 \(f(b)\) 符號相反。

步驟 1:求中點
計算中點 \(c\): $$c = \frac{a + b}{2}$$

步驟 2:計算 \(f(c)\)
計算函數在該中點的值 \(f(c)\)。

步驟 3:縮小區間
比較 \(f(c)\) 與 \(f(a)\) 和 \(f(b)\) 的符號:

  • 如果 \(f(c)\) 與 \(f(a)\) 符號相同,則根必定位於新的區間 \([c, b]\)。因此,以 \(c\) 取代 \(a\)。
  • 如果 \(f(c)\) 與 \(f(b)\) 符號相同,則根必定位於新的區間 \([a, c]\)。因此,以 \(c\) 取代 \(b\)。

步驟 4:重複
重複步驟 1–3,直到區間 \([a, b]\) 小到足以滿足所需的精度(例如,求到小數點後 2 位)。

快速回顧:可靠性 vs. 速度

  • 優點:非常可靠。只要起始區間內確實存在根,它保證會成功。
  • 缺點:收斂速度非常慢。需要多次迭代才能達到高精度。
第 2 節重點總結

二分法透過持續將誤差減半來運作,使其既穩健又缺乏效率。它完全依賴檢查 \(f(x)\) 的符號。


第 3 節:線性插值法 (Linear Interpolation)

線性插值法是一種更快、具幾何性質的近似方法,它嘗試比單純使用中點畫出更好的估計。

3.1 概念:使用直線近似

線性插值法不是盲目地找中點,而是假設實際曲線 \(f(x)\) 在點 \(A(a, f(a))\) 和 \(B(b, f(b))\) 之間大致是一條直線。

根的新估計值 \(x_1\),即是這條直線(稱為弦,chord)與 x 軸相交的點。

3.2 插值公式

估計值 \(x_1\) 根據函數值 \(f(a)\) 和 \(f(b)\) 的大小來劃分區間 \([a, b]\)。根會比較靠近那個函數值較小(即更接近 0)的端點。

利用相似三角形(幾何學),我們可以導出新估計值 \(x_1\) 的公式:

$$x_1 = a + \frac{(b-a)|f(a)|}{|f(a)| + |f(b)|}$$

其中 \(|f(a)|\) 和 \(|f(b)|\) 是函數值的量值(絕對值)。

記憶輔助/公式理解:
我們從 \(a\) 開始,加上總寬度 \((b-a)\) 的一小部分。這一部分由到 x 軸距離的比例決定。點 \(a\) 會根據 \(f(b)\) 的大小將根的估計值拉向自己。

由於分母使用了絕對值,只要 \(f(a)\) 和 \(f(b)\) 符號相反,無論它是正還是負,該公式都適用。

3.3 插值過程

步驟 1:計算估計值
使用上述公式求出 \(x_1\)。

步驟 2:計算 \(f(x_1)\)
計算函數在該新估計值下的值。

步驟 3:縮小區間
就像二分法一樣,觀察 \(f(x_1)\) 的符號,並取代符號相同的邊界(\(a\) 或 \(b\))。

步驟 4:重複
重複上述過程直到達到所需精度。

快速回顧:速度 vs. 可靠性

  • 優點:通常比二分法收斂得快,因為它利用了 \(f(x)\) 量值的資訊。
  • 缺點:每一步的計算較複雜。
第 3 節重點總結

線性插值利用幾何(相似三角形)在端點間畫一條直線,產生的估計通常比二分法快。它需要使用 \(f(a)\) 和 \(f(b)\) 的絕對值。


第 4 節:牛頓-拉弗森法 (The Newton-Raphson Method)

牛頓-拉弗森法是 FP1 中涵蓋的最快、最強大的數值技術。不過,它需要具備微分知識。

4.1 概念:使用切線

牛頓-拉弗森法不是使用弦(如線性插值法般在兩個已知點之間連線),而是在單一起始點 \(x_0\) 處使用曲線的切線 (tangent)

在 \(x_n\) 處的切線斜率由導數 \(f'(x_n)\) 給出。

下一個估計值 \(x_{n+1}\),就是該切線與 x 軸相交的位置。

4.2 牛頓-拉弗森公式

利用座標幾何(直線的點斜式),下一個近似值的公式為:

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

此公式非常重要,必須背熟。

4.3 牛頓-拉弗森過程

步驟 1:定義函數及其導數
你需要 \(f(x)\) 和 \(f'(x)\)。

步驟 2:選擇起始值 \(x_0\)
題目通常會給定,若無,則必須使用符號改變法則或草圖找出根附近合理的起始點。

步驟 3:計算下一個估計值
將 \(x_0\) 代入公式求得 \(x_1\): $$x_1 = x_0 - \frac{f(x_0)}{f'(x_0)}$$

步驟 4:迭代
利用 \(x_1\) 求 \(x_2\),利用 \(x_2\) 求 \(x_3\),以此類推,直到達到所需精度(通常是近似值在要求的小數點位數上一致)。

4.4 潛在問題與失敗原因

雖然速度極快(它具有二次收斂性,意味著準確的小數位數在每次迭代中大約會翻倍!),但牛頓-拉弗森法並非萬無一失。

警告:何時會失敗

  1. 水平切線:如果 \(f'(x_n) = 0\),該方法會失敗,因為你不能除以零。如果你的起始點太靠近轉折點(局部極大值或極小值),就會發生這種情況。
  2. 發散:如果起始值 \(x_0\) 距離根太遠,切線可能會指向完全不同的區域,導致估計值離根越來越遠,而不是靠近(發散)。
  3. 循環:迭代可能會在兩個值之間來回跳動,而無法收斂到根。

你知道嗎?當計算機或軟體被要求「解」非線性方程時,牛頓-拉弗森法是其背後的核心演算法。它的速度使它在實際工程與物理領域中無比重要。

第 4 節重點總結

牛頓-拉弗森法是最快的方法,依賴微積分(\(f'(x)\))。其公式使用了切線。務必檢查估計點附近的導數是否為零!


章節總結:方法比較

你必須理解每一種技術的優缺點。

5.1 快速比較表

方法 所用原則 可靠性 速度(收斂性) 關鍵輸入
二分法 符號改變 最高(總是有效) 慢(線性) \(f(a), f(b)\) 的符號
線性插值法 直線(弦) 高(需要符號改變) 中等 \(f(a), f(b)\) 的量值
牛頓-拉弗森法 切線(微積分) 可能失敗(若 \(f'(x)=0\)) 極快(二次) \(f(x), f'(x)\)

5.2 證明達到要求的精度

當被要求證明根 \(\alpha\) 在小數點後 \(k\) 位是正確的,你必須在可能範圍的邊界上使用符號改變法則

範例:證明根為 3.45(2 位小數)。

  1. 真實值必定介於 3.445 和 3.455 之間。
  2. 計算 \(f(3.445)\)。
  3. 計算 \(f(3.455)\)。
  4. 如果在該兩個數之間有符號改變,你就成功地「夾住了」根,從而證明了精度。

無論你使用哪種數值方法(二分、插值或牛頓-拉弗森)來找到估計值,這最後的證明步驟都是至關重要的!

繼續練習那些迭代吧!數值方法全在於技巧與細心的計算。你一定做得到的!