Runge–Kutta-menetelmät

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.Hazewinkel, M. Encyclopaedia of Mathematics. volume 8. Kluweir Academic Publisher, 1992 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. Korpelainen, E. Stokastisen differentiaaliyhtälön ratkaiseminen runge-kutta-menetelmällä. Tilastotieteen tutkimuksia. Joensuun Yliopisto, Yhteiskuntatieteiden tiedekunta, 1989, sivut 8-9. 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. Mäkelä, M., Nevanlinna, O. ja Virkkunen, J. Numeerinen matematiikka. Gaudeamus, kolmas painos, sivu 229 ==Neljännen kertaluvun Runge–Kutta-menetelmä== ===Menetelmän kuvaus=== 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 :y' = f(t, y(t)),\quad y(t_0) = y_0. Nyt RK4-menetelmä voidaan kirjoittaa seuraavasti: :y_{n+1} = y_n + \frac{h}{6}\left(k_1 + 2k_2 + 2k_3 + k_4 \right) :t_{n+1} = t_n + h, jossa h merkitsee käytettyä aika-askelta ja yn+1 on RK4-menetelmän approksimaatio arvosta y(tn+1) ja :k_1 = f\left(t_n, y_n\right) :k_2 = f\left(t_n + \frac{h}{2}, y_n + \frac{h}{2}k_1\right) :k_3 = f\left(t_n + \frac{h}{2}, y_n + \frac{h}{2}k_2\right) :k_4 = f\left(t_n + h, y_n + hk_3\right) 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=== 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== ===Taustaa=== 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=== Kahta muistipaikkaa käyttävä Runge–Kutta-menetelmä voidaan esittää seuraavassa muodossa. Aluksi asetetaan :dy^0 = 0 ja y^0 = y_n. Sitten lasketaan \forall i \in [0,m] :dy^{i+1} = A_i dy^{i} + hf\left(y^i\right) :y^{i+1} = y^i + B_i dy^{i+1} ja lopuksi saadaan :y_{n+1} = y^m. 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 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== 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. Karris, S. T. Numerical Analysis Using MATLAB and Excel. Orchard Publications, kolmas painos, 2007 ==Katso myös== *Eulerin menetelmä *Numeerinen analyysi ==Lähteet== == Kirjallisuutta == * Luokka:Numeerinen analyysi