Lineaarinen interpolaatio

Lineaarinen interpolaatio on matematiikassa approksimaatiomenetelmä, jossa sovituskäyrinä käytetään lineaarisia polynomeja eli suoria. Lineaarisella interpolaatiolla halutaan yleensä laskea tunnettujen pisteiden välistä puuttuvia pisteitä, mutta sitä käytetään myös täydentämään taulukkoarvojen välistä puuttuvia arvoja. Toisinaan halutaan määrittää lineaarisen funktion lauseke tai sitä kuvaava suoran yhtälö (interpolaatiosuora tai myös interpolantti), jolla interpolaation voi suorittaa. Joskus vain lasketaan lineaarinen funktio, jolla approksimoidaan mutkikkaampaa funktiota. == Kahden pisteen välinen interpolointi == Jos ilmiöstä tunnetaan vain kaksi havaintopistettä (x_0,y_0) ja (x_1,y_1), voidaan pisteitä yhdistävältä suoralta määrittää mikä tahansa piste (x,y) interpoloimalla. Tarvittavan suoran yhtälö määritetään seuraavasti. Kollineaariset pisteet muodostavat samansuuruiset erotusosamäärät eli suoran kulmakertoimet :\frac{y-y_0}{x-x_0}=\frac{y_1-y_0}{x_1-x_0}. Ratkaisemalla yhtälöstä muuttuja y, joka saadaan kohdassa x, tulee yhtälöstä :y=y_0+\frac{y_1-y_0}{x_1-x_0}(x-x_0). Tällä voidaan interpoloida minkä tahansa välillä [x_0,x_1] olevan x-kohdan y-koordinaatin arvo. Jos liikutaan välin ulkopuolella, voidaan samalla yhtälöllä suorittaa lineaarisen ekstrapoloinnin. Yhtälö voidaan myös kirjoittaa siten, että kertoimet \scriptstyle \frac{x-x_0}{x_1-x_0} ja \scriptstyle \frac{x-x_1}{x_1-x_0} ovat painotetun aritmeettisen keskiarvon painokertoimia, jotka voidaan tulkita olevan interpoloitavan pisteen etäisyyksiä välin päätepisteistä. Tämä yhtälö kirjoitetaan silloin muodossa :y=y_0\frac{x-x_1}{x_1-x_0} + y_1\frac{x-x_0}{x_1-x_0} eli :y=y_0L_0(x) + y_1L_1(x), missä painot L_i(x) ovat Lagrangen kertojapolynomit. === Virhe === Jos y-koordinaatit ovat tunnetun funktion arvoja y=f(x) ja jos funktiolla on toinen derivaatta olemassa, voidaan funktion interpoloinnissa tehtyä maksimivirhettä arvioida lausekkeella :\sigma (x)=\tfrac{1}{2}(x-x_0)(x-x_1)f(t). Luku t on jokin välin [x_0,x_1] luku, jolla virhe suurenee maksimiarvoonsa. Toinen tapa arvioida virhettä on laskea funktion ja interpolantin välinen erotus :\sigma (x)= f(x)-P_1(x)=f(x)-[y_0+\frac{y_1-y_0}{x_1-x_0}(x-x_0)] ja tutkia sen suuruus suljetun välin [x_0,x_1] ääriarvotehtävänä. == Usean pisteen lineaarinen interpolointi == Jos tarvitaan interpolointi, joka ulottuu usean pisteen (x_0,y_0),(x_1,y_1),\dots,(x_n,y_n) yhteiselle alueelle [x_0,x_n], voidaan interpolaatio suorittaa kullekin perättäisen pisteparin välille kahden pisteen välisenä interpolointina. Saadut interpolaation arvot muodostavat jatkuvan käyrän, joka kulkee kaikkien pisteiden kautta, mutta käyrä ei ole derivoituva tunnetuissa pisteissään. Se ei ole sileä, mutta se on jatkuva (merkitään \mathbb{C}^0). Funktiota, joka määritellään kullekin välille erikseen, kutsutaan paloittaiseksi funktioksi. == Sovelluksia == Lineaarisen interpoloinnin varhainen käyttö liittyi taulukkoarvojen välistä puuttuvien lukujen laskemiseen. Kahden taulukkoarvon välisiä arvoja interpoloidaan ja taulukkoarvojen ulkopuolisia arvoja ekstrapoloidaan. Jos esimerkiksi funktion laskeminen on työlästä, funktiota ei voi jollakin välillä laskea, funktion lauseketta ei kaikkialla tunneta, funktion nollakohtaa ei pystytä laskemaan, funktiota ei pystytä suoraan derivoimaan tai integroimaan, niin approksimoimalla funktio interpolaatiosuoralla tai -käyrällä voidaan erilaiset vaikeudet sivuttaa. Esimerkiksi funktion nollakohdan laskeminen saattaa alkuperäisen lausekkeen avulla olla algebrallisesti mahdotonta, mutta korvaamalla funktion lauseke hetkeksi suoralla, voidaan arvio nollakohdasta määrittää nopeasti. Tähän ajatukseen perustuvat esimerkiksi Newtonin menetelmä ja sekanttimenetelmä, jotka hakevat nollakohtaa interpoloimalla tai ekstrapoloimalla approksimoitavaa suoraa. Määrätyn integraalin määritys funktiolle, jonka lausekkeen integrointi on vaikeaa ja josta tunnetaan vain pisteitä, voidaan tehdä puolisuunnikassäännöllä. Siinä funktio korvataan funktiota seuraavalla murtoviivalla, jota on helppo integoida. == Menetelmän kehittäminen == === Tarkkuus === Mikäli lineaarisuus aiheuttaa liikaa virhettä tai pisteissä oleva derivoituvuuden puute on hankalaa, voidaan suorat korvata korkeamman asteen polynomeilla kuten esimerkiksi kuutiosplineillä. === Useat ulottuvuudet === Lineaarista interpolatiota käytetään yleisesti myös kaksi- ja kolmeulotteisissa tapauksissa. Mikään ei estä käyttämästä sitä myös useampiulotteisissa tilanteissa. Kaksiulotteisena sitä kutsutaan bilineaariseksi interpolaatioksi ja kolmiulotteisena trilineaariseksi interpolaatioksi. Kaksiulotteisessa interpolaatiossa voidaan annettujen kolmen pisteen muodostaman kolmion sisäosa interpoloida, jolloin arvot muodostavat lineaarikombinaationa tasomaisen arvojoukon. Joskus alue jaetaan suorakulmaiseen hilaan, jolloin interpoloidaan neljää pistettä ja lineaarikombinaatio antaa paraboloidimaisen arvojoukon. Tällä menetelmällä voidaan luoda esimerkiksi maaston mittauspisteiden korkeusarvoista kumpuileva kolmiulotteinen kartta. === Splinit === Vaihtamalla lineaariset suorat mutkitteleviin käyriin, saadaan menetelmän tarkkuutta ja soveltuvuutta parannettua. Eräs tunnettu käyräjoukko muodostuu erityyppisistä splineistä. Myös korkeampiasteisia polynomeja käytetään yleisesti. == Historia == Muinaisesta Babyloniasta, ja erityisesti nuolenpääkirjoituksissa Urukista ja Babylonista (noin 300 eaa.), tunnetaan esimerkkejä lineaarisen interpolaation käytöstä. Interpolaatiota käytettiin pääasiassa astronomisten kalentereiden havaintoluetteloiden tihentämisessä. Sään takia puuttuvia mittaushavaintoja luotiin puuttuville päiville interpoloimalla ne viereisistä mitatuista arvoista. Niillä myös ekstrapoloitiin eli ennustettiin taivaan tapahtumia taulukoiden pohjalta. Muinaisten kreikkalaisten kirjoituksissa löytyy esimerkkejä interpoloinnista. Hipparkhos (noin 100 eaa.) käytti sitä laskiessaan trigonometrisiä taulukoita ympyrän jänteiden pituuksista. Myös Ptolemaios käytti interpolaatiota yrittäessään helpottaa raskaita laskutehtäviään muun muassa kirjassaan Almagest (100 jaa.). Kiinassa ja Intiassa oli jo käytössä toisen asteen interpolaatiomenetelmiä 600- ja 800-luvuilla jaa. Ennen niiden käyttöönottoa oli ilmeisesti ollut käytössä lineaarisia interpolointimenetelmiä. == Lähteet == * === Viitteet === == Aiheesta muualla == * Laskuri: Linear interpolation * Karttunen, Hannu: Interpolointi * Lähteenmäki, Matti: Interpolointi, TamK Luokka:Interpolointi