Bilineární interpolace

Z testwiki
Verze z 20. 5. 2022, 09:36, kterou vytvořil imported>JAnDbot ({{Commonscat}}; kosmetické úpravy)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

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(R1)x2xx2x1f(Q11)+xx1x2x1f(Q21)kdeR1=(x,y1),

 

f(R2)x2xx2x1f(Q12)+xx1x2x1f(Q22)kdeR2=(x,y2).

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

f(P)y2yy2y1f(R1)+yy1y2y1f(R2).

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

f(x,y)f(Q11)(x2x1)(y2y1)(x2x)(y2y)+f(Q21)(x2x1)(y2y1)(xx1)(y2y)+f(Q12)(x2x1)(y2y1)(x2x)(yy1)+f(Q22)(x2x1)(y2y1)(xx1)(yy1).

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)(1x)(1y)+f(1,0)x(1y)+f(0,1)(1x)y+f(1,1)xy.

Nebo ekvivalentně, maticovými operacemi:

f(x,y)[1xx][f(0,0)f(0,1)f(1,0)f(1,1)][1yy]

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

(a1x+a2)(a3y+a4),

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

b1+b2x+b3y+b4xy

kde

b1=f(0,0)
b2=f(1,0)f(0,0)
b3=f(0,1)f(0,0)
b4=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 nebo y, ekvivalentně je-li x nebo 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

Šablona:Překlad

Související články

Externí odkazy

Šablona:Autoritní data