歡迎來到數值方法 (Numerical Methods, P2.9)!
你好!數值方法聽起來可能令人望而生畏,但它們其實非常實用。本章的主旨是為那些難以或無法透過標準代數或微積分精確求解的問題,提供近似的解決方案。
你可以將數值方法想像成數學上的「捷徑」或是強大的估算工具。無論是在複雜結構的工程設計,還是預測氣候變化,我們在現實世界中經常使用這些方法。
如果一開始覺得有些棘手也別擔心,我們將會一步步拆解每一種技巧!
1. 方程求根 (Locating Roots of Equations)
尋找包含根的區間(符號改變法 Sign Change Method)
當題目要求解 \(f(x) = 0\) 時,尋找根(解)有時會很困難。數值方法的第一步,通常是找出一個能夠確保根存在的較小區間。
符號改變原理
如果函數 \(f(x)\) 在區間 \([a, b]\) 內是連續的,且 \(f(a)\) 與 \(f(b)\) 的符號相反(一個為正,一個為負),那麼在 \(x=a\) 和 \(x=b\) 之間必定至少存在一個根。
比喻:想像過河。如果你從正值的河岸(\(y=0\) 之上)出發,抵達負值的河岸(\(y=0\) 之下),你必然至少跨越過一次水位線(x 軸,即 \(f(x)=0\))。
步驟流程
- 定義函數 \(f(x) = 0\)。
- 選擇兩個數值 \(a\) 和 \(b\),這些數值通常會在題目中給出,或是透過觀察圖形選取。
- 計算 \(f(a)\) 和 \(f(b)\)。
- 如果 \(f(a)\) 和 \(f(b)\) 的符號相反(出現符號改變),則區間 \((a, b)\) 內存在一個根。
關鍵點:此方法僅在 \(f(x)\) 於該區間內連續時才有效。如果函數有斷點或漸近線(例如 \(x=0\) 附近的 \(\frac{1}{x}\)),即便符號改變,根也不一定存在。不過,在本課程中,除非另有說明,否則預設函數均為連續。
若 \(f(x)\) 在 \(a\) 和 \(b\) 之間符號改變,且函數連續,則根位於 \(a\) 和 \(b\) 之間。此技巧能幫助我們「鎖定」答案所在的範圍。
2. 簡單迭代法 (Simple Iterative Methods)
使用遞迴關係:\(x_{n+1} = g(x_n)\)
一旦我們大致掌握了根的位置,就可以使用迭代法 (Iterative method) 來獲得更精確的近似值。「迭代」意味著重複執行同一個過程。
迭代過程
為了求解 \(f(x) = 0\),我們首先將方程式重組 (rearrange) 為以下形式: $$\mathbf{x = g(x)}$$
接著將其轉化為遞迴關係 (recurrence relation): $$\mathbf{x_{n+1} = g(x_n)}$$
你需要從一個初始猜測值 \(x_0\) 開始,將 \(x_0\) 代入右側以求得下一個近似值 \(x_1\)。重複此過程,利用上一個答案生成下一個答案,直到數值不再改變(即「收斂」為止)。
範例:求 \(x^3 - x - 7 = 0\) 的根。
我們可以將其重組為 \(x^3 = x + 7\)。
若將 \(x\) 設為主項:\(x = \sqrt[3]{x+7}\)。
遞迴關係式為:\(x_{n+1} = \sqrt[3]{x_n + 7}\)。
收斂性:數列會找到根嗎?
並非所有 \(f(x)=0\) 的重組形式都能成功迭代!數列是否收斂(趨近於根)或發散(遠離根),取決於 \(g(x)\) 在根附近的斜率。
收斂的條件是 \(y=g(x)\) 在根附近的斜率絕對值必須小於 1: $$\mathbf{|g'(x)| < 1}$$
視覺化迭代:階梯圖與蛛網圖
我們可以透過繪製 \(y = g(x)\) 和 \(y = x\) 兩條曲線,來視覺化迭代過程 \(x_{n+1} = g(x_n)\)。兩條曲線的交點即為 \(x = g(x)\) 的解。
如何繪製圖表(適用於任何迭代)
- 在 \(x\) 軸上從 \(x_0\) 開始。
- 垂直移動至曲線 \(y = g(x)\)。該點的高度為 \(y = g(x_0) = x_1\)。
- 從該點水平移動至直線 \(y = x\)。這能讓你在 \(x\) 軸上找到 \(x_1\)(因為在該直線上,橫座標等於縱座標)。
- 垂直移動回到曲線 \(y = g(x)\)。這能找到 \(x_2\)。
- 重複上述步驟。
收斂的類型
路徑的形狀取決於根附近的斜率 \(g'(x)\):
1. 階梯圖 (Staircase Diagram,單調收斂):
- 當 \(0 < g'(x) < 1\) 時發生。
- \(x_n\) 的值穩定地向根靠近,而不會超出範圍。看起來就像爬向交點的階梯。
2. 蛛網圖 (Cobweb Diagram,震盪收斂):
- 當 \(-1 < g'(x) < 0\) 時發生。
- \(x_n\) 的值每次都會跨過根,但震盪幅度越來越小,像蛛網一樣繞向中心點。
你知道嗎? 如果 \(|g'(x)| > 1\),數列會發散——即階梯或震盪的幅度會越來越大,遠離根的位置。如果題目要求你評論收斂性,這就是你應該考慮的重點!
1. 將 \(f(x)=0\) 重組為 \(x=g(x)\)。
2. 使用 \(x_{n+1}=g(x_n)\) 進行迭代。
3. 若根附近滿足 \(|g'(x)| < 1\),則保證收斂。
3. 數值積分:估算面積 (Numerical Integration)
數值積分用於估算定積分 \(\int_a^b f(x) \, dx\) 的值,它代表曲線在 \(x=a\) 和 \(x=b\) 之間的面積。
A. 中點法 (Mid-Ordinate Rule)
中點法使用一系列矩形來近似曲線下的面積。與梯形法(使用條帶兩端的數值)不同,矩形條的長度是在條帶寬度的中點計算得出的。
中點法步驟
假設我們想用 \(n\) 個條帶估算 \(\int_a^b f(x) \, dx\)。
- 計算條帶寬度 (\(h\)): $$h = \frac{b - a}{n}$$
- 找出中點:
對每個條帶,找出其寬度的中點 x 座標。如果條帶範圍是從 \(x_0\) 到 \(x_n\),則中點為 \(m_1, m_2, \dots, m_n\)。
範例:如果第一個條帶從 \(x=2\) 到 \(x=4\),則中點 \(m_1\) 為 \(3\)。 - 套用公式:
面積為矩形面積之和:寬度 \(\times\) 高度。
$$Area \approx h \times [f(m_1) + f(m_2) + \dots + f(m_n)]$$
幾何解釋:此方法使用矩形近似。估算值是高估 (overestimate) 還是低估 (underestimate) 取決於曲線在區間內的彎曲方式(凹凸性),但因為中點兩側的誤差往往會相互抵消,它通常比簡單的梯形法更精確。
B. 辛普森法則 (Simpson's Rule)
辛普森法則通常是本課程要求中最準確的數值積分方法。它不使用直線或矩形,而是使用拋物線(二次函數)的線段來擬合兩兩一組的條帶上的曲線。
辛普森法則對縱座標(高度,\(y\))使用以下權重:
辛普森法則的核心要求
辛普森法則必須應用於偶數個條帶 (even number of strips, \(n\))。這意味著你需要有奇數個縱座標 (odd number of ordinates, \(y_0, y_1, \dots, y_n\))。
辛普森法則公式
對於 \(n\) 個條帶(\(n\) 為偶數)及條帶寬度 \(h = \frac{b - a}{n}\): $$\int_a^b f(x) \, dx \approx \frac{h}{3} [(y_0 + y_n) + 4(y_{odd}) + 2(y_{even})]$$
讓我們拆解這些組件:
- \((y_0 + y_n)\):首項與末項縱座標之和。
- \(4(y_{odd})\):奇數下標縱座標之和的四倍 (\(y_1 + y_3 + y_5 + \dots\))。
- \(2(y_{even})\):偶數下標縱座標之和的兩倍 (\(y_2 + y_4 + y_6 + \dots\))。(這裡不要包含 \(y_0\) 或 \(y_n\)!)
記憶口訣(辛普森係數):
乘數順序為:1, 4, 2, 4, 2, 4, 2, ..., 4, 1。
辛普森法則步驟
- 計算條帶寬度 (\(h\)): 確保 \(n\) 為偶數。\(h = \frac{b - a}{n}\)。
- 列出所有縱座標: 將對應的 \(x\) 值代入 \(f(x)\),計算出 \(y_0, y_1, y_2, \dots, y_n\)。
- 套用規律: 將首項與末項求和(係數為 1),奇數下標求和(係數為 4),內部偶數下標求和(係數為 2)。
- 乘法: 將總和乘以 \(\frac{h}{3}\)。
常見錯誤:務必檢查你是否使用偶數個條帶 (N)。如果題目要求 5 個縱座標,則 N=4(偶數個條帶),此時可以使用辛普森法則。如果題目要求 5 個條帶,則不能使用辛普森法則!
C. 改進估算值
數值積分(中點法、梯形法或辛普森法則)的準確度,通常可以透過增加條帶數量 (\(n\)) 來提升。
如果你將條帶數量加倍,\(h\) 就會減半,對曲線的逼近也會變得更加細緻,從而更接近真實面積。
我們使用矩形(中點法)或拋物線(辛普森法則)來逼近複雜區域。辛普森法則需要偶數個條帶,且在所學方法中精確度最高。