Bilineární interpolace

V matematice je bilineární interpolace rozšíření lineární interpolace pro interpolaci funkce dvou proměnných na pravidelnou prostorovou mřížku. Klíčová myšlenka je provést lineární interpolaci nejprve v jednom směru a pak i ve druhém směru.

Čtyři červené tečky ukazují datové body a zelená tečka je bod který chceme interpolovat.
Například bilineární interpolace na jednotkovém čtverci se z-hodnotami 0, 1, 1 a 0.5 jako signalizace. Interpolační hodnoty uprostřed jsou reprezentovány barvami.

Předpokládejme, že chceme najít hodnotu neznámé funkce f v bodě P = (x, y). Předpokladem je, že známe hodnotu f ve čtyřech bodech Q11 = (x1y1), Q12 = (x1y2), Q21 = (x2y1), a Q22 = (x2y2).

Nejprve provedeme lineární interpolaci v x-ovém směru. To znamená:

f ( R 1 ) x 2 x x 2 x 1 f ( Q 11 ) + x x 1 x 2 x 1 f ( Q 21 ) kde R 1 = ( x , y 1 ) , {\displaystyle f(R_{1})\approx {\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{11})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{21})\quad {\mbox{kde}}\quad R_{1}=(x,y_{1}),}

 

f ( R 2 ) x 2 x x 2 x 1 f ( Q 12 ) + x x 1 x 2 x 1 f ( Q 22 ) kde R 2 = ( x , y 2 ) . {\displaystyle f(R_{2})\approx {\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{12})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{22})\quad {\mbox{kde}}\quad R_{2}=(x,y_{2}).}

A teď budeme pokračovat v y-ovém směru.

f ( P ) y 2 y y 2 y 1 f ( R 1 ) + y y 1 y 2 y 1 f ( R 2 ) . {\displaystyle f(P)\approx {\frac {y_{2}-y}{y_{2}-y_{1}}}f(R_{1})+{\frac {y-y_{1}}{y_{2}-y_{1}}}f(R_{2}).}

Nyní máme požadovaný odhad f(x, y).

f ( x , y ) f ( Q 11 ) ( x 2 x 1 ) ( y 2 y 1 ) ( x 2 x ) ( y 2 y ) + f ( Q 21 ) ( x 2 x 1 ) ( y 2 y 1 ) ( x x 1 ) ( y 2 y ) + f ( Q 12 ) ( x 2 x 1 ) ( y 2 y 1 ) ( x 2 x ) ( y y 1 ) + f ( Q 22 ) ( x 2 x 1 ) ( y 2 y 1 ) ( x x 1 ) ( y y 1 ) . {\displaystyle {\begin{aligned}f(x,y)&\approx {\frac {f(Q_{11})}{(x_{2}-x_{1})(y_{2}-y_{1})}}(x_{2}-x)(y_{2}-y)\\&+{\frac {f(Q_{21})}{(x_{2}-x_{1})(y_{2}-y_{1})}}(x-x_{1})(y_{2}-y)\\&+{\frac {f(Q_{12})}{(x_{2}-x_{1})(y_{2}-y_{1})}}(x_{2}-x)(y-y_{1})\\&+{\frac {f(Q_{22})}{(x_{2}-x_{1})(y_{2}-y_{1})}}(x-x_{1})(y-y_{1}).\end{aligned}}}

Pokud si vybereme souřadící systém se čtyřmi body, kde funkce f je zadána body (0, 0), (0, 1), (1, 0), a (1, 1), pak se vzorec zjednoduší:

f ( x , y ) f ( 0 , 0 ) ( 1 x ) ( 1 y ) + f ( 1 , 0 ) x ( 1 y ) + f ( 0 , 1 ) ( 1 x ) y + f ( 1 , 1 ) x y . {\displaystyle f(x,y)\approx f(0,0)\,(1-x)(1-y)+f(1,0)\,x(1-y)+f(0,1)\,(1-x)y+f(1,1)xy.}

Nebo ekvivalentně, maticovými operacemi:

f ( x , y ) [ 1 x x ] [ f ( 0 , 0 ) f ( 0 , 1 ) f ( 1 , 0 ) f ( 1 , 1 ) ] [ 1 y y ] {\displaystyle f(x,y)\approx {\begin{bmatrix}1-x&x\end{bmatrix}}{\begin{bmatrix}f(0,0)&f(0,1)\\f(1,0)&f(1,1)\end{bmatrix}}{\begin{bmatrix}1-y\\y\end{bmatrix}}}

Oproti tomu, co říká název, interpolace není lineární. Místo toho je její vzorec

( a 1 x + a 2 ) ( a 3 y + a 4 ) , {\displaystyle (a_{1}x+a_{2})(a_{3}y+a_{4}),\,}

takže je součinem dvou lineárních funkcí. Stejně tak lze interpolaci zapsat jako

b 1 + b 2 x + b 3 y + b 4 x y {\displaystyle b_{1}+b_{2}x+b_{3}y+b_{4}xy\,}

kde

b 1 = f ( 0 , 0 ) {\displaystyle b_{1}=f(0,0)\,}
b 2 = f ( 1 , 0 ) f ( 0 , 0 ) {\displaystyle b_{2}=f(1,0)-f(0,0)\,}
b 3 = f ( 0 , 1 ) f ( 0 , 0 ) {\displaystyle b_{3}=f(0,1)-f(0,0)\,}
b 4 = f ( 0 , 0 ) f ( 1 , 0 ) f ( 0 , 1 ) + f ( 1 , 1 ) {\displaystyle b_{4}=f(0,0)-f(1,0)-f(0,1)+f(1,1)\,} .

V obou případech počet konstant (čtyři) odpovídá počtu daných bodů, které funkce f udává. Interpolace je lineární podle přímky, která je rovnoběžná buď se směrem x {\displaystyle x} nebo y {\displaystyle y} , ekvivalentně je-li x {\displaystyle x} nebo y {\displaystyle y} nastaveno konstantně. Rovnoběžně s další přímkou je interpolace kvadratická.

Výsledek bilineární interpolace je nezávislý na pořadí interpolací. Kdybychom nejprve provedli lineární interpolaci na ose y a pak v x-ovém směru, výsledná aproximace bude stejná.

Zřejmým rozšířením bilineární interpolace je trojrozměrná interpolace – trilineární interpolace.

Reference

V tomto článku byl použit překlad textu z článku Bilinear interpolation na anglické Wikipedii.

Související články

Externí odkazy


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Bilineární_interpolace
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.