插值與函數逼近

重心拉格朗日公式(barycentric Lagrange formula)

/ bar-ee-SEN-trik /

拉格朗日插值在理論上優雅,但樸素版本在算術上又慢又不穩。重心公式是「同一個」插值多項式的巧妙改寫,保留拉格朗日的直接性,同時變得快速、穩定、且能在許多點上輕鬆重複計算。這是實務者真正使用的形式。

想法是一次性預先算出每個節點的重心「權重」w_i = 1 / (對所有 j 不等於 i 的 (x_i - x_j) 之乘積)。接著插值多項式以一個出奇簡單的比值計算:p(x) = [ sum_i w_i y_i / (x - x_i) ] / [ sum_i w_i / (x - x_i) ]。分子與分母都是快速的求和;算權重是一次性的 O(n^2) 成本,之後每次計算 p(x) 只需 O(n)。「加入」新資料點只需把每個舊權重乘上一個因式並算一個新權重——很便宜,不像重建樸素的拉格朗日基底。底下這個「單位分割」技巧(分母)正是使它數值穩定的原因,遠比解范德蒙方程組來得乖巧。

這個公式在好節點下最為耀眼:對切比雪夫節點,權重塌縮成封閉形式(只是交替的 +/-1,兩個端點權重減半),於是你完全跳過 O(n^2) 的設定,插值同時變得穩定又在精度上近乎最優。這個組合——切比雪夫節點加上重心公式——是現代多項式插值與 Chebfun 等工具的骨幹。一個誠實的陷阱:若你恰好「在」某節點上計算,項 (x - x_i) 為零,公式會除以零——程式必須特判「x 等於某節點」並直接回傳 y_i。

節點 0、1、2:權重 w_0 = 1/((0-1)(0-2)) = 0.5、w_1 = 1/((1-0)(1-2)) = -1、w_2 = 1/((2-0)(2-1)) = 0.5。以 y = (1, 3, 2),在 x = 0.5 計算:分子 = 0.5*1/0.5 + (-1)*3/(-0.5) + 0.5*2/(-1.5) = 1 + 6 - 0.667;分母 = 0.5/0.5 - 1/(-0.5) + 0.5/(-1.5) = 1 + 2 - 0.333;比值 = 6.333/2.667 ~ 2.375。

權重只算一次;之後每次計算都是快速的求和比值。

當心奇異點:若 x 恰好等於某節點 x_i,兩個求和都會除以零。正確的實作會檢測此情形並回傳 y_i。否則,第二重心形式是最穩定的插值方式之一。

又称
barycentric interpolationsecond barycentric form重心插值公式重心形式