Trilineární interpolace je metoda vícerozměrná interpolace na 3 dimenzionální pravidelná mřížka. Přibližuje hodnotu funkce v mezilehlém bodě
v místním axiálním obdélníku hranol lineárně pomocí funkčních dat na mřížových bodech. Pro svévolné, nestrukturovaná síť (jak se používá v konečný element analýza), musí být použity jiné metody interpolace; pokud jsou všechny prvky sítě čtyřstěn (3D jednoduchosti ), pak barycentrické souřadnice poskytnout přímý postup.
Trilineární interpolace se často používá v numerická analýza, analýza dat, a počítačová grafika.
Ve srovnání s lineární a bilineární interpolací
Trilineární interpolace je rozšířením lineární interpolace, která působí v prostorách s dimenze
, a bilineární interpolace, který pracuje s dimenzí
, do dimenze
. Všechna tato interpolační schémata používají polynomy řádu 1, což dává přesnost řádu 2, a to vyžaduje
sousední předdefinované hodnoty obklopující interpolační bod. Existuje několik způsobů, jak dospět k trilineární interpolaci, která je ekvivalentní trojrozměrné tenzor B-spline interpolace řádu 1 a trilineární interpolační operátor je také tenzorovým součinem 3 lineárních interpolačních operátorů.
Metoda
Osm rohových bodů na krychli obklopujících interpolační bod C.
Zobrazení 3D interpolace
Geometrická vizualizace trilineární interpolace. Součin hodnoty v požadovaném bodě a celého objemu se rovná součtu součinů hodnoty v každém rohu a částečného objemu úhlopříčně naproti rohu.
Na periodické a kubické mřížce, nechť
,
, a
být rozdíly mezi každou z
,
,
a menší souřadnice související, to je:

kde
označuje mřížkový bod níže
, a
označuje výše uvedený mřížkový bod
a podobně pro
a
.
Nejprve spolu interpolujeme
(představte si, že „tlačíme“ na tvář krychle definovanou znakem
na protilehlou tvář, definovanou
), dávat:

Kde
znamená hodnotu funkce
Pak tyto hodnoty interpolujeme (spolu
„tlačí“ z
na
), dávat:

Nakonec tyto hodnoty interpolujeme
(procházení linií):

To nám dává předpokládanou hodnotu bodu.
Výsledek trilineární interpolace je nezávislý na pořadí kroků interpolace podél tří os: jakýkoli jiný řád, například podél
, pak spolu
a nakonec spolu
, produkuje stejnou hodnotu.
Výše uvedené operace lze vizualizovat takto: Nejprve najdeme osm rohů krychle, které obklopují náš bod zájmu. Tyto rohy mají hodnoty
,
,
,
,
,
,
,
.
Dále provedeme lineární interpolaci mezi
a
najít
,
a
najít
,
a
najít
,
a
najít
.
Nyní provádíme interpolaci mezi
a
najít
,
a
najít
. Nakonec vypočítáme hodnotu
lineární interpolací
a 
V praxi je trilineární interpolace identická se dvěma bilineární interpolace v kombinaci s lineární interpolací:

Alternativní algoritmus
Alternativním způsobem, jak napsat řešení problému s interpolací, je

kde jsou koeficienty nalezeny řešením lineárního systému

přináší výsledek
![{ displaystyle { begin {aligned} a_ {0} = {} & { frac {-c_ {000} x_ {1} y_ {1} z_ {1} + c_ {001} x_ {1} y_ {1 } z_ {0} + c_ {010} x_ {1} y_ {0} z_ {1} -c_ {011} x_ {1} y_ {0} z_ {0}} {(x_ {0} -x_ {1 }) (y_ {0} -y_ {1}) (z_ {0} -z_ {1})}} + {} & { frac {c_ {100} x_ {0} y_ {1} z_ { 1} -c_ {101} x_ {0} y_ {1} z_ {0} -c_ {110} x_ {0} y_ {0} z_ {1} + c_ {111} x_ {0} y_ {0} z_ {0}} {(x_ {0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} -z_ {1})}}, [4pt] a_ {1} = {} & { frac {c_ {000} y_ {1} z_ {1} -c_ {001} y_ {1} z_ {0} -c_ {010} y_ {0} z_ {1} + c_ {011 } y_ {0} z_ {0}} {(x_ {0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} -z_ {1})}} + {} & { frac {-c_ {100} y_ {1} z_ {1} + c_ {101} y_ {1} z_ {0} + c_ {110} y_ {0} z_ {1} -c_ {111} y_ {0} z_ {0}} {(x_ {0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} -z_ {1})}}, [4 b. ] a_ {2} = {} & { frac {c_ {000} x_ {1} z_ {1} -c_ {001} x_ {1} z_ {0} -c_ {010} x_ {1} z_ {1 } + c_ {011} x_ {1} z_ {0}} {(x_ {0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} -z_ {1})} } + {} & { frac {-c_ {100} x_ {0} z_ {1} + c_ {101} x_ {0} z_ {0} + c_ {110} x_ {0} z_ {1} -c_ {111} x_ {0} z_ {0}} {(x_ {0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} -z_ {1})}} , [4pt] a_ {3} = {} & { frac {c_ {000} x_ {1} y_ {1} -c_ {001} x_ {1} y_ {1} -c_ {010} x_ { 1} y_ {0} + c_ {011} x_ {1} y_ {0}} {(x_ {0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} -z_ {1})}} + {} & { frac {-c_ {100} x_ {0} y_ {1} + c_ {101} x_ {0} y_ {1} + c_ {110} x_ {0 } y_ {0} -c_ {111} x_ {0} y_ {0}} {(x_ {0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} -z_ { 1})}}, [4pt] a_ {4} = {} & { frac {-c_ {000} z_ {1} + c_ {001} z_ {0} + c_ {010} z_ {1} -c_ {011} z_ {0} + c_ {100} z_ {1} -c_ {101} z_ {0} -c_ {110} z_ {1} + c_ {111} z_ {0}} {(x_ { 0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} -z_ {1})}}, [4pt] a_ {5} = & { frac {-c_ {000} y_ {1} + c_ {001} y_ {1} + c_ {010} y_ {0} -c_ {011} y_ {0} + c_ {100} y_ {1} -c_ {101} y_ { 1} -c_ {110} y_ {0} + c_ {111} y_ {0}} {(x_ {0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} - z_ {1})}}, [4pt] a_ {6} = {} & { frac {-c_ {000} x_ {1} + c_ {001} x_ {1} + c_ {010} x_ { 1} -c_ {011} x_ {1} + c_ {100} x_ {0} -c_ {101} x_ {0} -c_ {110} x_ {0} + c_ {111} x_ {0}} {( x_ {0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} -z_ {1})}}, [4pt] a_ {7} = {} & { frac {c_ {000} -c_ {001} -c_ {010} + c_ {011} -c_ {100} + c_ {101} + c_ {110} -c_ {111}} {(x_ {0} -x_ {1}) (y_ {0} -y_ {1}) (z_ {0} -z_ {1})}}. End {zarovnáno}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2017eb73468e519de26c930bdde4137584100afb)
Viz také
externí odkazy
- pseudokód od NASA, popisuje iterační inverzní trilineární interpolaci (vzhledem k vrcholům a hodnotě C find Xd, Yd a Zd).
- Paul Bourke, Interpolační metody, 1999. Obsahuje velmi chytrou a jednoduchou metodu k nalezení trilineární interpolace, která je založena na binární logice a lze ji rozšířit na jakoukoli dimenzi (Tetralineární, Pentalineární, ...).
- Kenwright, volná forma čtyřstěnné deformace. Mezinárodní sympozium o vizuálních počítačích. Springer International Publishing, 2015 [1].