Pokročilé numerické metody II 13. přednáška Parabolické rovnice Hyperbolické rovnice Jiří Zelinka Jiří Zelinka Pokročilé numerické metody II, 13. přednáška 1 / 9 Parabolické DR Rovnice vedení tepla ve více dimenzích ∂ ∂t u = α∆u + f Rovnici řešíme na Ω × R+, Ω ⊆ Rn . Např. pro n = 2 a explicitní schéma vyjde (viz eliptické rovnice): uk+1 ij = r uk i,j−1 + r uk i−1,j + (1 − 4r)uk ij + r uk i+1,j + r uk i,j+1 + τf k ij . Podmínka stability: r ≤ 1 4 . Jiří Zelinka Pokročilé numerické metody II, 13. přednáška 2 / 9 Metoda střídavých směrů Snaha o ekonomický výpočet – pouze třídiagonální matice: Při přechodu od vrstvy k k vrstvě k + 1 použijeme mezivrstvu k + 1/2 a použijeme různé typy aproximací. V prvním půlkroku aproximujeme uxx implicitně (pomocí vrstvy k + 1/2) a uyy explicitně (pomocí vrstvy k). V druhém půlkroku je to obráceně. Časový krok je τ/2. Pro homogenní rovnici máme: u k+1/2 i,j − uk i,j τ = α 2 u k+1/2 i−1,j − 2u k+1/2 i,j + u k+1/2 i+1,j h2 x + uk i,j−1 − 2uk i,j + uk i,j+1 h2 y uk+1 i,j − u k+1/2 i,j τ = α 2 u k+1/2 i−1,j − 2u k+1/2 i,j + u k+1/2 i+1,j h2 x + uk+1 i,j−1 − 2uk+1 i,j + uk+1 i,j+1 h2 y Jiří Zelinka Pokročilé numerické metody II, 13. přednáška 3 / 9 Schéma je absolutně stabilní s diskretizační chybou O(τ2 + h2 x + h2 y ). Problémy mohou být pro obecnou oblast s aproximací na hranici. Jiří Zelinka Pokročilé numerické metody II, 13. přednáška 4 / 9 Hyperbolické DR Vlnová rovnice ∂2 ∂t2 u = c2 ∂2 ∂x2 u + f Interpretace: u(x, t) je vychýlení struny v daném bodě a daném čase. c je rychlost šíření vlny, často klademe c = 1. Počáteční podmínky: u(x, 0) = u0(x), ∂ ∂t u(x, 0) = u1(x), x ∈ [0, 1] Okrajové podmínky (Dirichletovy): u(i, t) = gi (t), t ≥ 0, i ∈ {0, 1} Jiří Zelinka Pokročilé numerické metody II, 13. přednáška 5 / 9 Přibližné řešení hledáme na [0, 1] × [0, T], T > 0. Definice uzlů: h = 1/N, x0 = 0, xN = 1, xi = i h, τ = T/M, t0 = 0, tM = T, tk = k τ. Označení: uk i ≈ u(xi , tk). Přibližné řešení počítáme postupně pomocí tří časových vrstev: 1 τ2 [uk+1 i − 2uk i + uk−1 i ] = σ h2 [uk+1 i−1 − 2uk+1 i + uk+1 i+1 ] + + 1 − 2σ h2 [uk i−1 − 2uk i + uk i+1] + + σ h2 [uk−1 i−1 − 2uk−1 i + uk−1 i+1 ] + f k i Diskretizační chyba: O(τ2 + h2 ) σ ≥ 0: váha diferenčního schématu. σ = 0: explicitní schéma, podmínka stability je τ/h ≤ 1. σ = 1: implicitní schéma, absolutně stabilní. Jiří Zelinka Pokročilé numerické metody II, 13. přednáška 6 / 9 Začátek výpočtu Počáteční vrstvu (k = 0) získáme z počáteční podmínky pro u0. První vrstvu získáme z odhadu první derivace (funkce u1), s využitím centrální diferenční formule pro počáteční vrstvu s chybou O(τ2 ), fiktivních bodů (vrstva pro k = −1) a rovnice pro vrstvy −1, 0, 1. Jiří Zelinka Pokročilé numerické metody II, 13. přednáška 7 / 9 Metoda přímek (klasická) Metodu lze použít pro časově závislé rovnice s jednou prostorovou proměnnou. Princip spočívá v tom, že diskretizujeme pouze prostorovou proměnnou a rovnici pak řešíme jako systém ODR. Rovnice: ut = f (x, t, ux , uxx ), 0 < x < 1, t > 0. Počáteční podmínka: u(x, 0) = u0(x), x ∈ [0, 1] Okrajové podmínky (Dirichletovy): u(i, t) = gi (t), t ≥ 0, i ∈ {0, 1} Jiří Zelinka Pokročilé numerické metody II, 13. přednáška 8 / 9 Definice uzlů: h = 1/N, x0 = 0, xN = 1, xi = i h Označme ui (t) = u(xi , t), jedná se o restrikci funkce u na přímku x = xi . Použijeme „klasické“ diferenční aproximace parciálních derivací podle x, derivace funkcí ui je derivací podle času: u′ i = f (xi , t, ui+1 − ui−1 2h , ui+1 − 2ui + ui−1 h2 ) = Fi (t, ui−1, ui , ui+1), i = 1, . . . , N − 1. u0 a uN jsou dány okrajovými podmínkami, počáteční podmínky ui (0) = u0(xi ). Metodu lze použít i pro rovnice vyšších řádů s příslušnými počátečními podmínkami. Jiří Zelinka Pokročilé numerické metody II, 13. přednáška 9 / 9