歡迎來到數值方法:當代數失效時,如何尋找答案!
你好!歡迎來到數值方法 (Numerical Methods) 這一章。別擔心,這聽起來或許有點嚇人,但它實際上是 P3 中最實用且合乎邏輯的章節之一!
在早期的數學中,你學過如何求解像 \(x^2 - 3x + 2 = 0\)(可因式分解)或 \(2x - 5 = 11\)(可移項求解)這樣的方程。但是,如果是像 \(e^x = 10 - x\) 或 \(\sin x = \ln x\) 這樣的方程呢?這些方程無法使用標準的代數技巧來求解。
數值方法是用於尋找這些複雜方程之根(解)的近似值的技術,通常使用重複的計算(迭代)。這正是電腦和計算機在背後運作所使用的方法!
讓我們深入學習,看看如何捕捉那些棘手的根吧!
第一節:透過正負號變更來定位根
什麼是根 (Root)?
方程 \(f(x) = 0\) 的根,是指函數圖形 \(y = f(x)\) 與 \(x\) 軸相交時的 \(x\) 值。在該點上,函數值 \(y\) 正好為零。
正負號變更原則 (Change of Sign Principle)
這是最簡單的數值方法,基於常識。
若函數 \(f(x)\) 是連續的(意即其圖形在區間內沒有中斷、跳躍或漸近線),且你找到兩個值 \(a\) 和 \(b\),使得:
1. \(f(a)\) 為正(在 \(x\) 軸上方)。
2. \(f(b)\) 為負(在 \(x\) 軸下方)。
……那麼該圖形必須在 \(a\) 和 \(b\) 之間至少穿過 \(x\) 軸一次。因此,在區間 \((a, b)\) 內必然存在一個根。
類比:過河
想像 \(x\) 軸是一條河。如果你從北岸(\(f(x)\) 為正)出發,最終到達南岸(\(f(x)\) 為負),那你一定在某處穿過了這條河。那個穿過點就是根!
定位根的分步過程
- 定義函數: 確保方程已變為 \(f(x) = 0\) 的形式。 例子:如果題目是 \(e^x = 10 - x\),你必須將其重寫為 \(f(x) = e^x + x - 10 = 0\)。
- 選擇區間: 題目通常會提供一個小區間(例如 \([1, 2]\)),或者要求你自己尋找一個。
- 測試端點: 計算 \(f(1)\) 和 \(f(2)\)。
-
檢查正負號變更:
- 若 \(f(1) > 0\) 且 \(f(2) < 0\),則發生了正負號變更。
- 若 \(f(1) < 0\) 且 \(f(2) > 0\),則發生了正負號變更。
- 說明結論: 清晰地陳述:「由於 \(x=a\) 和 \(x=b\) 之間存在正負號變更,且 \(f(x)\) 在該區間內是連續的,因此必有一個根位於 \(a\) 和 \(b\) 之間。」
⚠️ 常見錯誤警示!
只有在函數連續的情況下,正負號變更才能保證存在一個根。如果函數在該區間內有漸近線(即存在中斷,如 \(f(x) = 1/x\)),則即便符號發生了改變,圖形也不一定會穿過軸!除非題目明確顯示了漸近線,否則請務必假設標準的 P3 函數(多項式、指數、對數、三角函數)都是連續的。
若 \(f(a)\) 與 \(f(b)\) 的符號相反,且 \(f(x)\) 在 \([a, b]\) 區間內連續,則根存在於 \([a, b]\) 中。此方法允許我們將根的位置縮小到越來越高的精確度(例如精確到小數點後一位)。
第二節:迭代法 (\(x_{n+1} = g(x_n)\))
雖然正負號變更法告訴我們根在哪裡,但迭代法允許我們使用一個自我重複的公式,將根計算到極高的精確度。
第一步:將 \(f(x) = 0\) 重排為 \(x = g(x)\)
核心概念是將方程 \(f(x) = 0\) 轉換為等價的形式:\(x = g(x)\)。
例子:求解 \(f(x) = x^3 - 3x - 5 = 0\)。
重排的方式有很多種,會導致不同的函數 \(g(x)\):
-
重排 A(最簡單的):
\(x^3 = 3x + 5\)
\(x = \sqrt[3]{3x + 5}\)
此處 \(g(x) = \sqrt[3]{3x + 5}\)。 -
重排 B(較複雜的):
\(3x = x^3 - 5\)
\(x = \frac{x^3 - 5}{3}\)
此處 \(g(x) = \frac{x^3 - 5}{3}\)。
重點: 只有特定的重排方式才能真正運作(即收斂到根)。我們將在第三節中探討如何分辨兩者的差異。
第二步:迭代公式
一旦你得到 \(x = g(x)\),將其轉換為迭代公式:
$$x_{n+1} = g(x_n)$$
這意味著下一個近似值 (\(x_{n+1}\)) 是透過將當前的近似值 (\(x_n\)) 代入函數 \(g\) 中計算出來的。
第三步:計算數列
- 由初始估計值 (\(x_0\)) 開始: 題目通常會給定,或者你可以使用正負號變更法計算出的結果(例如,如果根在 2 和 3 之間,你可以從 \(x_0 = 2.5\) 開始)。
- 計算 \(x_1\): 將 \(x_0\) 代入公式:\(x_1 = g(x_0)\)。
- 計算 \(x_2\): 將 \(x_1\) 代入公式:\(x_2 = g(x_1)\)。
- 重複: 繼續此過程 (\(x_3, x_4, x_5, \dots\)),直到數值收斂(即數值不再變化,或僅在要求的位數上變化)。
💡 提升速度與準確度的計算機小技巧
這對考試至關重要!
-
輸入初始估計值 \(x_0\),然後按下
=。這會將該值存入計算機的 ANS 記憶體中。 -
輸入迭代公式,使用
ANS取代 \(x_n\)。
例子:對於 \(x_{n+1} = \sqrt[3]{3x_n + 5}\),你輸入:\(\sqrt[3]{3\text{Ans} + 5}\)。 -
反覆按下
=。每一次按鍵都會計算數列中的下一個項 (\(x_1, x_2, x_3, \dots\))。這比手算快得多,且能減少捨入誤差。
處理精確度: 當計算迭代值時,中間步驟通常必須使用高精確度(至少 4 位小數),最後才四捨五入到要求的精確度。
迭代法讓我們能精確鎖定根。過程是:\(f(x)=0 \rightarrow x=g(x) \rightarrow x_{n+1}=g(x_n)\)。你需要一個初始估計值以及一個確實可行(收斂)的公式。
第三節:圖形分析與收斂性
為什麼我們說只有「特定的重排方式」能運作?這就是圖形分析發揮作用的地方。
根的圖形詮釋
當我們求解 \(x = g(x)\) 時,我們是在尋找兩個圖形的交點:
$$y = x$$
$$y = g(x)$$
交點的 \(x\) 坐標就是根 \(\alpha\)。
視覺化迭代:階梯圖與蛛網圖
我們將數列 \(x_0, x_1, x_2, \dots\) 繪製在這些圖形上。迭代過程的表現如下:
- 從 \(x\) 軸上的 \(x_n\) 垂直向上(或向下)移動到曲線 \(y = g(x)\)。(這計算出 \(x_{n+1}\)。)
- 從曲線水平移動到直線 \(y = x\)。(這將輸出 \(x_{n+1}\) 設定為下一步的輸入。)
重複此過程會產生以下兩種圖案之一:
- 階梯圖 (Staircase Diagram): 數列一步步直接向根移動。當函數 \(g(x)\) 在根附近為遞增時,會發生這種情況。
- 蛛網圖 (Cobweb Diagram): 數列呈螺旋狀向根收斂。當函數 \(g(x)\) 在根附近為遞減時,會發生這種情況。
如果點離交點越來越*遠*,則迭代是發散的(無法找到根)。
收斂的條件
決定迭代是收斂還是發散的關鍵因素,是函數 \(g(x)\) 在根 \(\alpha\) 附近的斜率(導數)。
設 \(g'(x)\) 為 \(g(x)\) 的導數(斜率函數)。
收斂法則:
迭代 \(x_{n+1} = g(x_n)\) 要收斂的充分必要條件是:在根 \(\alpha\) 處,斜率的絕對值(量值)小於 1。
$$|g'(\alpha)| < 1$$
如果 \(|g'(\alpha)| \geq 1\),迭代通常會發散或振盪,而無法趨於穩定。
類比:斜率的陡峭程度
直線 \(y=x\) 的斜率為 1。
- 如果曲線 \(y=g(x)\) 比 \(y=x\) 平坦(即 \(|g'(\alpha)| < 1\)),圖中的步驟會越來越小,你就會向根「滾」過去(收斂)。
- 如果曲線 \(y=g(x)\) 比 \(y=x\) 陡峭(即 \(|g'(\alpha)| > 1\)),步驟會越來越大,你就會跳離根(發散)。
如何在考試中證明收斂
要證明給定的公式 \(x_{n+1} = g(x_n)\) 會收斂到位於區間 \([a, b]\) 內的根 \(\alpha\),你必須證明:
$$|g'(x)| < 1 \text{ 對於區間 } [a, b] \text{ 內的所有 } x \text{ 皆成立}$$
證明步驟:
- 求出導數 \(g'(x)\)。
- 計算兩個端點 \(a\) 和 \(b\) 的 \(|g'(x)|\) 值。
- 說明在該區間內,斜率絕對值的最大值小於 1。
- 結論:「由於在區間 \([a, b]\) 內 \(|g'(x)| < 1\),因此迭代將收斂到此區域內的根 \(\alpha\)。」
你知道嗎?
在現實世界中,數學家通常會嘗試多種不同的重排方式 (\(x = g(x)\)),直到找到一種能快速收斂的方式。\(|g'(\alpha)|\) 的值越小,收斂速度就越快!
收斂取決於 \(g(x)\) 的斜率。為了讓數列穩定在根上,\(y = g(x)\) 的圖形在與 \(y = x\) 相交處不能太陡。我們需要 \(|g'(x)| < 1\)。