歡迎來到函數近似的世界!
在你以往的數學學習中,通常是先有一個公式,然後代入數值求座標。但如果你的情況剛好相反,手頭上只有一堆座標呢?在現實世界中——例如工程學或天氣預報——我們經常會遇到只有數據點,卻沒有連結這些點的公式的情況。
在本章中,我們將學習兩種巧妙的方法來「連點成線」,即建立一個能完美吻合數據的「多項式」。這樣,我們就能預測數據點之間的數值。別擔心,如果起初覺得這有點抽象是正常的;本質上,這只是一種找出「最佳擬合線」(恰好是一條曲線)的高級技巧!
1. 牛頓前向差分插值法 (Newton’s Forward Difference Interpolation)
當你的 x 值間距相等 時(例如 \(x = 1, 2, 3, 4...\)),牛頓法是一個非常強大的工具。它使用所謂的 差分表 (Difference Table) 來構建公式。
差分表:逐步教學
在使用公式之前,你需要先製作一個表格。假設你有一組 \(x\) 和 \(f(x)\) 的數值:
1. 在第一欄寫下 \(x\) 值,第二欄寫下 \(f(x)\) 值。
2. 一階差分 (\(\Delta\)): 用第二個 \(f(x)\) 減去第一個,第三個減去第二個,以此類推。將結果寫在新的欄位中。
3. 二階差分 (\(\Delta^2\)): 用「一階差分」欄位中的數字,重複同樣的減法步驟。
4. 繼續做下去,直到差分變成 常數(所有數字都相同)或數據用盡為止。
重點溫習: 符號 \(\Delta f(x)\) 其實就是一種 fancy 的說法,代表「函數的變化量」。計算方式如下:
\( \Delta f(x) = f(x+h) - f(x) \)
其中 \(h\) 是「步長」(\(x\) 值之間的間隔)。
常數差分的奧妙
你知道嗎? 如果二階差分全部相同,說明你的數據完美符合一個二次方程 (\(x^2\))。如果三階差分是常數,那就是三次方程 (\(x^3\))。這是一種用來「重構」隱藏多項式的絕佳方法!
使用公式
公式看起來可能很嚇人,但請記住:你的公式手冊裡就有! 你的任務只是從差分表的 頂行 選取正確的數值並代入即可。
公式使用變數 \(p\),代表你距離起始點在 \(x\) 軸上走了多遠:\(p = \frac{x - x_0}{h}\)。
常見錯誤: 在開始前,務必確認你的 \(x\) 值間距是否相等。如果不是(例如 \(x = 1, 2, 5, 10\)),牛頓法將無法使用,此時你必須改用 拉格朗日法 (Lagrange’s method)!
核心重點: 牛頓法是「等間隔」方法。如果 \(n\) 階差分為常數,你所求出的就是一個 \(n\) 次多項式。
2. 拉格朗日插值多項式 (Lagrange’s Interpolating Polynomial)
如果你的數據點散亂分佈怎麼辦?也許你在第 1 天、第 2 天測量了植物高度,然後忘了記錄,直到第 7 天才又測量。由於間隔不相等,牛頓表的做法會失效。這時候,拉格朗日形式 就能派上用場了。
運作原理:類比「加權」
你可以把拉格朗日法想像成 量身訂做的西裝。針對每一個數據點,我們都創造一個特定的數學「項」,當我們處於該數據點時,這個項是「開啟的」(等於該點的 \(y\) 值),而在我們列表中的任何其他數據點時,這個項則會「關閉」(等於零)。
如果你有 \(n + 1\) 個數據點,你可以創造一個 \(n\) 次的多項式。
範例:如果你有 3 個點,你可以做出一個二次多項式 (\(x^2\))。如果你有 4 個點,則可以做出三次多項式 (\(x^3\))。
公式結構
同樣地,公式在你的手冊裡。這裡有一個手動寫出公式而不搞混的「小撇步」:
對於每個點 \((x_i, y_i)\),該項看起來像是一個分數乘以 \(y_i\)。
1. 分子: 將 \((x - \text{所有其他 x 值})\) 全部相乘。
2. 分母: 將 \((\text{當前 x 值} - \text{所有其他 x 值})\) 全部相乘。
3. 結果: 將該分數乘以該點對應的 \(y\) 值。
鼓勵一下: 這涉及到大量的括號,看起來可能會很混亂!慢慢來,在紙上留出足夠的空間,並仔細核對你的減法運算。
以三個點中的第一個點 \((x_0, y_0)\) 為例的項:
\( L_0(x) = \frac{(x - x_1)(x - x_2)}{(x_0 - x_1)(x_0 - x_2)} \times y_0 \)
重點溫習:
• 牛頓法: 用於等間隔數據。使用差分表。
• 拉格朗日法: 用於任何間隔數據。使用「加權」公式。
核心重點: 拉格朗日是「萬用」方法。它適用於任何數據集,但如果點數很多,代數運算可能會變得非常「繁瑣」。
總結與致勝技巧
我該用哪種方法?
在考試中,題目可能會直接告訴你用哪種方法。如果沒說的話:
• 看看 \(x\) 值。它們是 \(0, 1, 2, 3\) 這種等間隔嗎?請用 牛頓法,計算快得多。
• 它們是 \(1, 2.5, 7, 8\) 這種雜亂間隔嗎?請用 拉格朗日法,這是你唯一的選擇!
記憶小撇步:L 代表 Lagrange,L 也代表 Loose(鬆散/非規律數據)
記住:Lagrange 是用於 Loose(鬆散且不嚴格間隔)的數據。牛頓法則是為了「數值 (Numerical)」順序(整齊間隔的數據)。
最後檢查:
• 你有把 \(y\) 值放入最後的多項式嗎?
• 你記得 \(n+1\) 個點意味著最高次方是 \(x^n\) 嗎?
• 如果你在做近似估算,答案合理嗎?如果你的 \(y\) 值在 10 到 20 之間,而你算出的答案是 500,回頭檢查一下正負號吧!
別擔心計算繁多。 只要多練習製作差分表和設定拉格朗日分數,你會越來越得心應手。你可以做到的!