方程式的數值解 (P3/Paper 3)
歡迎來到令人興奮的數值方法世界!本章的重點在於求出那些過於複雜而無法使用標準代數技巧(例如二次方程式公式或簡單因式分解)解決的方程式的解(根)。由於我們無法求得精確答案,我們將會使用各種方法來尋找極高精度的近似值。這在應用數學和科學領域中至關重要!
如果這聽起來很複雜,別擔心——我們只是在學習如何做出越來越準確的推測!
1. 定位根:起點
在開始進行根的近似之前,我們需要大致了解它的位置。我們有兩種主要方法來確定根的位置:
1.1 變號規則(「跨越坐標軸」測試)
定位根最簡單且最可靠的方法是測試根兩側的函數值。
假設你有一個方程式 \(f(x) = 0\)。如果你能找到兩個值,\(a\) 和 \(b\),使得:
• \(f(a)\) 是正數(例如 \(f(a) > 0\))
• \(f(b)\) 是負數(例如 \(f(b) < 0\))
• 函數 \(f(x)\) 在 \(a\) 和 \(b\) 之間是連續的(意味著沒有斷點或間隙)。
……那麼,在 \(x=a\) 和 \(x=b\) 之間,\(f(x) = 0\) 必定至少存在一個根(解)。
比喻: 想像你正走過一個山谷。如果你從山上開始(高度為正),最後到達山谷的另一邊低於海平面(高度為負),假設你沒有跳過整個山谷,那麼你在某個點上必定跨越了海平面(高度為零)!
重要前置檢查: 你必須確保該函數是連續的。對於 9709 課程中涉及的所有函數(多項式、指數、對數、三角函數),除非區間包含了垂直漸近線(例如 \(y = \tan x\) 或 \(y = 1/x\)),否則這通常是成立的。
1.2 使用圖解法定位根
有時,直接觀察圖形來定位根會更容易,特別是在方程式比較複雜的時候。
如果你有一個方程式 \(f(x) = 0\),你通常可以將其重組為兩個獨立、較簡單的函數:
\(y_1 = g(x)\) 和 \(y_2 = h(x)\)
原方程式 \(f(x)=0\) 的根,就是這兩個函數圖形 \(y_1\) 和 \(y_2\) 交點的 \(x\) 坐標。
例子: 要找出 \(e^x - x^2 = 0\) 的根,我們可以重組為 \(e^x = x^2\)。接著繪製:
• \(y_1 = e^x\)(指數曲線)
• \(y_2 = x^2\)(拋物線)
透過繪圖,你可以直觀地估計有多少個根及其大致位置(例如:「一個根在 \(x=-0.7\) 附近,另一個在 \(x=1.3\) 附近」)。
快速回顧:根的定位
務必從以下開始:繪圖(了解其大致位置)或檢查變號(精確證明其位置)。
2. 迭代法:一步步逼近
當你知道根在 \(x_0\) 附近後,我們使用迭代法 (iteration) 來多次精煉該推測值,直到達到所需的精度。
2.1 迭代公式 \(x_{n+1} = F(x_n)\)
數值迭代的核心是將方程式 \(f(x) = 0\) 重組為 \(x = F(x)\) 的形式。
這讓我們能定義一連串的近似值:
\(x_{n+1} = F(x_n)\)
• 從初始推測值 \(x_0\) 開始。
• 計算下一個近似值:\(x_1 = F(x_0)\)。
• 接著:\(x_2 = F(x_1)\)。
• 依此類推:計算出 \(x_n\),即可得到 \(x_{n+1}\)。
如果這一串數值(\(x_0, x_1, x_2, \dots\))越來越接近某個單一固定值,我們就說該數列收斂 (converges) 到根 \(\alpha\)。由於當 \(n\) 很大時 \(x_{n+1} \approx x_n\),我們發現 \(\alpha = F(\alpha)\),這正是原方程式的解。
2.2 將 \(f(x)=0\) 重組為 \(x = F(x)\)
對於任何一個方程式 \(f(x)=0\),通常有許多種方法將其重組為 \(x = F(x)\) 的形式。
例子: 解 \(x^3 - 2x - 5 = 0\)
重組方式 A:
\(x^3 = 2x + 5\)
\(x = (2x + 5)^{1/3}\)
這給出了迭代公式:\(x_{n+1} = (2x_n + 5)^{1/3}\)
重組方式 B:
\(2x = x^3 - 5\)
\(x = \frac{x^3 - 5}{2}\)
這給出了迭代公式:\(x_{n+1} = \frac{x_n^3 - 5}{2}\)
你知道嗎? 並非所有的重組方式都有效!如果你選擇了錯誤的重組方式,迭代可能會發散 (diverge)(離根越來越遠)。在考試中,通常題目會給定你應使用的特定重組方式,或者要求你找出一種看起來有效的重組方式。
3. 執行迭代與判斷精度
3.1 逐步迭代(計算機技巧)
有效運用迭代公式是一項關鍵技能,通常使用計算機上的 ANS 鍵來完成。
程序清單:
1. 從 \(x_0\) 開始: 輸入初始推測值(題目通常會給定,例如 \(x_0 = 1\))。按 [=]。
2. 輸入 \(F(x)\): 輸入迭代公式,用 ANS 取代 \(x_n\)。
例子(對於 \(x_{n+1} = (2x_n + 5)^{1/3}\)): 輸入 \((2 \times \text{ANS} + 5)^{1/3}\)。
3. 迭代: 重複按 [=]。第一次按得到 \(x_1\),第二次得到 \(x_2\),依此類推。
4. 記錄: 記下數值序列,直到它們穩定(即在所需的小數位數下不再改變)。
迭代例子: 若從 \(x_0 = 1\) 開始,數列可能為:
\(x_0 = 1.000000\)
\(x_1 = 1.709976\)
\(x_2 = 1.883395\)
\(x_3 = 1.918967\)
\(x_4 = 1.925893\)
\(x_5 = 1.927282\)
\(x_6 = 1.927558\)
\(x_7 = 1.927613\)
\(x_8 = 1.927624\)
此時,如果題目要求精確到小數點後 4 位 (4 d.p.),則答案為 \(1.9276\)。
3.2 證明根的精度(最終變號測試)
迭代過程會給你一個看似穩定的值。為了證明該值精確到特定位數(例如小數點後 3 位),你必須回到原始函數 \(f(x)\),並在一個微小的區間內使用變號規則。
假設題目要求證明根為 \(\alpha = 1.928\),精確到 3 位小數。
這意味著真正的根必須位於該近似值的下界和上界之間:
• 下界: \(1.9275\)
• 上界: \(1.9285\)
逐步證明:
1. 定義原始函數 \(f(x)\)。 (例如,如果我們解的是 \(x^3 - 2x - 5 = 0\),則 \(f(x) = x^3 - 2x - 5\))。
2. 計算 \(f(\text{下界})\):求出 \(f(1.9275)\)。
3. 計算 \(f(\text{上界})\):求出 \(f(1.9285)\)。
4. 檢查符號: 如果符號相反,則真正的根位於該區間內,從而證實四捨五入至 3 位小數後,根確實為 \(1.928\)。
避免常見錯誤: 學生有時會嘗試使用迭代函數 \(F(x)\) 來進行變號檢查。你必須使用原始函數 \(f(x)\)。
記憶口訣:變號規則
使用 \(f(x)\)(原始函數)來 Find(尋找)初始區間。
再次使用 \(f(x)\) 來進行 Final(最終)的精度證明。
4. 迭代的圖解法(收斂)
迭代數列 \(x_{n+1} = F(x_n)\) 的行為可以透過繪製 \(y = x\) 和 \(y = F(x)\) 的圖形來視覺化。
根 \(\alpha\) 即是交點,因為在交點處 \(x = F(x)\)。
4.1 視覺化收斂與發散
為了視覺化這個數列,我們繪製一條在直線 \(y=x\) 和曲線 \(y=F(x)\) 之間交替的路徑:
1. 在 \(x\)-軸上從 \(x_0\) 開始。
2. 垂直移動到曲線 \(y = F(x)\)。此高度為 \(y_0 = F(x_0) = x_1\)。
3. 從曲線水平移動到直線 \(y = x\)。此處的 \(x\)-坐標現在為 \(x_1\)。
4. 從直線 \(y = x\) 垂直移動回曲線 \(y = F(x)\)。此高度為 \(y_1 = F(x_1) = x_2\)。
5. 重複步驟 2、3、4。
產生的形狀可以顯示出兩種主要的成功迭代(收斂)或失敗(發散)情況。
階梯式收斂 (Staircase Convergence)
如果路徑形成一系列階梯狀並導向根部,則迭代成功。
當曲線 \(y=F(x)\) 在根附近的斜率較小且為正時,就會發生這種情況。
蛛網式收斂 (Cobweb Convergence)
如果路徑呈螺旋狀向內旋轉至根部(像蛛網一樣),則迭代成功。
當曲線 \(y=F(x)\) 在根附近的斜率較小且為負時,就會發生這種情況。
發散 (Divergence)(失敗)
如果路徑遠離交點,則迭代無法收斂。當曲線 \(y=F(x)\) 在根附近太陡時,就會發生這種情況。
給資優生的備註: 雖然你不需要了解收斂的正式數學條件(這涉及導數 \(|F'(x)|\) 的大小),但你需要明白迭代可能會無法收斂,而圖解法有助於視覺化為何某些重組方式比其他方式更好。
數值方法的關鍵要點
• 開始: 使用變號規則或繪圖法來定位兩值之間的根。
• 過程: 將 \(f(x)=0\) 重組為迭代形式 \(x_{n+1} = F(x_n)\)。
• 精度: 要確認根 \(\alpha\) 的特定精度(例如 3 位小數),你必須在所需精度的下界和上界(例如 \(1.9275\) 和 \(1.9285\))處,使用原始函數 \(f(x)\) 執行最後的變號測試。
• 收斂: 如果重組形式 \(F(x)\) 不合適,迭代可能會失敗。