Teoria : Alkuarvoprobleeman numeerinen ratkaiseminen

Perusidea ensimmäisen kertaluvun yhtälölle

Ensimmäisen kertaluvun alkuarvoprobleeman

y' = f(x, y),   y(x0) = y0

numeerisessa ratkaisemisessa tarkasteluvälille [x0, x0 + L] asetetaan jakopisteet x0, x1 , . . . , xn , missä xn = x0 + L, ja pyritään laskemaan funktionarvoille y(xk) approksimaatiot yk.

Jakopisteet xk ovat usein tasavälisiä, xk+1 = xk + h, mutta välttämätöntä tämä ei ole. Yleensä on L > 0, mutta voi myös olla L < 0, jolloin väli ulottuu alkuehtopisteestä x0 taaksepäin. Tällöin on h < 0.

Approksimaatiot yk voidaan laskea useilla erilaisilla menetelmillä. Nämä ovat iteratiivisia, ts. seuraava arvo yk+1 lasketaan aiemmin laskettujen arvojen y0, y1, . . ., yk avulla. Menetelmien perustana on yleensä jompikumpi seuraavista lähestymistavoista:

1) Oletetaan, että ratkaisufunktiolla y(x) on Taylorin kehitelmä jakopisteessä xk :

y(xk + h) = y(xk) + y'(xk)h + 12y''(xk)h2 + . . . + 1n!y(n)(xk)hn + O(hn+1)
= y(xk) + [ '        1 ''     2        -1 (n)     n]
 y(xk)h +  2y (xk)h  + ...+ n!y   (xk)h + O(hn+1),
missä O(hn+1 ) tarkoittaa astetta n olevaan Taylorin polynomiin liittyvää jäännöstermiä. Hakasulkulauseke voidaan laskea, kun xk ja y(xk) tunnetaan: Differentiaaliyhtälön mukaan on y' = f(x, y), jolloin y'(xk) = f(xk, y(xk)). Derivaatta y''(xk) saadaan derivoimalla differentiaaliyhtälö muuttujan x suhteen, jolloin

y'' (x) = fx(x, y(x)) + fy(x, y(x))y'(x) = fx(x, y(x)) + fy(x, y(x))f(x, y(x)),

ja sijoittamalla tähän x = xk. Tässä fx ja fy tarkoittavat funktion f osittaisderivaattoja. Korkeammat derivaatat saadaan vastaavalla tavalla derivoimalla edellä saatua yhtälöä edelleen. Lausekkeet käyvät kuitenkin varsin mutkikkaiksi.

Kiinnittämällä Taylorin polynomin aste n, pudottamalla jäännöstermi pois ja käyttämällä funktionarvolle y(xk) sille aiemmin laskettua approksimaatiota yk saadaan menetelmä funktionarvon y(xk+1) = y(xk + h) approksimaation laskemiseen:

y(xk+1)  ~~ yk+1 = yk + g(xk, y0, y1, . . . , yk, h).

Tässä g(xk , y0, y1, . . . , yk, h) tarkoittaa joko edellä käsitellystä hakasulkulauseketta saatavaa termiä tai sille jollakin tavalla muodostettua, helpommin laskettavaa approksimaatiota. Approksimaatio voi perustua funktion f osittaisderivaattojen sijasta yhteen tai useampaan jo laskettuun arvoon y0, y1, . . . , yk.

2) Integroimalla differentiaaliyhtälö y'(x) = f(x, y(x)) puolittain välin [xk, xk + h] yli saadaan

y(xk + h) - y(xk) =  integral  xk+h

 xkf(x, y(x)) dx.

Oikean puolen integraalia ei kuitenkaan voida laskea, koska funktiota y(x) ei tunneta.

Approksimoimalla funktiota f(x, y(x)) jollakin tavoin välillä [xk, xk + h], voidaan integraalille laskea likimääräisarvio I(xk, y0, y1, . . . , yk, h). Tämän perustana voidaan käyttää yhtä tai useampaa jo lasketuista arvoista y0, y1, . . . , yk. Vastaavasti kuin edellä saadaan menetelmä funktionarvon y(xk+1) = y(xk + h) approksimoimiseen:

y(xk+1)  ~~ yk+1 = yk + I(xk, y0, y1, . . . , yk, h).

Yksinkertaisia esimerkkejä em. ideoista ovat Eulerin menetelmä ja parannettu Eulerin menetelmä. Ne ovat kuitenkin liian epätarkkoja todellisissa ongelmissa. Käyttökelpoisia menetelmiä ovat esimerkiksi edelliseen lähestymistapaan perustuva Rungen – Kuttan menetelmä ja jälkimmäiseen perustuva Adamsin – Bashforthin menetelmä.


Teoria: numeerinen näkökulma
Teoria: perusidea korkeamman kertaluvun yhtälölle
Ratkaiseminen: Eulerin menetelmä
Ratkaiseminen: parannettu Eulerin menetelmä
Ratkaiseminen: Rungen – Kuttan menetelmä
Ratkaiseminen: Adamsin – Bashforthin menetelmä
Esimerkki: 1. kertaluvun yhtälön numeerinen ratkaiseminen

SKK 15.5.2001