Takaisin pääsivulle


Interpolointi

Taulukoissa annetaan usein jonkin suureen arvot tasavälisessä pistejoukossa. Suureen arvo niiden välissä olevassa pisteessä saadaan interpoloimalla.

Lineaarinen interpolointi

Oletetaan, että taulukoidut arvot f0 ja f1 vastaavat ajanhetkiä t0 ja t1 = t0+h.

Arvo näiden välillä olevassa pisteessä t on silloin

f = f0 + (t - t0) / (t1 - t0) * (f1 - f0).

Tämä riittää, jos funktio muuttuu hyvin hitaasti tai jos ei tarvita suurta tarkkuutta

Neliöllinen interpolointi

Tarkempi neliöllinen interpolointi käyttää toisen asteen polynomia, joka kulkee kolmen peräkkäisen pisteen kautta.

Oletetaan, että aikoja t-1= t0-h, t0, t1 = t0+h vastaavat taulukoidut arvot ovat f-1, f0, f1.

Lasketaan ensin aikaerotuksen suhde taulukon askelpituuteen:

D = (t - t0) / h.

Funktion arvo f hetkellä t on silloin

f = f0 + (D / 2) (f1 - f-1) + (D / 2)2 (f1 - 2 f0 + f-1).

Tämä toimii varsin hyvin esimerkiksi taivaankappaleiden koordinaateille.

Esimerkki

Tiedosto sun.dat ilmoittaa Auringon koordinaatit vuodelle 2009. Sieltä löytyy rivit
 2009  3  1 22.80237  -7.6165 
 2009  3  2 22.86482  -7.2356 
 2009  3  3 22.92712  -6.8531 
Haluamme laskea deklinaation 2.3 kello 10.00 UTC.

Nyt

D = (10 - 0) / 24 = 0.4167,
f-1 = -7.6165,
f0 = -7.2356,
f1 = -6.8531,

ja

f = -7.2356 + (0.4167 / 2) (-6.8531 - (-7.6165)) + (0.4167 / 2)2 (-6.8531 + 2 * 7.2356 - 7.6165)
= -7.0765.