Numeeriset menetelmät Luento 12 To 13.10.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 1/38 p. 1/38
Tavalliset differentiaaliyhtälöt Yhtälöissä tuntematon funktio Tavalliset = yhtälöissä derivaattoja, mutta ei osittaisderivaattoja Kertaluku = yhtälöissä esiintyvän korkeimman derivaatan kertaluku Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 2/38 p. 2/38
Tavalliset differentiaaliyhtälöt t R riippumaton muuttuja y : R R tuntematon funktio f : R 2 R annettu oikean puolen funktio Ensimmäisen kertaluvun tavallinen differentiaaliyhtälö: y (t) = f(t, y(t)) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 3/38 p. 3/38
Tavalliset differentiaaliyhtälöt Yleensä yhtälöllä on ääretön määrä ratkaisuja Yksikäsitteinen ratkaisu kiinnitetään alkuehdolla y(a) = ŷ 0 ŷ 0 y(t) a t Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 4/38 p. 4/38
Differentiaaliyhtälöryhmät Yleisemmin: t R riippumaton muuttuja y 1, y 2,..., y m : R R tuntemattomat funktiot f 1, f 2,..., f m : R m+1 R annetut oikean puolen funktiot Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 5/38 p. 5/38
Differentiaaliyhtälöryhmät y 1(t) = f 1 (t, y 1 (t), y 2 (t),..., y m (t)) y 2(t) = f 2 (t, y 1 (t), y 2 (t),..., y m (t)). y m(t) = f m (t, y 1 (t), y 2 (t),..., y m (t)) y 1 (a) = ŷ1 0 y 2 (a) = ŷ2 0. y m (a) = ŷ 0 m Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 6/38 p. 6/38
Differentiaaliyhtälöryhmät y = (y 1, y 2,..., y m ) f = (f 1, f 2,..., f m ) ŷ 0 = (ŷ1, 0 ŷ2, 0..., ŷm) 0 { y (t) = f(t,y(t)) y(a) = ŷ 0 Ei oleellista eroa tapausten m = 1 ja m > 1 välillä Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 7/38 p. 7/38
Alkuarvotehtävän ratkaisu { y (t) = f(t, y(t)) y(a) = ŷ 0 Lause: Oletetaan, että alueessa D R m+1 funktio f on jatkuva ja f(t, y) f(t,ȳ) L y ȳ, L 0 Olkoon (a, ŷ 0 ) D annettu Alkuarvotehtävällä on yksikäsitteinen, jatkuvasti differentioituva ratkaisu Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 8/38 p. 8/38
Korkeampi kertaluku Korkeamman kertaluvun tavalliset differentiaaliyhtälöt voidaan aina muuntaa ensimmäisen kertaluvun yhtälöryhmiksi Esimerkiksi m:nnen kertaluvun yhtälö y (m) (t) = f(t, y(t), y (t), y (t),..., y (m 1) (t)) Sijoitetaan y 1 = y, y 2 = y,..., y m = y (m 1) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 9/38 p. 9/38
Korkeampi kertaluku y 1(t) = y 2 (t) = f 1 y 2(t) = y 3 (t) = f 2. y m 1(t) = y m (t) = f m 1 y m(t) = f(t, y 1 (t), y 2 (t),..., y m (t)) = f m (Alkuehdot vastaavasti) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 10/38 p. 10/38
Numeerinen ratkaiseminen Pisteistö: t j = a + jh, j = 0, 1, 2,..., missä h sopiva askelpituus Merkitään: y j = y(t j ) ja f j = f(t j, y j ) Määrätään y:n likiarvot y j Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 11/38 p. 11/38
Rungen ja Kuttan menetelmät Tunnetaan y n, lasketaan y n+1 : y n+1 = y n + r i=1 w i k i k 1 = hf(t n, y n ) k i = hf(t n + c i h, y n + i 1 j=1 a ij k j ), 1 < i r missä r, w i, c i ja a ij ovat tunnettuja vakioita Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 12/38 p. 12/38
Menetelmän kertaluku Vakiot valitaan siten, että yhden askeleen paikallinen menetelmävirhe on O(h p+1 ) Pisteestä t 0 = a pisteeseen t N = b tarvitaan N = (b a)/h askelta Kokonaisvirhe välillä [a, b] : (b a) h Ch p+1 = (a b)c h p Menetelmän kertaluku on p Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 13/38 p. 13/38
Rungen ja Kuttan menetelmät Plussaa Yksinkertaisia ja helppoja ohjelmoida Yksiaskelmenetelmiä: riittää yksi alkuarvo y 0 = y(a) Miinusta Funktion f arvoja joudutaan laskemaan myös pisteiden t j välissä Funktion arvojen laskuja tarvitaan paljon Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 14/38 p. 14/38
Neljännen kertaluvun menetelmä Klassinen neljännen kertaluvun Rungen ja Kuttan menetelmä: k 1 = hf(t n, y n ) k 2 = hf(t n + h/2, y n + k 1 /2) k 3 = hf(t n + h/2, y n + k 2 /2) k 4 = hf(t n + h, y n + k 3 ) y n+1 = y n + k 1 6 + k 2 3 + k 3 3 + k 4 6 Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 15/38 p. 15/38
Askelpituuden säätäminen y(t) a b y tasainen voidaan käyttää pitkää h:ta y ei tasainen tarvitaan lyhyt h Askelpituus kannattaa valita adaptiivisesti Arvioidaan paikallista menetelmävirhettä Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 16/38 p. 16/38
Paikallinen menetelmävirhe Yhden askeleen virhe: T(t, h) Ch p+1 Oletetaan, että y n on tarkka Lasketaan y n+1 = y (h) n+1 askelpituudella h : y(t n+1 ) y (h) n+1 Chp+1 Lasketaan y n+1 = y (h/2) n+1 suorittamalla kaksi askelta askelpituudella h/2 : ( y(t n+1 ) y (h/2) h ) p+1 n+1 2C 1 = 2 2 pchp+1 Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 17/38 p. 17/38
Paikallinen menetelmävirhe y(t n+1 ) y (h) n+1 Chp+1 y(t n+1 ) y (h/2) n+1 1 2 pchp+1 Vähennetään toisistaan y (h/2) n+1 y(h) n+1 (1 1 2 p)chp+1 T(t n, h) Ch p+1 y(h/2) n+1 y(h) n+1 1 2 p Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 18/38 p. 18/38
Paikallinen menetelmävirhe Pisteestä t n pisteeseen t = b tarvitaan (b t n )/h askelta Kokonaisvirhe ε, jos T(t n, h) h b t n ε Pidennetään tai lyhennetään askelpituutta sen mukaan, miten hyvin ehto toteutuu Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 19/38 p. 19/38
Lineaariset moniaskelmenetelmät Menetelmän askelluku k Tunnetaan y n, y n+1,..., y n+k 1 Lasketaan y n+k ratkaisemalla se yhtälöstä k j=0 α j y n+j + h k j=0 β j f n+j = 0 Skaalataan siten, että α k = 1 Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 20/38 p. 20/38
Lineaariset moniaskelmenetelmät Eksplisiittiset menetelmät: β k = 0 y n+k = k 1 α j y n+j + h k 1 β j f n+j j=0 j=0 y n+k voidaan laskea suoraan Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 21/38 p. 21/38
Lineaariset moniaskelmenetelmät Implisiittiset menetelmät: β k 0 y n+k = k 1 α j y n+j + h k 1 β j f n+j + hβ k f(t n+k, y n+k ) j=0 j=0 y n+k täytyy ratkaista epälineaarisesta yhtälöstä Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 22/38 p. 22/38
Lineaariset moniaskelmenetelmät Plussaa Funktion f arvoja tarvitaan vain pisteissä t j Funktion arvojen laskuja vähemmän kuin esim. Rungen ja Kuttan menetelmissä Miinusta Alkuarvon y 0 = y(a) lisäksi tarvitaan k 1 muuta arvoa y 1, y 2,..., y k 1 Täytyy käynnistää, eli laskea em. arvot jollain muulla menetelmällä (esim. Rungen ja Kuttan menetelmällä) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 23/38 p. 23/38
Moniaskelmenetelmien johto Numeeriset integrointikaavat: Avoimet Newtonin ja Cotesin kaavat eksplisiittisiä menetelmiä Suljetut Newtonin ja Cotesin kaavat implisiittisiä menetelmiä Interpolointikaavat: Interpolointivälistä riippuen joko eksplisiittisiä tai implisiittisiä menetelmiä Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 24/38 p. 24/38
Moniaskelmenetelmien johto Esimerkki: Avoin Newtonin ja Cotesin kaava: b a u(x)dx 4h 3 (2u 0 u 1 + 2u 2 ) missä h = (b a)/4, x j = a + (j + 1)h, u j = u(x j ) Valitaan [a, b] = [t n, t n+4 ] ja u = f tn+4 t n f(t, y(t))dt 4h 3 (2f n+1 f n+2 + 2f n+3 ) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 25/38 p. 25/38
Moniaskelmenetelmien johto y (t) = f(t, y(t)) tn+4 t n f(t, y(t))dt = tn+4 t n y (t)dt = y n+4 y n Eksplisiittinen moniaskelmenetelmä (k = 4) y n+4 = y n + 4h 3 (2f n+1 f n+2 + 2f n+3 ) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 26/38 p. 26/38
Moniaskelmenetelmien johto Esimerkki: Suljettu Newtonin ja Cotesin kaava (Simpsonin kaava): b a u(x)dx h 3 (u 0 + 4u 1 + u 2 ) missä h = (b a)/2, x j = a + jh, u j = u(x j ) Valitaan [a, b] = [t n, t n+2 ] ja u = f tn+2 t n f(t, y(t))dt h 3 (f n + 4f n+1 + f n+2 ) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 27/38 p. 27/38
Moniaskelmenetelmien johto y (t) = f(t, y(t)) tn+2 t n f(t, y(t))dt = tn+2 t n y (t)dt = y n+2 y n Implisiittinen moniaskelmenetelmä (k = 2) y n+2 = y n + h 3 (f n + 4f n+1 + f n+2 ) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 28/38 p. 28/38
Moniaskelmenetelmien johto Interpolointikaavojen käyttö: Muodostetaan pisteisiin (t j, f j ) interpolaatiopolynomi Integroidaan interpolaatiopolynomi sopivalla välillä Muodostetaan interpolaatiopolynomin lauseke takenevien differenssien avulla (Takenevia differenssejä ei käsitelty) (Mutta: Interpolaatiopolynomi on yksikäsitteinen) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 29/38 p. 29/38
Moniaskelmenetelmien johto Esimerkki: Sovelletaan välille [t n, t n+k 1 ]... Adamsin ja Bashforthin kaavat (eksplisiittisiä) Nyströmin kaavat (eksplisiittisiä) Esimerkki: Sovelletaan välille [t n+1, t n+k ]... Adamsin ja Moultonin kaavat (implisiittisiä) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 30/38 p. 30/38
Adamsin ja Bashforthin kaavoja k = 1: (Eulerin menetelmä) y n+1 = y n + hf n k = 2: k = 3: y n+2 = y n+1 + h 2 (3f n+1 f n ) y n+3 = y n+2 + h 12 (23f n+2 16f n+1 + 5f n ) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 31/38 p. 31/38
Nyströmin kaavoja k = 2: y n+2 = y n + 2hf n+1 k = 3: y n+3 = y n+1 + h 3 (7f n+2 2f n+1 + f n ) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 32/38 p. 32/38
Adamsin ja Moultonin kaavoja k = 1: (implisiittinen Eulerin menetelmä) y n+1 = y n + hf n+1 k = 2: (Crankin ja Nicholsonin menetelmä) k = 3: y n+2 = y n+1 + h 2 (f n+2 + f n+1 ) y n+3 = y n+2 + h 12 (5f n+3 + 8f n+2 5f n+1 ) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 33/38 p. 33/38
Implisiittisten kaavojen iterointi Eksplisiittiset menetelmät helpompia kuin implisiittiset menetelmät Mutta: Implisiittiset käyttökelpoisempia (paremmat stabiliteettiominaisuudet) Implisiittisissä menetelmissä esiintyvä epälineaarinen yhtälö voidaan ratkaista iteroimalla Iteraation alkuarvauksena voidaan käyttää eksplisiittisen menetelmän antamaa arvoa Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 34/38 p. 34/38
Implisiittisten kaavojen iterointi y n+k = k 1 j=0 α j y n+j + h k 1 j=0 β j f n+j } {{ } = ψ n+k +hβ k f(t n+k, y n+k ) y n+k + hβ k f(t n+k, y n+k ) + ψ n+k = 0 Ratkaistaan yhtälö F(y) = 0, missä F(y) = y + hβ k f(t n+k, y) + ψ n+k Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 35/38 p. 35/38
Kiintopisteiteraatio Kiintopisteiteraatio yhtälölle F(y) = 0 y = hβ k f(t n+k, y) + ψ n+k y [0] n+k = jokin eksplisiittinen kaava y [j+1] n+k = hβ kf(t n+k, y [j] n+k ) + ψ n+k, j = 0, 1,... Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 36/38 p. 36/38
Ennustus-korjaus-menetelmät Iteroidaan ennalta annettu lukumäärä iteraatioita Ennustus-korjaus-menetelmät Esimerkiksi yksi iteraatio: Ennustusaskel: Korjausaskel: ȳ n+k = eksplisiittinen kaava y n+k = hβ k f(t n+k, ȳ n+k ) + ψ n+k Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 37/38 p. 37/38
Ennustus-korjaus-menetelmät Esimerkki: Adamsin ja Bashforthin kaava (k = 3), Adamsin ja Moultonin kaava (k = 3): Ennustusaskel: ȳ n+3 = y n+2 + h 12 (23f n+2 16f n+1 + 5f n ) Laske: f n+3 = f(t n+3, ȳ n+3 ) Korjausaskel: y n+3 = y n+2 + h 12 (5 f n+3 + 8f n+2 5f n+1 ) Numeeriset menetelmät Syksy 2011 Luento 12 To 13.10.2011 p. 38/38 p. 38/38