三線性插值是在三維離散採樣數據的張量積網格上進行線性插值的方法。這個張量積網格可能在每一維度上都有任意不重疊的網格點,但並不是三角化的有限元分析網格。這種方法通過網格上數據點在局部的矩形稜柱上線性地近似計算點
的值。
三線性插值經常用於數值分析、數據分析以及計算機圖形學等領域。
- 三線性插值在一次
三維
(雙線性插值的維數為:
,線性插值:
)的參數空間中進行運算,這樣就需要
個與所需插值點相鄰的數據點。
- 三線性插值等同於三維張量的一階B樣條插值。
- 三線性插值運算是三個線性插值運算的張量積。
在一個步距為 1 的周期性立方網格上,取

為待計算點距離小於
,
的最大整數的差值,即,



,:
,:
是單位化後的值,所以其範圍是[0,1]。
本句話參考http://paulbourke.net/miscellaneous/interpolation/(頁面存檔備份,存於網際網路檔案館)
首先沿著
軸插值,得到:
![{\displaystyle i_{1}=v[\lfloor x\rfloor ,\lfloor y\rfloor ,\lfloor z\rfloor ]\times (1-z_{d})+v[\lfloor x\rfloor ,\lfloor y\rfloor ,\lceil z\rceil ]\times z_{d}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b1cdd97272b182db31c6d1af5269ef3667460815)
![{\displaystyle i_{2}=v[\lfloor x\rfloor ,\lceil y\rceil ,\lfloor z\rfloor ]\times (1-z_{d})+v[\lfloor x\rfloor ,\lceil y\rceil ,\lceil z\rceil ]\times z_{d}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2b661a25638a3d986b03c835e56a9dc9ec48b60b)
![{\displaystyle j_{1}=v[\lceil x\rceil ,\lfloor y\rfloor ,\lfloor z\rfloor ]\times (1-z_{d})+v[\lceil x\rceil ,\lfloor y\rfloor ,\lceil z\rceil ]\times z_{d}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5d1fb3f4fa9ed372c7c9c662263d1ec9b8f3399e)
![{\displaystyle j_{2}=v[\lceil x\rceil ,\lceil y\rceil ,\lfloor z\rfloor ]\times (1-z_{d})+v[\lceil x\rceil ,\lceil y\rceil ,\lceil z\rceil ]\times z_{d}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/58f432cf842b314ebde9e0bc18900ed2957ecffc)
然後,沿著
軸插值,得到:


最後,沿著
軸插值,得到:

這樣就得到該點的預測值。
三線性插值的結果與插值計算的順序沒有關係,也就是說,按照另外一種維數順序進行插值,例如沿著
、
、
順序插值將會得到同樣的結果。這也與張量積的交換律完全一致。