Pokročilé numerické metody II 3. přednáška Metody Rungeho-Kutty – vlastnosti Jiří Zelinka Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 1 / 13 Opakování Metody Taylorova rozvoje y(x+h) = y(x)+hy′ (x)+ 1 2 h2 y′′ (x)+· · ·+ 1 n! hn y(n) (x)+O(hn+1 ) y′ (x) = f (x, y(x)) y′′ (x) = fx (x, y(x)) + fy (x, y(x))f (x, y(x)) y′′′ (x) = fxx + 2fxy f + fyy f 2 + fx fy + f 2 y f Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 2 / 13 Metody Rungeho–Kutty (explicitní) Explicitní metoda Rungeho–Kutty stupně s: yi+1 = yi + h(b1k1 + b2k2 + · · · + bsks) k1 = f (xi , yi ) k2 = f (xi + c2h, yi + ha21k1) k3 = f (xi + c3h, yi + h(a31k1 + a32k2)) ... ks = f (xi + csh, yi + h s−1 j=1 asj kj ) Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 3 / 13 Butcherovy tabulky c2 a21 c3 a31 a32 ... ... cs as1 as2 . . . as,s−1 b1 b2 . . . bs−1 bs Podmínky řádu (ltei = O(hp+1 )): p = 1: s j=1 bj = 1 p = 2: s j=1 bj = 1, s j=2 bj cj = 1 2 p = 3: předchozí + s j=2 bj c2 j = 1 3 , s j=3 j−1 l=2 bj ajl cl = 1 6 Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 4 / 13 Další podmínka: cj = j−1 l=1 ajl – splňují všechny používané metody Vztah mezi stupněm a řádem metody p(s): maximální dossažitelný řád pro metodu stupně s p(s) = s, s = 1, . . . , 4 p(5) = 4 p(6) = 5 p(7) = 6 p(8) = 6 p(9) = 7 p(s) ≤ s − 2, s ≥ 10 Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 5 / 13 Příklady explicitních metod R–K Metody druhého řádu Modifikovaná EM (midpoint EM) Heunova metoda 1/2 1/2 0 1 1 1 1/2 1/2 Ralstonova m. 2. řádu Obecná m. 2. řádu (ab = 1/2) 2/3 2/3 1/4 3/4 a a 1 − b b Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 6 / 13 Příklady explicitních metod R–K Metody vyšších řádů Ralstonova m. 3. řádu Klasická m. R–K 1/2 1/2 3/4 0 3/4 2/9 1/3 4/9 1/2 1/2 1/2 0 1/2 1 0 0 1 1/6 1/3 1/3 1/6 Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 7 / 13 Stabilita explicitních metod R–K Testovací úloha vede na rovnici yi+1 = Ps(z)yi pro hλ = z, Ps je polynom stupně s. Podmínka stability: |Ps(z)| < 1, oblast stability Ω = {z ∈ C; |Ps(z)| < 1} Pro p = s ≤ 4 je Ps(z) = p j=0 zj j! , proto jsou oblasti stability pro metody stejného stupně stejné. Intervaly stability: s 1 2 3 4 (−2, 0) (−2, 0) (−2.51, 0) (−2.79, 0) Příklad: (částečně ve cvičení) Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 8 / 13 Implicitní metody Rungeho–Kutty kl = f (xi + cl h, yi + h s j=1 alj kj ), l = 1, . . . , s – systém nelineárních rovnic pro k1, . . . , ks v každém kroku. Butcherovy tabulky c1 a11 a12 . . . a1,s c2 a21 a22 . . . a2,s ... ... ... ... cs as1 as2 . . . as,s b1 b2 . . . bs Podmínky řádu jsou stejné jako pro explicitní metody. Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 9 / 13 Semi-implicitní metody Rungeho–Kutty kl = f (xi + cl h, yi + h l j=1 alj kj ), l = 1, . . . , s – jedna nelineární rovnice pro kl v l-tém každém kroku. Butcherovy tabulky c1 a11 c2 a21 a22 ... ... cs as1 as2 . . . as,s b1 b2 . . . bs Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 10 / 13 Příklad – Rozšířená lichoběžníková metoda (TRX2): y(xi+1) = yi + xi+1 xi f (t, y(t))dt yi+1 = yi + h 4 [f (xi , yi ) + 2f (xi+1/2, yi+1/2) + f (xi+1, yi+1)] yi+1/2 = yi + h 4 [f (xi , yi ) + f (xi+1/2, yi+1/2)] yi+1 = yi+1/2 + h 4 [f (xi+1/2, yi+1/2) + f (xi+1, yi+1)] k1 = f (xi , yi ) k2 = f (xi + 1 2 h, yi + 1 4 h(k1 + k2)) k3 = f (xi + h, yi + 1 4 h(k1 + 2k2 + k3)) Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 11 / 13 Butcherova tabulka 0 0 1 2 1 4 1 4 1 1 4 1 2 1 4 1 4 1 2 1 4 Stabilita metody ve cvičení Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 12 / 13 Řízení délky kroku Měníme krok h = hi tak, aby lokální chyba lei byla zhruba pořád stejně velká. Strategie EPS (error per step): ∥lei ∥ ≤ ε Strategie EPUS (error per unit step): ∥lei ∥ ≤ hi ε Odhad lokální chyby – metoda polovičního kroku z yi určíme přibližnou hodnotu řešení ¯yi+1 s krokem h, pak určíme přibližnou hodnotu ˜yi+1 se dvěma polovičními kroky h/2. Porovnáním ˜yi+1 a ¯yi+1 získáme odhad lokální chyby. Jiří Zelinka Pokročilé numerické metody II, 3. přednáška 13 / 13