插值與函數逼近

分段線性插值(piecewise-linear interpolation)

穿過資料畫出曲線最簡單而誠實的方法,就是用直線把點連起來——這正是試算表折線圖所做的。分段線性插值正是如此:在每一對相鄰資料點之間,它畫出連接它們的直線段,整個插值就是所得的折線。

在 x_i 與 x_{i+1} 之間的區間上,值是顯然的線性混合 p(x) = y_i + (y_{i+1} - y_i) (x - x_i) / (x_{i+1} - x_i)。要在某查詢點 x 計算,你先找出它落在哪個區間(在排序好的節點中快速搜尋),再套用那一條公式。結果穿過每一個資料點且連續,但有轉角——斜率在每個節點處跳變,所以它不平滑(一階導數不連續)。它是樣條家族中的一次成員。它在節點之間的誤差也很清楚:界定在約 (h^2 / 8) 乘以 |f''| 的最大值,其中 h 是間距——所以把間距減半約使誤差變為四分之一(二階精度)。

它的優點是穩健與局部性:它絕不會像高次多項式那樣振盪或過衝(它停留在局部資料的範圍內),每一段只依賴兩個鄰居,而且建構與計算都極便宜。這正是為何它避開了龍格現象,也是為何它是繪圖、查表與圖學紋理取樣的預設選擇。誠實的代價是那些轉角與適中的精度:當你需要平滑的導數(用於物理、動畫或進一步微分)時,你會升級到三次樣條,它保留了局部性與穩健,卻又加上了平滑。

資料 (0, 0)、(2, 4)、(3, 1)。對 x = 1(在 [0, 2]):p = 0 + (4-0)(1-0)/(2-0) = 2。對 x = 2.5(在 [2, 3]):p = 4 + (1-4)(2.5-2)/(3-2) = 4 - 1.5 = 2.5。曲線是兩條直線段,在 (2, 4) 處以尖角相接。

連點成線:連續、穩健,但有轉角。

分段線性插值連續但「不」平滑——它的導數在每個節點處跳變。它也從不過衝,這正是它避開龍格現象的原因;代價是那些轉角與僅二階的精度。

又称
connect-the-dotslinear splinebroken-line interpolation折線插值線性樣條