Interpolacija

Iz testwiki
Pojdi na navigacijo Pojdi na iskanje

Interpolácija je v matematiki približna vrednost funkcije znotraj obsega znanih nepovezanih vrednosti neodvisne spremenljivke. Imejmo na primer naslednjo tabelo vrednosti fukcije

𝐱𝐟(𝐱)112439416525

Vidimo, da lahko odvisnost f(x) prilegamo s funkcijo x². V splošnem pri interpolaciji ni tako. Radi bi vedeli vrednost funkcije f(x), ki odgovarja x = 1,7. Najenostavnejša je linearna interpolacija med vrednostmima za x = 1 in x = 2:

f(1,7)f(1)+1,7121(f(2)f(1))=1+0,7(41)=1+0,73=3,1.

Če je osnovna funkcija res x2, je prava rešitev seveda

f(1,7)=1,72=2,89

Na ta način po navadi interpolacija ni natančna. Zaradi tega lahko interpolacijo uporabimo kot učinkovit algoritmski postopek za 'ugibanje' številskih vrednosti, ki manjkajo, za spajanje točk v grafičnem prikazu, iskanje najboljšega prilega premic njihovim nagibom. V bistvu jo lahko uporabimo vsakokrat kadar želimo pretvoriti nezvezen niz podatkov v zvezno funkcijo.

Pri ekstrapolaciji za razliko iščemo vrednosti funkcije zunaj danega obsega znanih vrednosti. Moramo biti pazljivi, ker tukaj rezultati niso vedno smiselni.

Interpolacijski algoritmi

Pri iskanju ustreznega algoritma za interpolacijo vrednosti je potrebno upoštevati več stvari. Na primer kako dobro želimo prilagoditi funkcijo, koliko vrednosti želimo uporabiti za prilagajanje.

Interpolacijski postopki

Primerjajmo nekaj splošno uporabljanih interpolacijskih algoritmov, da dobimo vpogled kdaj je kakšen uporaben. V primerih bomo označili zaporedne vrednosti v ciljnem podatkovnem nizu kot v0,v1,v2,v3 in vrednost, ki jo interpoliramo kot x. Tako je naša funkcija

𝐱𝐟(𝐱)x1v0xv1x+1v2x+2v3

xf=xx

Primer linearne interpolacije

Najpreprostejši postopek je linearna interpolacija, v angleških virih tudi označen z navideznim akronimom lerp.

Imamo dve vrednosti v točkah v1 in v2. Potem določimo približni vrednosti z uteženo srednjo vrednostjo med dvema točkama, ki sta odvisni od vrednosti x. To nam da:

IV=v1(1xf)+v2(xf)

Ta algoritem je hiter in enostaven. Težava je, ker dobljena funkcija ni zvezno odvedljiva (oziroma ni odvedljiva pri x).

Primer interpolacije s kosinusom

Ta algoritem je malo obsežnejši od linearne interpolacije, vendar ne preveč.

Tukaj vzamemo dve vrednosti in z vrednostjo za x izračunamo kosinus na intervalu [0π], preslikamo v [xxi], kar se na koncu preslika v točki v1 in v2.

F=1cos(xfπ)2

IV=v1(1F)+v2F

To je le malo boljše od linearne interpolacije. Dobljena funkcija je sicer zvezno odvedljiva, toda odvedljivost je napovedljiva, ker je interpolacija še vedno linearna (odvod je v x zmeraj enak nič).

Primer kubične interpolacije

Kubični algoritem je primer polinomske interpolacije. Ker je število potrebnih koeficientov za izračun kubične funkcije le štiri, je to število členov v večini primerov dovolj.

Aproksimacijski polinom lahko zapišemo v obliki:

f(t)=at3+bt2+ct+d

kjer se f(t) preslika na točke

f(1)=v0=a+bc+d

f(0)=v1=d

f(1)=v2=a+b+c+d

f(2)=v3=8a+4b+2c+d

Sedaj enačbe rešimo za a,b,c in d, da dobimo:

a=16(v0+3v13v2+v3)

b=12(v02v1+v2)

c=16(2v03v1+6v2v3)

d=v1

Z zgornjimi koeficienti tvorimo polinom in ga izračunamo za izbrani x.

IV=axf3+bxf2+cxf+d

Čeprav moramo tukaj najprej izračunati koeficiente krivulje, je ta postopek veliko natančnejši od linearne interpolacije.

Interpolacija v višjih razsežnostih

Primerjava različnih postopkov interpolacije v eni (zgoraj) in dveh razsežnostih (spodaj): po metodi najbližjega soseda (levo), linearna (v sredini) in kubična (desno)

Večrazsežni interpolacijski postopki so posebej prilagojeni od interpolacije vzdolž številskih premic do interpolacije vzdolž ravnin, prostornin ali celo višjih razsežnosti polj numeričnih podatkov.

Dve razsežnosti

Zgodovina

Glej tudi

Predloga:Normativna kontrola