Pokročilé numerické metody II 4. přednáška Vícekrokové metody Jiří Zelinka Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 1 / 12 Vícekrokové metody y′ = f (x, y), y(x0) = y0 y(xi+1) = y(xi ) + xi+1 xi f (x, y(x))dx Označení: y′ j = fj = f (xj , yj ) Adamsova–Bashforthova metoda Funkci f aproximujeme interpolačním polynomem v bodech xi−s, xi−s+1, . . . , xi Diference: ∆fj = fj+1 − fj ∆2 fj = ∆fj+1 − ∆fj = fj+2 − 2fj+1 + fj ∆3 fj = ∆2 fj+1 − ∆2 fj = fj+3 − 3fj+2 + 3fj+1 − fj ... Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 2 / 12 Newtonův interpolační polynom pro interpolaci vzad: x = xi + th t j = t(t − 1) · · · (t − j + 1) j! P(xi + th) = fi + t 1 ∆fi−1 + t 2 ∆2 fi−2 + · · · + + t + s − 1 s ∆s fi−s yi+1 = yi + h 1 0 P(xi + th)dt Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 3 / 12 Adamsův extrapolační vzorec: yi+1 = yi + h[fi + b1∆fi−1 + b2∆2 fi−2 + · · · + bs∆s fi−s] bj = 1 0 t j dt = 1 j! 1 0 t(t − 1) · · · (t − j + 1)dt Koeficienty bj : j 1 2 3 4 5 bj 1/2 5/12 3/8 251/720 95/288 bj nezávisí na s, b0 = 1. Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 4 / 12 Při použití Lagrangeova interpolačního polynomu dostaneme formuli yi+1 = yi + h[bs,0fi + bs,1fi−1 + bs,2fi−2 + · · · + bs,sfi−s] bs,j = (−1)j j!(s − j)! 1 0 t(t + 1)(t + 2) · · · (t + s) t + j dt s bs,0 bs,1 bs,2 bs,3 bs,4 0 1 1 3/2 -1/2 2 23/12 -16/12 5/12 3 55/24 -59/24 37/24 -9/24 4 1901/720 -2774/720 2616/720 -1274/720 521/720 Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 5 / 12 Adamsova–Multonova metoda Funkci f aproximujeme interpolačním polynomem v bodech xi−s, xi−s+1, . . . , xi , xi+1 Adamsův interpolační vzorec: Je použit Newtonův interpolační polynom x = xi+1 + th yi+1 = yi + h[fi+1 + c1∆fi + c2∆2 fi−1 + · · · + cs+1∆s+1 fi−s] cj = 1 j! 0 −1 t(t + 1) · · · (t + j − 1)dt Koeficienty cj : j 1 2 3 4 5 cj -1/2 -1/12 -1/24 -19/720 -3/160 cj nezávisí na s, c0 = 1. Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 6 / 12 Použití Lagrangeova interpolačního polynomu: yi+1 = yi + h s j=−1 cs,j fi−j cs,j = (−1)j+1 (j + 1)!(s − j)! 1 0 (t − 1)t(t + 1)(t + 2) · · · (t + s) t + j dt s cs,−1 cs,0 cs,1 cs,2 cs,3 -1 1 0 1/2 1/2 1 5/12 8/12 -1/12 2 9/24 19/24 -5/24 1/24 3 251/720 646/720 -264/720 106/720 -19/720 Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 7 / 12 Obecná vícekroková metoda yi+1 = s j=0 aj yi−j + h s j=−1 bj y′ i−j b−1 = 0: explicitní metoda, b−1 ̸= 0: implicitní metoda Formule se nazývá řádu r, jestliže je přesná pro polynomy do stupně r (pozor, nejedná se o řád přesnosti). Podmínky řádu: s j=0 aj = 1 − s j=0 jaj + s j=−1 bj = 1 s j=0 (−j)k aj + k s j=−1 (−j)k−1 bj = 1, k = 2, . . . , r Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 8 / 12 Metoda, která splňuje první dvě rovnice se nazývá konzistentní. Lokální diskretizační chyba: y(xi+1) = s j=0 aj y(xi−j ) + h s j=−1 bj y′ (xi−j ) + ltei Z Taylorova rozvoje: y(xi−j ) = y(xi )−jhy′ (xi )+ j2 h2 2 y′′ (xi )+· · ·+ (−1)r jr hr r! y(r) (xi )+ + 1 r! xi−j xi (xi−j − t)r y(r+1) (t)dt Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 9 / 12 y′ (xi−j ) = y′ (xi ) − jhy′′ (xi ) + · · · + (−1)r−1 jr−1 hr−1 (r − 1)! y(r) (xi )+ + 1 (r − 1)! xi−j xi (xi−j − t)r−1 y(r+1) (t)dt ltei = 1 r!   xi+1 xi (xi+1 − t)r y(r+1) (t)dt− − s j=0 aj xi−j xi (xi−j − t)r y(r+1) (t)dt − − rh s j=−1 bj xi−j xi (xi−j − t)r−1 y(r+1) (t)dt   Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 10 / 12 ltei = 1 r! xi+1 xi−s G(t)y(r+1) (t)dt G se nazývá účinková funkce G(t) = (xi+1 − t) r − rhb−1(xi+1 − t) r−1 + + s j=1 [aj (xi−j − t) r + rhbj (xi−j − t) r−1 ] (xi−j − t) je funkce xi−j − t doplněná nulovou funkcí mimo interval [xi−j , xi ], resp. [xi , xi+1, ]. Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 11 / 12 Pokud G nemění znaménko na [xi−s, xi+1] pak podle věty o střední hodnotě integrálu ltei = y(r+1) (η) r! xi+1 xi−s G(t)dt xi−s < η < xi+1. Pak ltei = Chr+1 y(r+1) (η) Pokud G mění znaménko na [xi−s, xi+1], pak platí |ltei | ≤ |y(r+1) (ξ)| r! xi+1 xi−s |G(t)|dt kde ξ je bod z [xi−s, xi+1], v němž nabývá |y(r+1) | svého maxima. Jiří Zelinka Pokročilé numerické metody II, 4. přednáška 12 / 12