歡迎來到數值方法!
你好!你現在接觸到的是純粹數學(Pure Mathematics)中最實用且引人入勝的課題之一:數值方法(Numerical Methods)。如果這個主題起初聽起來有點抽象,不用擔心;這本質上就是電腦和計算機在幕後使用的數學邏輯!
我們會學到什麼? 我們將學習一些技巧,用以找出那些無法或極難透過標準代數方法求解的方程式的近似解(根)。例如,嘗試求解 \(e^x + 2x^2 = 5\)。你無法用代數方法將 \(x\) 獨立出來,這時候我們就需要數值方法了!
重點摘要:當代數方法失效時,數值方法能提供精確且系統化的近似值。
第 1 節:定位根與變號原理(Change of Sign Principle)
什麼是根?
方程式 \(f(x) = 0\) 的根(root)是指函數 \(y = f(x)\) 的圖像與 \(x\) 軸相交時的 \(x\) 值。在這一點上,\(y=0\)。
1.1 變號原理
這是數值求根中最基礎的概念,非常簡單直觀:
如果我們有一個連續函數(continuous function) \(f(x)\)(意思是函數圖像沒有中斷或斷裂),且我們找到兩個數值 \(a\) 和 \(b\),使得:
1. \(f(a)\) 是正數。
2. \(f(b)\) 是負數。
……那麼,由於函數必須從正數區域過渡到負數區域(反之亦然),在 \(a\) 和 \(b\) 之間必定至少存在一個根。
步驟說明:使用變號原理
- 定義 \(f(x)\):確保你的方程式已整理為 \(f(x) = 0\) 的形式。
- 選擇區間:選取兩個數值 \(a\) 和 \(b\),組成區間 \([a, b]\)。
- 計算符號:將 \(a\) 和 \(b\) 代入 \(f(x)\)。
- 驗證:如果 \(f(a)\) 和 \(f(b)\) 的符號相反,則保證該區間內存在一個根。
例子:證明 \(f(x) = x^3 - 4x + 1 = 0\) 的一個根位於 \(x=0\) 和 \(x=1\) 之間:
\(f(0) = (0)^3 - 4(0) + 1 = 1\)(正數)
\(f(1) = (1)^3 - 4(1) + 1 = 1 - 4 + 1 = -2\)(負數)
由於符號發生了改變,因此在 0 和 1 之間存在一個根。
說明:變號法直接引出了二分法(Interval Bisection Method),即透過不斷將區間減半,直到根的精確度符合要求為止。雖然速度慢,但非常可靠!
常見錯誤提醒!
變號法僅在函數連續時才適用。如果函數存在不連續點(例如漸近線),即使符號發生變化,也不代表它一定跨越了 \(x\) 軸!除非題目涉及正切函數或已知有漸近線的函數,否則在 P3 課程中,通常假設函數是連續的。
我們用它來定位根。它要求我們檢查 \(f(x)\) 在區間 \([a, b]\) 內是否從正數變為負數(或反之)。
第 2 節:不動點迭代法(Fixed Point Iteration,循環法)
2.1 理解迭代
我們不再試圖直接找到根,而是從一個初始猜測值(稱為 \(x_0\))開始。接著將 \(x_0\) 代入特定的公式,得到一個更接近的猜測值 \(x_1\)。重複此過程(我們稱之為迭代(iterate)),直到數值不再有明顯變化,這意味著我們已經收斂到根了。
一般形式為:
$$x_{n+1} = g(x_n)$$
類比:想像一個自動調節溫度的恆溫器。它測量當前溫度(\(x_n\)),應用規律(\(g\)),並調整設置以獲得新溫度(\(x_{n+1}\)),目標是最終穩定在設定溫度(即根)。
2.2 建立迭代公式
這裡的挑戰在於將 \(f(x) = 0\) 轉換為 \(x = g(x)\) 的形式。通常有多種轉換方法,但並非每一種都能收斂!
例子: \(x^3 - 2x - 5 = 0\)。
嘗試 A(重排 1):
$$x^3 = 2x + 5$$
$$x = \sqrt[3]{2x + 5}$$
這得出迭代公式:\(x_{n+1} = \sqrt[3]{2x_n + 5}\)。
嘗試 B(重排 2):
$$2x = x^3 - 5$$
$$x = \frac{x_3 - 5}{2}$$
這得出迭代公式:\(x_{n+1} = \frac{x_n^3 - 5}{2}\)。
核心概念:如果迭代收斂,\(x_{n+1}\) 最終會幾乎等於 \(x_n\)。當 \(x_{n+1} = x_n\) 時,我們得到 \(x = g(x)\),這就解出了原來的方程式!
2.3 收斂性:階梯圖與蛛網圖
當你在圖表上繪製 \(y = x\) 和 \(y = g(x)\) 時,根就是它們的交點。迭代過程描述了圖上的一條路徑:
- 從 \(x\) 軸上的 \(x_0\) 開始。
- 垂直移動到曲線 \(y = g(x)\) 上,這就是 \(x_1\)。
- 水平移動到直線 \(y = x\) 上(這一步至關重要,因為它將 \(x_1\) 設定為下一步的輸入值)。
- 重複上述步驟(垂直回到 \(y=g(x)\),水平回到 \(y=x\))。
你知道嗎?
如果根是以單調方式逼近(總是增加或總是減少),形成的圖形稱為階梯圖(staircase diagram);如果數列在根的兩側波動,則稱為蛛網圖(cobweb diagram)。
迭代收斂的條件是,在根的位置,\(g(x)\) 的梯度絕對值必須小於 1:
$$|\,g'(x)\;| < 1$$
如果 \(|\,g'(x)\;| > 1\),迭代將會發散(即螺旋式或階梯式遠離根部)。
想像根是碗的底部。如果函數 \(g(x)\) 太陡(梯度 > 1),你的起始值會滾開;如果函數較平緩(梯度 < 1),你的數值就會滾進根部。
第 3 節:牛頓-拉弗森法(Newton-Raphson Method)
固定點迭代法(第 2 節)可能很慢,或者如果重排方式不當可能會失敗。牛頓-拉弗森法通常速度更快,威力更強。
3.1 牛頓-拉弗森公式
此方法利用曲線 \(y = f(x)\) 在當前猜測點 \(x_n\) 的切線,來預測下一個更準確的猜測值 \(x_{n+1}\)。
其公式為:
$$x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}$$先決條件檢查:請注意,此方法要求你先求出導數 \(f'(x)\)!
3.2 工作原理(幾何解釋)
該公式源於切線近似。如果你選擇一個猜測點 \(x_n\),計算該點的切線,這條切線與 \(x\) 軸的交點就是下一個猜測點 \(x_{n+1}\)。由於切線是曲線在局部很好的近似,\(x_{n+1}\) 通常非常接近真實的根。
計算步驟
假設我們想求 \(f(x) = x^2 - 3\) 的根(我們知道答案是 \(\sqrt{3}\) \(\approx\) 1.732)。我們取 \(x_0 = 2\)。
- 求 \(f(x)\) 和 \(f'(x)\):
\(f(x) = x^2 - 3\)
\(f'(x) = 2x\) - 建立迭代公式:
$$x_{n+1} = x_n - \frac{x_n^2 - 3}{2x_n}$$ - 計算 \(x_1\)(從 \(x_0 = 2\) 開始):
$$x_1 = 2 - \frac{(2)^2 - 3}{2(2)} = 2 - \frac{1}{4} = 1.75$$ - 計算 \(x_2\):
$$x_2 = 1.75 - \frac{(1.75)^2 - 3}{2(1.75)} \approx 1.73214$$看看我們收斂得有多快!\(x_2\) 已經精確到小數點後 4 位了。這種速度就是牛頓-拉弗森法的主要優勢。
3.3 失敗案例與侷限性
雖然速度快,但牛頓-拉弗森法在特定情況下可能會失敗:
- 當 \(f'(x_n) \approx 0\) 時: 如果在猜測值 \(x_n\) 附近的切線幾乎是水平的,分母 \(f'(x_n)\) 就會變得非常小,導致分數變得極大,將 \(x_{n+1}\) 推離根部。在幾何上,一條幾乎平坦的切線會與 \(x\) 軸在很遠的地方相交。
- 駐點(Turning Points): 如果你的初始猜測點 \(x_0\) 接近極大值或極小值(駐點),該方法可能會試圖收斂到遙遠的根,或完全失敗。
牛頓-拉弗森法關鍵總結:它是最快的方法,但你需要一個足夠接近的初始猜測值,且必須避免曲線平坦的地方(即 \(f'(x)=0\) 的點)。
第 4 節:方法總結與精確度
4.1 證明根的精確度
使用迭代法後,題目通常會要求你證明根落在某個區間內,並精確到小數點後指定的位數。
如果你被要求證明根 \(\alpha\) 精確到 3 位小數為 \(1.732\):
你必須測試該區間的下界和上界(四捨五入後會變成該值的臨界值):
- 下界: \(1.7315\)
- 上界: \(1.7325\)
你必須對原始函數 \(f(x)\) 使用變號原理。
1. 計算 \(f(1.7315)\),證明其為某個符號(例如負號)。 2. 計算 \(f(1.7325)\),證明其符號相反(例如正號)。
由於該區間內發生了符號變化,真實的根 \(\alpha\) 必定介於 1.7315 和 1.7325 之間。在這個區間內的所有值,四捨五入後都是 1.732(3 位小數)。證畢。
4.2 選擇合適的工具
你選擇的數值方法取決於問題的要求。
| 方法 | 目的 | 速度/效率 | 要求/注意 |
|---|---|---|---|
| 變號/二分法 | 定位並證明區間內存在根。 | 慢,但 100% 可靠。 | 函數必須是連續的。 |
| 不動點迭代法 (\(x_{n+1}=g(x_n)\)) |
迭代計算根。 | 中等。不保證一定收斂。 | 需要代數重排。僅在 \(|\,g'(x)\;| < 1\)(根附近)時有效。 |
| 牛頓-拉弗森法 | 快速計算根。 | 非常快(通常)。 | 需要導數 \(f'(x)\)。如果 \(f'(x) \approx 0\) 則會失敗。 |
最後的鼓勵:數值方法非常講究步驟。只要你熟練掌握公式,並勤加練習如何正確設定迭代過程,你會發現這一章非常有成就感。祝你學習順利!