Runge–Kutta-menetelmät

Wikipediasta
Siirry navigaatioon Siirry hakuun

Runge–Kutta-menetelmät ovat erittäin keskeisiä numeerisen analyysin menetelmiä differentiaaliyhtälöiden ratkaisuun. Menetelmiä kehittivät saksalaiset matemaatikot Carl Runge ja Martin Wilhelm Kutta, joista Kutta julkaisi menetelmän vuonna 1895 artikkelissa Ueber die numerische Auflösung von Differentialgleichungen ja Kutta kehitti tätä edelleen vuonna 1901 julkaisussaan Beitrag zur naherungsweisen Integration von Differentialgleichungen.[1] Runge-Kutta-menetelmille on runsaasti sovelluskohteita muun muassa fysiikan ja tilastotieteen alalla.

Eräs Runge-Kutta-menetelmien hyvistä puolista on se, ettei sen käyttäminen edellytä funktion derivaatan laskemista. Tästä ominaisuudesta on erityisesti hyötyä ratkaistaessa stokastisia differentiaaliyhtälöitä numeerisesti. [2] Runge-Kutta-menetelmät ovat myös asymptoottisesti stabiileja eli hyvin pienillä askeleen arvoilla saadaan häiriön kasvu rajattua tietyn rajan alle. Menetelmää käytettäessä tarvitaan tietoa vain funktion edellisestä arvosta, muttei aiemmista. Tämän vuoksi askelpituuden muuttaminen on helppoa. Runge-Kutta-menetelmän huonoja puolia on se, että apuarvoja ei käytetä kovin hyvin hyödyksi, vaikka näihin voikin joissakin tapauksissa perustaa virhearvioita. Menetelmä on myös laskennallisesti melko raskas, koska se vaatii useiden funktion arvojen laskemisen joka kierroksella, mikä voi olla työlästä, erityisesti, jos funktio on monimutkainen. [3]

Neljännen kertaluvun Runge–Kutta-menetelmä[muokkaa | muokkaa wikitekstiä]

Menetelmän kuvaus[muokkaa | muokkaa wikitekstiä]

Tunnetuin Runge–Kutta-menetelmistä on neljännen kertaluvun Runge–Kutta, johon viitataan lyhenteellä "RK4" ja hyvin usein pelkkänä "Runge–Kutta-menetelmänä".

Olkoon alkuarvo-ongelmana

Nyt RK4-menetelmä voidaan kirjoittaa seuraavasti:

jossa h merkitsee käytettyä aika-askelta ja yn+1 on RK4-menetelmän approksimaatio arvosta y(tn+1) ja

Kertoimet ki ovat tulkittavissa mallinnettavan funktion kulmakertoimiksi välin eri pisteissä. Arvo k1 on kulmakerroin välin alkupisteessä, k2 on Eulerin menetelmällä laskettu approksimaatio puolivälin kulmakertoimesta, k3 samoin käyttäen k1:n sijaan k2:a laskuissa ja k4 on k3:a hyödyntäen laskettu kulmakertoimen arvo välin päätepisteessä. Näistä otetaan lopuksi keskiarvo painottaen puolivälin kulmakertoimia.

Tarkkuus[muokkaa | muokkaa wikitekstiä]

RK4:n tarkkuus on sen nimen mukaisesti neljättä kertalukua, eli menetelmän virhe on verrannollinen käytetyn aika-askeleen h neljänteen potenssiin. Aika-askelta kohti virhe menetelmässä on h5, ja koska askelia tarvitaan 1/h aikayksikköä kohden, on kokonaisvirhe verrannollinen suureeseen h4.

Low Storage Runge–Kutta -menetelmät[muokkaa | muokkaa wikitekstiä]

Taustaa[muokkaa | muokkaa wikitekstiä]

Neljännen kertaluvun Runge–Kutta-menetelmässä tarvitaan uutta arvoa laskettaessa vanhan arvon lisäksi neljä aputulosta. Tietokoneella mallintaessa tämä tarkoittaa, että muistinkäyttö menetelmällä on viisi kertaa mallinnettavan systeemin koko. Suurissa mallinnuksissa tämä saattaa merkitä hyvinkin suurta kuormaa jopa nykyisten tietokoneiden muistimäärille. Tällaista varten on kehitetty ns. Low Storage eli pienen tallennuskapasiteetin Runge–Kutta-menetelmät.

Kahden muistipaikan Runge–Kutta[muokkaa | muokkaa wikitekstiä]

Kahta muistipaikkaa käyttävä Runge–Kutta-menetelmä voidaan esittää seuraavassa muodossa. Aluksi asetetaan

ja

Sitten lasketaan

ja lopuksi saadaan

Algoritmissa esiintyvä m merkitsee vaiheiden määrää ja siitä riippuu myös vakioiden Ai ja Bi arvot. Huomataan, että ohjelmakoodina algoritmissa tarvitaan vakioiden lisäksi ainoastaan muuttujat dyi ja yi. Artikkelissaan [4] Carpenter ja Kennedy esittelevät vakioiden Ai ja Bi johtamista sekä arvot muun muassa viisivaiheiselle kahden muistipaikan neljännen kertaluvun Runge–Kuttalle eli "(5,4) 2N-Storage RK"

Runge-Kutta-menetelmä tietokoneella[muokkaa | muokkaa wikitekstiä]

Runge-Kutta-menetelmää voidaan simuloida lähes millä tahansa numeeriseen laskentaan kykenevällä ohjelmalla, jopa Excelillä. Esimerkiksi Matlab-ohjelmassa on valmiita komentoja, joilla voidaan ratkaista differentiaaliyhtälöitä numeerisesti Runge-Kutta-menetelmää käyttäen. [5]

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. Hazewinkel, M. Encyclopaedia of Mathematics. volume 8. Kluweir Academic Publisher, 1992
  2. Korpelainen, E. Stokastisen differentiaaliyhtälön ratkaiseminen runge-kutta-menetelmällä. Tilastotieteen tutkimuksia. Joensuun Yliopisto, Yhteiskuntatieteiden tiedekunta, 1989, sivut 8-9.
  3. Mäkelä, M., Nevanlinna, O. ja Virkkunen, J. Numeerinen matematiikka. Gaudeamus, kolmas painos, sivu 229
  4. Mark H. Carpenter, Christopher A. Kennedy: Fourth-Order 2N-Storage Runge–Kutta Schemes. NASA Technical Memorandum, 1994. Artikkelin verkkoversio.
  5. Karris, S. T. Numerical Analysis Using MATLAB and Excel. Orchard Publications, kolmas painos, 2007

Kirjallisuutta[muokkaa | muokkaa wikitekstiä]

  • Kaleva, Osmo: Numeerinen analyysi. Opintomoniste 163. Tampere: TTKK, 1993. ISBN 951-721-941-5.
Tämä matematiikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.