Polynominen interpolaatio

Polynominen interpolaatio eli polynomi-interpolaatio on matematiikassa approksimaatiomenetelmä, jossa sovituskäyrinä käytetään polynomeja. Polynomisella interpolaatiolla halutaan yleensä laskea tunnettujen pisteiden välistä puuttuvia pisteitä tai sovittamaan pisteiden väleihin sileä ja jatkuva käyrä. Toisinaan sovitetaan mutkikkaalle funktiolle helpommin laskettava polynomi, jolla funktion arvot voidaan approksimoida nopeasti.[1][2][3]

Polynominen interpolaatio on tehokas menetelmä, jos interpoloitavia pisteitä on vähän. Suuri pistejoukko vaatii polynomin, jolla on korkea asteluku ja sellainen polynomi heilahtelee paljon. Alemmilla asteluvuilla heilahtelua on vain vähän ja sen laskeminen on helppoa. Interpoloitava pistejoukko jaetaankin ryhmiin, joihin sovitetaan erilaisia matala-asteisia polynomeja. Silloin eri polynomien yhtymiskohdissa käyrä on jatkuva, mutta sen derivoituvuus puuttuu. Tätä varten voidaan sovitusalgoritmiin lisätä derivoituvuusehtoja, jolloin käyristä tulee jokaisessa kohdassa sileä. On kehitelty monia menetelmiä, jotka sopivat eri tilanteisiin paremmin ja erilaisia polynomiluokkia, jotka täyttävät kulloinkin vaaditut ominaisuudet.[4][5]

Jotta polynomin kuvaaja kulkisi kaikkien annettujen pisteiden kautta, tulisi polynomin asteluku olla yhtä pienempi kuin pisteiden lukumäärä. Silloinkin, jos pisteitä sijaitsee päällekkäin tai ne ovat esimerkiksi kollineaarisia, tullaan toimeen alemmallakin asteluvulla. Kun kertoimien laskentamenetelmä on valittu, on saatu interpolaatiopolynomi yksikäsitteinen.[4]

Ensimmäisen asteen polynomi

Lineaarinen interpolaatio toteutetaan joko sovittamalla suoran yhtälö kahden pisteen välille tai luomalla Lagrangen polynomi kahdelle pisteelle. Kun kaksi pistettä merkitään ( x 0 , y 0 ) {\displaystyle (x_{0},y_{0})} ja ( x 1 , y 1 ) {\displaystyle (x_{1},y_{1})} ja y-koordinaateilla tarkoitetaan funktion y = f ( x ) {\displaystyle y=f(x)} arvoja, voidaan suoran yhtälöllä muodostaa ensimmäisen asteen polynomi [6]

f ( x ) y 1 y 0 x 1 x 0 ( x x 0 ) + y 0 . {\displaystyle f(x)\approx {\frac {y_{1}-y_{0}}{x_{1}-x_{0}}}(x-x_{0})+y_{0}.} [1][6]

Toinen tapa muodostaa kahden pisteen kautta kulkeva polynomi on luoda lausekkeet, jotka saavat arvon nolla toisen pisteen sijoituksesta ja oman y-koordinaatin omassa kohdassa. Silloin

y 0 x x 1 x 0 x 1 {\displaystyle y_{0}{\frac {x-x_{1}}{x_{0}-x_{1}}}} on nolla sijoituksella x 1 {\displaystyle x_{1}} ja y 0 {\displaystyle y_{0}} sijoituksella x 0 {\displaystyle x_{0}}

ja

y 1 x 0 x x 0 x 1 {\displaystyle y_{1}{\frac {x_{0}-x}{x_{0}-x_{1}}}} on nolla sijoituksella x 0 {\displaystyle x_{0}} ja y 1 {\displaystyle y_{1}} sijoituksella x 1 . {\displaystyle x_{1}.}

Polynomi saadaan näiden lausekkeiden summana

f ( x ) y 0 x x 1 x 0 x 1 + y 1 x 0 x x 0 x 1 . {\displaystyle f(x)\approx y_{0}{\frac {x-x_{1}}{x_{0}-x_{1}}}+y_{1}{\frac {x_{0}-x}{x_{0}-x_{1}}}.} [6]

Se antaa tulokseksi saman ensimmäisen asteen interpolaatiopolynomin kuin edellinenkin menetelmä. Viimeistä muotoa kutsutaan myös Lagrangen polynomiksi.[6]

Toisen asteen polynomi

Toisen asteen interpolointi voidaan toteuttaa joko sovittamalla toisen asteen polynomin käyrää eli paraabeli kolmelle pisteelle tai soveltamalla Lagrangen menetelmää. Toisen asteen interpolointi kolmelle pisteelle ( x 0 , y 0 ) , {\displaystyle (x_{0},y_{0}),} ( x 1 , y 1 ) {\displaystyle (x_{1},y_{1})} ja ( x 2 , y 2 ) {\displaystyle (x_{2},y_{2})} voidaan suorittaa viimeksi mainitulla tavalla. Muodostetaan lausekkeet, jotka antavat arvoksi nolla muissa pisteissä paitsi "omassa" pisteessä. Seuraava termi on nolla, kun siihen sijoitetaan x 1 {\displaystyle x_{1}} tai x 2 {\displaystyle x_{2}} , mutta se on y 0 {\displaystyle y_{0}} , kun siihen sijoitetaan x 0 {\displaystyle x_{0}}

y 0 ( x x 1 ) ( x x 2 ) ( x 0 x 1 ) ( x 0 x 2 ) . {\displaystyle y_{0}{\frac {(x-x_{1})(x-x_{2})}{(x_{0}-x_{1})(x_{0}-x_{2})}}.}

Polynomi saadaan kolmella termillä

f ( x ) y 0 ( x x 1 ) ( x x 2 ) ( x 0 x 1 ) ( x 0 x 2 ) + y 1 ( x x 0 ) ( x x 2 ) ( x 1 x 0 ) ( x 1 x 2 ) + y 2 ( x x 0 ) ( x x 1 ) ( x 2 x 0 ) ( x 2 x 1 ) . {\displaystyle f(x)\approx y_{0}{\frac {(x-x_{1})(x-x_{2})}{(x_{0}-x_{1})(x_{0}-x_{2})}}+y_{1}{\frac {(x-x_{0})(x-x_{2})}{(x_{1}-x_{0})(x_{1}-x_{2})}}+y_{2}{\frac {(x-x_{0})(x-x_{1})}{(x_{2}-x_{0})(x_{2}-x_{1})}}.} [7][6]

Näitä interpolaatiopolynomeja voi liittää moneen peräkkäisen kolmen pisteen sarjoihin. Jos pisteet ovat kollineaarisia, tulee polynomista ensimmäistä astetta. Jos pisteet eivät ole kollineaarisia, tulee siitä toisen asteen interpolaatiopolynomi. Esitettyä muotoa kutsutaan Lagrangen polynomiksi.[6]

Lagrangen interpolaatio

Pääartikkeli: Lagrangen interpolaatio

Lagrangen interpolaatio luodaan käyttämällä yleistä Lagrangen interpolaatiopolynomia. Se voidaan kirjoittaa muodossa [6]

p ( x ) = y 0 L 0 ( x ) + y 1 L 1 ( x ) + + y n L n ( x ) , {\displaystyle p(x)=y_{0}L_{0}(x)+y_{1}L_{1}(x)+\dots +y_{n}L_{n}(x),}

missä ensimmäinen kantapolynomi L 0 ( x ) {\displaystyle L_{0}(x)} on

L 0 ( x ) = ( x x 1 ) ( x x 2 ) ( x x n ) ( x 0 x 1 ) ( x 0 x 2 ) ( x 0 x n ) {\displaystyle L_{0}(x)={\frac {(x-x_{1})(x-x_{2})\dots (x-x_{n})}{(x_{0}-x_{1})(x_{0}-x_{2})\dots (x_{0}-x_{n})}}}

ja i . {\displaystyle i.} kantapolynomi on

L i ( x ) = ( x x 1 ) ( x x 2 ) ( x x i 1 ) ( x x i + 1 ) ( x x n ) ( x i x 1 ) ( x i x 2 ) ( x i x i 1 ) ( x i x i + 1 ) ( x i x n ) . {\displaystyle L_{i}(x)={\frac {(x-x_{1})(x-x_{2})\dots (x-x_{i-1})(x-x_{i+1})\dots (x-x_{n})}{(x_{i}-x_{1})(x_{i}-x_{2})\dots (x_{i}-x_{i-1})(x_{i}-x_{i+1})\dots (x_{i}-x_{n})}}.}

Polynomin aste on korkeintaan n {\displaystyle n} , jos pisteitä on n + 1 {\displaystyle n+1} . Mikäli osa pisteistä ovat samoja tai ne ovat kollineaarisia, laskee polynomin asteluku alle n {\displaystyle n} . Lagrangen interpolaatiopolynomi on vaikea laskea tietokoneella, sillä pyöristysvirheet aiheuttavat joskus yli- tai alivuotoa.[4]

Newtonin interpolaatio

Pääartikkeli: Newtonin interpolaatio

Newtoinin interpolaatiomenetelmässä polynomille haetaan kertoimet muodossa

P ( x ) = a 0 + a 1 ( x x 0 ) + a 2 ( x x 0 ) ( x x 1 ) + + a n ( x x 0 ) ( x x 1 ) ( x x n 1 ) . {\displaystyle P(x)=a_{0}+a_{1}(x-x_{0})+a_{2}(x-x_{0})(x-x_{1})+\dots +a_{n}(x-x_{0})(x-x_{1})\dots (x-x_{n-1}).}

Kertoimet määräytyvät ehdosta

P ( x i ) = y i , {\displaystyle P(x_{i})=y_{i},} ( i { 0 , 1 , , n 1 } ) , {\displaystyle (i\in \{0,1,\dots ,n-1\}),}

joka johtaa rekursiivisesti ratkeavaan yhtälöryhmään

y 0 = a 0 y 1 = a 0 + a 1 ( x 1 x 0 ) y 2 = a 0 + a 1 ( x 2 x 0 ) + a 2 ( x 2 x 0 ) ( x 2 x 1 ) y 3 = a 0 + a 1 ( x 3 x 0 ) + a 2 ( x 3 x 0 ) ( x 3 x 1 ) + a 3 ( x 3 x 0 ) ( x 3 x 1 ) ( x 3 x 2 ) = y n = a 0 + a 1 ( x n x 0 ) + + a n ( x n x 0 ) ( x n x n 1 ) {\displaystyle {\begin{aligned}y_{0}&=a_{0}\\y_{1}&=a_{0}+a_{1}(x_{1}-x_{0})\\y_{2}&=a_{0}+a_{1}(x_{2}-x_{0})+a_{2}(x_{2}-x_{0})(x_{2}-x_{1})\\y_{3}&=a_{0}+a_{1}(x_{3}-x_{0})+a_{2}(x_{3}-x_{0})(x_{3}-x_{1})+a_{3}(x_{3}-x_{0})(x_{3}-x_{1})(x_{3}-x_{2})\\\vdots &=\vdots \\y_{n}&=a_{0}+a_{1}(x_{n}-x_{0})+\dots +a_{n}(x_{n}-x_{0})\dots (x_{n}-x_{n-1})\end{aligned}}}

Yhtälöryhmän ratkaiseminen voidaan järjestää taulukossa, jota kutsutaan Newtonin erotustaulukoksi.[4][8][9]

Newtonin menetelmä on melko suoraviivainen tapa laskea polynomin kertoimet. Kun uuden pisteen lisääminen johtaa Lagrangen menetelmässä uuteen laskutehtävään, tulee Newtonin menetelmässä lisätä vain uusi rivi ja suorittaa sille pikkulaskuja.[9]

Lähteet

  • Hemmo-Iivonen, Katariina et al.: Pyramidi 12 – Numeerisia ja algebrallisia menetelmiä. (lukion pitkä matematiikka). Helsinki: Tammi. ISBN 978-951-26-5406-2.
  • Ruotsalainen, Keijo: Numeeriset menetelmät (Arkistoitu – Internet Archive) (luentomoniste), Teknillinen tiedekunta, Oulun Yliopisto, 2010

Viitteet

  1. a b Hemmo-Iivonen, Katariina et al.: Pyramidi 12, s. 79−82
  2. Weisstein, Eric W.: Interpolation (Math World – A Wolfram Web Resource) Wolfram Research. (englanniksi)
  3. Stover, Christopher: Interpolant (Math World – A Wolfram Web Resource) Wolfram Research. (englanniksi)
  4. a b c d Ruotsalainen, Keijo: Numeeriset menetelmät, 2010, s. 56−60
  5. Weisstein, Eric W.: Smooth Function (Math World – A Wolfram Web Resource) Wolfram Research. (englanniksi)
  6. a b c d e f g Apiola, Heikki: Polynomit, interpolaatio ja funktion approksimointi, matematiikkalehti Solmu, 3/2004
  7. Hemmo-Iivonen, Katariina et al.: Pyramidi 12, s. 84−85
  8. Algorithm for the Newton Form of the Interpolating Polynomial
  9. a b Valjus, Kirsi: Numeeriset menetelmät TIEA381 – luento 6, Jyväskylän yliopisto, 2013

Aiheesta muualla

  • Lehtonen, Ari: 2. Interpolointi (pdf), kurssilla MATA145 Matematiikan laskennallisia menetelmiä, Jyväskylän yliopisto, 2012, viitattu 2.9.2015