插值與函數逼近

插值誤差公式(interpolation error formula)

你用多項式穿過某函數的一些樣本,然後問:在點與點之間,我的曲線可能離真實多遠?插值誤差公式回答這個問題。它告訴你函數與插值多項式在任意點的差距,更關鍵的是,告訴你什麼使這個差距變大或變小。

若 p 是在 n + 1 個節點 x_0, ..., x_n 上插值平滑函數 f 的 n 次多項式,則對任意 x,存在某點 xi(位於包含這些節點與 x 的最小區間內),使得 f(x) - p(x) = f^(n+1)(xi) / (n+1)! 乘以節點乘積 (x - x_0)(x - x_1) ... (x - x_n)。看這三個部分:f 的 (n+1) 階導數衡量真實函數有多搖擺(高階導數巨大的函數難以插值);分母的階乘 (n+1)! 有幫助,隨著加點而縮小誤差;而節點多項式 (x - x_0)...(x - x_n) 衡量你離資料的「距離」——誤差在節點密集處小,在 x 遠離所有節點處大,這正是為何在資料範圍之外插值(外推)很危險。

這一條公式幾乎解釋了插值品質的一切。它說明為何誤差在等距格點兩端附近暴增(節點乘積在那裡最大)——這是龍格現象的種子——也說明為何「選擇」節點以最小化節點乘積會直接導向切比雪夫節點。誠實的難處:公式包含未知點 xi 與 f 的未知高階導數,所以它通常用來「界定」誤差(把 f^(n+1)(xi) 換成其最大值),而非精確計算誤差。而且它假設 f 真的平滑——對於有尖角或附近有極點的函數,加更多點未必有任何幫助。

在 x = 0, 1 用直線 p 插值 f(x) = e^x。x 處的誤差是 f''(xi)/2! 乘以 x(x-1) = e^xi/2 * x(x-1)。在 [0,1] 上,節點乘積 x(x-1) 的(絕對值)在 x = 0.5 處最大,值為 -0.25,而 e^xi 至多為 e,所以 |誤差| <= (e/2)(0.25) ~ 0.34——而那裡的真實差距確實約為 0.21。

誤差 = 高階導數除以階乘,再乘以離節點的距離。

加點並不總是減少誤差:它增大分母的 (n+1)!,但也可能放大 f^(n+1) 與節點乘積。對等距節點,後兩者在兩端附近勝出,所以誤差可能「發散」(龍格現象)。

又稱
polynomial interpolation errorremainder term插值餘項插值誤差項