標籤:
轉自:http://www.cnblogs.com/yingying0907/archive/2012/11/21/2780092.html
內插是數學領域數值分析中的通過已知的離散資料求未知資料的過程或方法。
根據若干離散的資料資料,得到一個連續的函數(也就是曲線)或者更密碼編譯集的離散方程與已知資料相吻合。這個過程叫做擬合。內插是曲線必須通過已知點的擬合。
1.線性插值
已知座標 (x0, y0) 與 (x1, y1),要得到 [x0, x1] 區間內某一位置 x 在直線上的值。
由於 x 值已知,所以可以從公式得到 y 的值
已知 y 求 x 的過程與以上過程相同,只是 x 與 y 要進行交換。
例如,
原來的數值序列:0,10,20,30,40
線性插值一次為:0,5,10,15,20,25,30,35,40
即認為其變化(增減)是線形的,可以在座標圖上畫出一條直線 。
線性插值經常用於補充表格中的間隔部分。
兩值之間的線性插值基本運算在電腦圖形學中的應用非常普遍,以至於在電腦圖形學領域的行話中人們將它稱為 lerp。所有當今電腦圖形處理器的硬體中都整合了線性插值運算,並且經常用來組成更為複雜的運算:例如,可以通過三步線性插值完成一次雙線性插值運算。由於這種運算成本較低,所以對於沒有足夠數量條目的光滑函數來說,它是實現精確快速尋找表的一種非常好的方法。
在一些要求較高的場合,線性插值經常無法滿足要求。在這種場合,可以使用多項式插值或者樣條插值來代替。
線性插值可以擴充到有兩個變數的函數的雙線性插值。雙線性插值經常作為一種粗略的抗混疊濾波器使用,三線性插值用於三個變數的函數的插值。線性插值的其它擴充形勢可以用於三角形與四面體等其它類型的網格運算。
2.雙線性插值
在地球物理中,會經常用到雙線性插值(Bilinear interpolation)。比如,類比產生的地表均勻網格上的速度場或者同震位移場。要與GPS觀測點上的觀測同震位移場進行比較。就必須將均勻網格點的值插值到GPS太站上。這就需要用到雙線性插值。
雙線性插值。
In mathematics, bilinear interpolation is an extension of linear interpolation for interpolating functions of two variables(e.g, x andy) on a regular grid. The interpolated function should not use the term of x2 or y2, but xy, which is the bilinear form of x and y.
其核心思想是在兩個方向分別進行一次線性插值。
Thekey idea is to perform linear interpolation first in one direction, and then again in the other direction.Although each step is linear in the sampled values and in the position, the interpolation as a whole is not linear but rather quadratic in the sample location (details below).
紅色的資料點與待插值得到的綠色點
假如我們想得到未知函數 f 在點 P = (x, y) 的值,假設我們已知函數 f 在 Q11 = (x1, y1)、Q12 = (x1, y2), Q21 = (x2, y1) 以及 Q22 = (x2, y2) 四個點的值。
首先在 x 方向進行線性插值,得到
然後在 y 方向進行線性插值,得到
這樣就得到所要的結果 f(x, y),
如果選擇一個座標系統使得 f 的四個已知點座標分別為 (0, 0)、(0, 1)、(1, 0) 和 (1, 1),那麼插值公式就可以化簡為
或者用矩陣運算表示為
與這種插值方法名稱不同的是,這種插值方法並不是線性,它的形式是
它是兩個線性函數的乘積。看到了吧,雙線性插值並不是線性。
Contrary to what the name suggests, the bilinear interpolant is not linear
另外,插值也可以表示為
對於單位正方形,
在這兩種情況下,常數的數目都對應於給定的 f 的資料點數目。
線性插值的結果與插值的順序無關。首先進行 y 方向的插值,然後進行 x 方向的插值,所得到的結果是一樣的。
雙線性插值的一個顯然的三維空間延伸是三線性插值。
3.三線性插值
三線性插值是在三維離散採樣資料的張量積網格上進行線性插值的方法。這個張量積網格可能在每一維度上都有任意不重疊的網格點,但並不是三角化的有限元分析網格。這種方法通過網格上資料點在局部的矩形稜柱上線性地近似計算點 (x,y,z) 的值。
- 三線性插值在一次n=1三維D=3(雙線性插值的維數:D=2,線性插值:D=1)的參數空間中進行運算,這樣需要(1 + n)D = 8個與所需插值點相鄰的資料點。
- 三線性插值等同於三維張量的一階B樣條插值。
- 三線性插值運算是三個線性插值運算的張量積。
執行個體
在一個步距為1的周期性立方網格上,取xd,yd,zd 為待計算點,距離小於 x,y,z, 的最大整數的差值,即,
首先沿著z軸插值,得到:
然後,沿著y軸插值,得到:
w1 = i1(1 − yd) + i2yd
w2 = j1(1 − yd) + j2yd
最後,沿著x軸插值,得到:
IV = w1(1 − xd) + w2xd
這樣就得到該點的預測值。
三線性插值的結果與插值計算的順序沒有關係,也就是說,按照另外一種維數順序進行插值,例如沿著 x、 y、Z 軸順序插值將會得到同樣的結果。這也與張量積的交換律完全一致。
參考連結:線性插值法,雙線性插值,三線性插值
[轉]線性插值&雙線性插值&三線性插值