🎯 綜合學習筆記:數值方法 (Numerical Methods, FP1.3) 🎯
歡迎來到數值方法 (Numerical Methods) 的世界!別擔心這個術語聽起來很深奧——它其實只是指當我們無法求出精確的「漂亮」答案(例如 $x=3$ 或 $x=\sqrt{2}$)時,利用數學工具和程序來找出近似解。
許多現實世界的問題,特別是在工程學和物理學中,都會導出一些無法單純透過代數或標準微積分來求解的方程式(我們稱這些為解析解)。而數值方法就是你最強大的後備方案!
在本章中,我們將學習如何找出方程式的根(即 $f(x)=0$ 的位置),以及如何近似微分方程的解。
1. 定位方程式的根:符號變號法則
什麼是「根」?
方程式 $f(x)=0$ 的一個根(或稱零點)是指 $y=f(x)$ 的圖形與 $x$ 軸相交時的 $x$ 值。
1.1 符號變號法則 (Sign Change Rule) 的原理
確認根是否存在於某個區間內,最簡單的方法就是符號變號法則。
法則:如果函數 $f(x)$ 在區間 $[a, b]$ 上是連續的,且 $f(a)$ 與 $f(b)$ 的正負號相反(一個為正,一個為負),那麼在 $a$ 和 $b$ 之間必然至少存在一個根。
類比:想像你正在爬山。如果你從海拔 100 公尺 ($+$) 的地方出發,最後到達海拔 -50 公尺(海平面以下,$-$)的地方,而且過程中你的腳沒有離開過地面(這意味著路徑是連續的),那你一定會在某個時刻經過海拔 0 公尺的標記(即根)。
❌ 常見錯誤提示:連續性至關重要!
如果函數在區間內不連續,此法則便會失效。例如,函數 $f(x) = \frac{1}{x-2}$ 在 $x=1$ ($f(1)=-1$) 和 $x=3$ ($f(3)=1$) 之間符號發生了改變,但中間卻沒有根!因為它在 $x=2$ 處有一條垂直漸近線(即斷點)。
重點總結:在應用任何求根方法之前,請先使用符號變號法則,將根定位在一個較小且明確的區間內(例如在 1 和 2 之間)。
2. 數值求根的迭代法
一旦我們知道根存在於 $[a, b]$ 區間內,我們就會使用迭代法(Iterative Methods)——透過重複執行同一程序——來讓數值越來越接近真正的根。
2.1 二分法 (Interval Bisection Method)
這是最可靠但通常也是最慢的方法。它的運作原理是重複地將包含根的區間減半。
二分法步驟:
- 開始:你有一個區間 $[a, b]$,其中 $f(a)$ 與 $f(b)$ 符號相反。
- 計算中點:找出區間的中點:\(c = \frac{a+b}{2}\)。
- 測試 $f(c)$:計算 $f(c)$ 的值。
- 縮小區間:
- 如果 $f(c)$ 與 $f(a)$ 同號,則根必定位於 $[c, b]$ 之間。將 $a$ 替換為 $c$。
- 如果 $f(c)$ 與 $f(b)$ 同號,則根必定位於 $[a, c]$ 之間。將 $b$ 替換為 $c$。
- 如果 $f(c) = 0$,恭喜你,你找到了精確的根!
- 重複:重複步驟 2,直到區間小到足以滿足所需的精確度為止。
你知道嗎?在每一次迭代中,根所在位置的不確定性都會減少 50%。這保證了你一定會收斂到根,即使這可能需要經過許多次步驟。
2.2 線性插值法 (Linear Interpolation Method)
線性插值法試圖比單純的二分法更聰明地進行猜測。它假設曲線在點 $(a, f(a))$ 和 $(b, f(b))$ 之間是一條直線,並找出這條線(稱為弦,chord)與 $x$ 軸的交點。
幾何概念:相似三角形
此方法依賴於由弦與 $x$ 軸所形成的相似三角形。這能提供比二分法更好的估計值,我們稱之為 $x_1$。
下一個估計值 \(x_1\) 的公式:
如果 $f(a)$ 和 $f(b)$ 符號相反,公式為:
$$x_1 = a + \frac{|f(a)| \times (b-a)|}{|f(a)| + |f(b)|}$$注意:使用絕對值 ($|\dots|$) 可以確保你處理的只是距離,從而減少計算中出現符號錯誤的機會。
線性插值法步驟:
- 計算 $x_1$:使用上述公式。
- 測試 $f(x_1)$:計算 $f(x_1)$ 的值。
- 更新區間:根據 $f(x_1)$ 的符號,像二分法一樣用 $x_1$ 替換 $a$ 或 $b$。
- 重複:使用新的、更小的區間來計算 $x_2$,依此類推。
重點總結:線性插值法通常比二分法收斂得更快,因為它利用了 $f(a)$ 和 $f(b)$ 的相對大小來對近似值進行加權。
2.3 牛頓-拉弗森法 (Newton-Raphson Method)
這通常是最快的數值方法,但它需要先求出導數 $f'(x)$,且對初始猜測值較為敏感。
牛頓-拉弗森法不是使用弦(如線性插值法),而是使用當前猜測值 $x_n$ 處曲線的切線。下一個近似值 $x_{n+1}$ 就是該切線與 $x$ 軸的交點。
迭代公式:
$$x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}$$其中 $f'(x_n)$ 是曲線在 $x_n$ 處的斜率。
牛頓-拉弗森法步驟:
- 微分:求出 $f'(x)$ 的表達式。
- 選擇 $x_0$:選擇一個合適的起始值 $x_0$(通常選在根附近)。
- 計算 $x_1$:將 $x_0$ 代入公式求出 $x_1$。
- 迭代:使用 $x_1$ 求出 $x_2$,並持續下去直到達到所需的精確度。
❗ 牛頓-拉弗森法何時會失效? ❗
此方法可能很不穩定!在以下情況表現不佳:
- 你的起始值 $x_0$ 離根太遠。
- 斜率 $f'(x_n)$ 接近零(即你在駐點附近)。如果 $f'(x_n) \approx 0$,切線幾乎是水平的,這會導致 $x_{n+1}$ 被拋到非常遠的地方。
快速回顧:求根方法
- 二分法:速度慢但有保證。
- 線性插值法:比二分法快,使用弦進行計算。
- 牛頓-拉弗森法:最快,使用切線,需計算 $f'(x)$,在轉折點附近會失效。
3. 求解微分方程:歐拉法 (Euler's Method)
有時我們會遇到形如 $\frac{dy}{dx} = f(x, y)$ 的微分方程,而我們無法透過解析法(積分)求解。歐拉法提供了一種數值方法,在已知起始點 $(x_0, y_0)$ 的情況下,近似出函數的解 $y(x)$。
其核心思想是用許多細小的直線段來近似曲線。我們利用起始點的斜率來估計下一個點的值。
類比:你開著車,但視線只能看到前方一公尺的路。你根據當前車頭的方向,直線駕駛這一公尺。然後你停下來,重新觀察道路,調整方向,再重複這個動作。如果你的步長非常短,你的路徑看起來就會非常像真實的彎曲道路。
歐拉法公式
給定初始點 $(x_0, y_0)$ 和一個小的步長 $h$:
下一個 x 坐標很簡單:
$$x_{n+1} = x_n + h$$下一個 y 坐標則透過線性外推來近似:
$$y_{n+1} \approx y_n + h \times f(x_n, y_n)$$請記得 $f(x_n, y_n)$ 就是在 $(x_n, y_n)$ 處計算出來的斜率 $\frac{dy}{dx}$。
項次 $h \times f(x_n, y_n)$ 代表在小步長 $h$(自變量增量)期間,$y$ 的變化量(縱坐標增量)。
歐拉法步驟:
假設你想從 $(x_0, y_0)$ 出發,使用步長 $h$ 來估計 $x=X$ 時的 $y$ 值。
- 初始化:設定 $n=0$。你擁有 $x_0$ 和 $y_0$。
- 計算斜率:找出 $m_0 = f(x_0, y_0)$。
- 計算下一個點:
- $x_1 = x_0 + h$
- $y_1 = y_0 + h \times m_0$
- 迭代:現在設定 $n=1$。使用 $(x_1, y_1)$ 求出 $m_1 = f(x_1, y_1)$。
- 計算第二個點:
- $x_2 = x_1 + h$
- $y_2 = y_1 + h \times m_1$
- 持續:重複此過程直到達到所需的 $x$ 值。
關於精確度的重要觀點:
你選擇的步長 $h$ 越小,最終的近似值 $y_n$ 就會越精確,因為這些短直線段能更好地逼近真實曲線。然而,步長 $h$ 越小,意味著需要更多的計算步驟!
📚 最終回顧:數值方法
數值方法是高等數學中的重要工具,架起了理論解與實際近似值之間的橋樑。
定位根:
- 符號變號法則是你的起點,若 $f(a)$ 與 $f(b)$ 在連續區間 $[a, b]$ 上符號相反,則確認根存在。
求根 ($\boldsymbol{f(x)=0}$):
- 二分法:有保證,但收斂慢,使用中點法。
- 線性插值法:較快,使用弦進行加權估計。
- 牛頓-拉弗森法:通常最快,使用由 $f'(x)$ 定義的切線。需小心選擇起始值 $x_0$。
求解微分方程 ($\frac{dy}{dx} = f(x, y)$):
- 歐拉法:透過在每個點沿著切線採取小步長 ($h$) 來近似解曲線 $y(x)$。步長 $h$ 越小,精確度越高。
你已經涵蓋了數值方法中所有的基本技巧。繼續練習這些迭代公式吧——它們可是這章成功的關鍵!