Numerické riešenie diferenciálnych rovníc reálny problém presné riešenie matematický model (často diferenciálna rovnica) numerické riešenie Ciel prednášky: uviest niektoré zo spôsobov numerického riešenia diferenciálnych rovníc
Faktory ovplyvňujúce numerické riešenie: chyba metódy - zjednodušenie matematického modelu na numericky riešitel ný chyby zaokrúhl ovania - chyby vznikajúce riešením na počítači (minulý semester) Klasifikácia diferenciálnych rovníc: obyčajné - začiatočná a okrajová úloha parciálne
Obyčajné diferenciálne rovnice Najjednoduchší prípad - rovnica 1. rádu, začiatočná úloha y (x) = f(x, y(x)) x > x 0 (1) y(x 0 ) = y 0 (2) Veta: (Existencia a jednoznačnost ) Nech funkcia f je spojitá v oboch svojich premenných x, y a nech f je globálne Lipschitzovky spojitá v y tj. L > 0 f(x, y 1 ) f(x, y 2 ) L y 1 y 2 x, y 1, y 2. Potom rovnica (1) má jediné riešenie spĺňajúce (2).
Diskretizačné metódy Jednokrokové metódy Máme problém (1) so začiatočnou podmienkou (2). Nech h > 0, x k = x 0 + kh, k = 1, 2, 3,... nech y k je označenie pre aproximáciu riešenia y(x k ) pre jednokrokovú metódu riešenie y k+1 závisí od riešenia v bode x k (resp. x k+1, x k )
Eulerova metóda napred (polygónová metóda) Prepíšeme rovnicu (1) v bode x = x k y (x) = f(x xk k, y(x k )). Nahradením derivácie na l avej strane doprednou diferenciou (diferenciou napred) y (x) y k+1 y k xk h dostaneme Eulerovu metódu napred (vid obrázok) y k+1 = y k + hf(x k, y k ) (3)
y(x) y(x k+1 ) y k+1 y k x k x k+1 Euler napred graficky
Analýza chyby Majme metódu tvaru y k+1 = y k + hφ(x k, y k ). Uvedieme definície lokálnej a globálnej diskretizačnej chyby. Lokálna diskretizačná chyba Definícia: Predpokladajme, že y k = y(x k ). Pod lokálnou diskretizačnou chybou v bode x k budeme rozumiet výraz L(x k, h) = 1 h (y(x k+1) y(x k )) φ(x k, y(x k ))
alebo v bode x L(x, h) = 1 (y(x + h) y(x)) φ(x, y(x)). h Poznámka: Lokálna diskretizačná chyba je chyba, ktorú produkuje jeden krok metódy. Poznámka: L(x k, h) = 1 h (y(x k+1) y k+1 ) - niekedy bez 1 h Lokálna diskretizačná chyba pre Eulera napred: Použijeme Taylorov rozvoj pre dostatočne hladkú funkciu y (a f) y(x+h) = y(x)+y (x)h+y (z) h2 2 = y(x)+f(x, y(x))h+y (z) h2 2.
L(x, h) = 1 (y(x + h) y(x)) f(x, y(x)) = h = 1 h (y(x) + f(x, y(x))h + y (z) h2 = 1 h y (z) h2 2 = y (z) 2 h 2 y(x)) f(x, y(x)) = L(x, h) Mh = O(h) ak y (x) 2M (M > 0) Globálna diskretizačná chyba Definícia:Pod globálnou diskretizačnou chybou budeme rozumiet výraz E(h) = max k y(x k ) y k.
Globálna diskretizačná chyba pre Eulera napred: Teraz určíme, ako môžeme odhadnút globálnu diskretizačnú chybu pre Eulerovu metódu napred. Označme Z Taylorovho rozvoja máme ε k := y k y(x k ). y(x k+1 ) = y(x k +h) = y(x k )+hy (x k )+ h2 2 y (z k ), z k (x k, x k+1 ). Odčítaním (3) a (4) dostaneme ε k+1 = ε k + h(f(x k, y k ) f(x k, y(x k ))) h2 2 y (z k ). (4)
Funkcia f je lipschitzovsky spojitá v y. Preto ε k+1 ε k + hl y k y(x k ) + h2 2 y (z k ) ε k (1 + hl) + h2 2 max y (z) = A ε z k + B, kde A = 1 + hl, B = h2 2 max z y (z). Ukážeme tvrdenie, z ktorého potom máme odhad pre globálnu diskretizačnú chybu: Tvrdenie: Ak ε 0 = 0, A = 1 + α (α > 0) a k IN platí: potom ε k A ε k 1 + B ε k Ak 1 A 1 B eαk 1 B. α
Dôkaz: Platí ε k A ε k 1 + B A 2 ε k 2 + B(1 + A) A k ε 0 + B k 1 j=0 A j = B Ak 1 A 1. Naviac z Taylorovho rozvoja funkcie e x dostaneme e x = 1 + x + x2 2 ez 1 + x Potom už len dosadením 1 < A k = (1 + α) k e kα. ε k B ekhl 1 hl = e(x k x 0 )L 1 2L max z y (z) h.
Vidíme teda, že ak x k x 0 C (čo pre nejaké pevne zvolené k platí) a ak y je ohraničená, tak globálna diskretizačná chyba pre Eulerovu metódu napred je rádu O(h). Vylepšená polygónová metóda Najskôr spočítame hodnotu yk+1 1 krokom h Ďalej spočítame hodnotu y 2 k+1 napred s krokom h 2 y 1 k+1 = y k + hf(x k, y k ). Eulerovou metódou napred s dvomi krokmi Eulerovej metódy y 2 k+ 1 2 = y k + h 2 f(x k, y k ) y 2 k+1 = y2 k+ 1 2 + h 2 f(x k + h 2, y2 k+ 1 2).
Novú hodnotu y k+1 dostaneme použitím Richardsonovej extrapolácie na hodnoty y 1 k+1 a y2 k+1 tj. y k+1 = 2y 2 k+1 y1 k+1 = y k + hf(x k + h 2, y k + h 2 f(x k, y k )). Algoritmom sa to zvykne zapisovat nasledujúcim spôsobom: k 1 = f(x k, y k ) k 2 = f(x k + h 2, y k + h 2 k 1) y k+1 = y k + hk 2.
Eulerova spätná metóda Prepíšeme rovnicu (1) v bode x = x k+1, pričom deriváciu nahradíme spätnou diferenciou y (x k+1 ) y k+1 y k. h Dostaneme spätnú Eulerovu metódu y k+1 = y k + hf(x k+1, y k+1 ). (5) Spätná Eulerova metóda je implicitná metóda, to znamená, že neznámu hodnotu y k+1 treba na každom kroku určit iteračne (napr. Newtonovou metódou).
Analýza chyby Analýzu globálnej chyby prevedieme analogickým spôsobom ako pri Eulerovej metóde napred, len použijeme nasledujúci Taylorov rozvoj Ak označíme A = 1 dostaneme odhad y(x k ) = y(x k + h) hy (x k + h) + h2 2 y (z k ). ε k+1 B 1 hl e kα 1 A 1 = 1+α pre α = hl = (x k x 0 )L e 1 hl 1 2L 1 hl a B = 1 hl 1 h2 2 max z y (z) max z y (z) h. Vidíme, že ak y je ohraničená, tak globálna diskretizačná chyba pre spätnú Eulerovu metódu je rádu O(h).
Crank-Nicolsonova metóda Vznikne lineárnou kombináciou spätnej Eulerovej metódy a Eulerovej metódy napred y k+1 = y k + h 2 (f(x k, y k ) + f(x k+1, y k+1 )), k = 0, 1, 2,.... Crank-Nicolsonova metóda je opät implicitnou metódou, jej výhodou však je, že má vyšší rád globálnej diskretizačnej chyby. Analýza chyby Z Taylorovho rozvoja máme y(x k+1 ) = y(x k ) + hy (x k ) + h2 2 y (z k ) y(x k ) = y(x k+1 ) hy (x k+1 ) + h2 2 y (z k+1 ).
Odčítaním dostaneme y(x k+1 ) y(x k ) = y(x k ) y(x k+1 ) + h(f(x k, y(x k )) + f(x k+1, y(x k+1 )) Z toho + h2 2 (y (z k ) y (z k+1 )) = = y(x k ) y(x k+1 ) + h(f(x k, y(x k )) + f(x k+1, y(x k+1 )) + h2 2 y (ξ k )(z k z k+1 ), ξ k (z k, z k+1 ). y(x k+1 ) = y(x k )+ h 2 (f(x k, y(x k ))+f(x k+1, y(x k+1 )))+ h2 4 y (ξ k )(z k z k+1 ) Ak toto odčítame od Crank-Nicolsonovej metódy dostaneme y k+1 y(x k+1 ) = y k y(x k ) + h 2 (f(x k, y k ) f(x k, y(x k ))) + + h 2 (f(x k+1, y k+1 ) f(x k+1, y(x k+1 ))) h2 4 y (ξ k )(z k z k+1 ).
Ked že f je lipschitzovsky spojitá ε k+1 ε k + Lh 2 ε k + Lh 2 ε k+1 + h3 4 max y (z). z Označme A = 1 + α, α = Lh 1 Lh, 2 Potom B = h 3 4(1 Lh 2 ) max z ε k+1 A ε k + B y (z). a z tvrdenia pri analýze chyby pre Eulerovu metódu napred do-
staneme ε k B e kα 1 A 1 = e (x k x 0 )L 1 Lh 2 1 4L max z y (z) h 2. Ak y je ohraničená, tak presnost Crank-Nicolsonovej metódy je O(h 2 ).
Runge-Kutta metódy Runge-Kutta metódy sú metódy, ktorých chyba pre h 0 ide rýchlejšie k 0 ako vyššie uvedené chyby Eulerových metód. RK metódy sú navrhnuté v tvare y k+1 = y k + w 1 K 1 + + w m K m, kde w i sú konštanty a K i = hf(x k +α i h, y k + i 1 j=1 β ijk j ), α 1 = 0. a porov- Odvodenie vychádza z Taylorovho rozvoja funkcie y (t) k naním koeficientov pri rovnakých mocninách h.
Odvod me si jednu z metód pre m = 2. Pre jednoduchost miesto y(x k ) budeme písat y k a f k = f(x k, y(x k )). Taylorov rozvoj y k+1 v bode x k má tvar: y k+1 = y k + hy k + h2 2 y k + = y k + i=0 Z rovnice y (x) = f(x, y(x)) = y (t) k Zoberme t = 2: y (2) k h i+1 (i + 1)! y(i+1) k. = df k dx = f k x + f k y k y x = f k x + f k y f k y k+1 = y k + hf k + h2 2 ( fk x + f ) k y f k + O(h 3 ). = d(t 1) f k dx.
Pre m = 2 teda máme w 1 K 1 + w 2 K 2 = hf k + h2 2 ( fk x + f ) k y f k + O(h 3 ) K 1 = hf k K 2 = hf(x k + αh, y k + βk 1 ) = hf(x k + αh, y k + βhf k ) = ( = h f(x k, y k + βhf k ) + αh f(x k, y k + βhf k ) + O(h 2 ) x = = h ( f k + βhf k f k y + O(h2 ) + αh f k x + O(h2 ) + O(h 2 ) ) w 1 hf k +w 2 (hf k +βh 2 f f k k y +αh2 f k x +O(h3 ) =hf k + h2 2 = w 1 + w 2 = 1, w 2 β = 1 2, w 2α = 1 2. ) ) = ( ) fk x + f k y f k +O(h 3 )
V poslednom vzt ahu ak zvoĺıme w 1 = w 2 = 1 2 = α = β = 1 dostaneme y k+1 = y k + h 2 (f k + f(x k + h, y k + hf k )) (nižšie uvedenú Heunovu metódu). Poznámka: Heunova metóda graficky. Uvedieme si len niektoré z tejto triedy metód: metóda 2. rádu je známa ako Heunova metóda (modifikovaná Eulerova metóda) y k+1 = y k + h 2 (f(x k, y k ) + f(x k+1, y k + hf(x k, y k ))
metóda 4. rádu - Runge-Kutta metóda F 1 = f(x k, y k ) F 2 = f(x k + h 2, y k + h 2 F 1) F 3 = f(x k + h 2, y k + h 2 F 2) F 4 = f(x k+1, y k + hf 3 ) y k+1 = y k + h 6 (F 1 + 2F 2 + 2F 3 + F 4 )
metóda 6. rádu - Hut ova metóda F 1 = f(x k, y k ); F 2 = f(x k + h 9, y k + h 9 F 1); F 3 = f(x k + h 6, y k + h 24 (F 1 + 3F 2 )); F 4 = f(x k + h 3, y k + h 6 (F 1 3F 2 + 4F 3 )); F 5 = f(x k + h 2, y k + h 8 ( 5F 1 + 27F 2 24F 3 + 6F 4 )); F 6 = f(x k + 2 h 3, y k + h 9 (221F 1 981F 2 + 867F 3 102F 4 + F 5 )); F 7 = f(x k +56 h,y k+ 48 h 1+678F 2 472F 3 66F 4 +80F 5 +3F 6 )); F 8 = f(x k+1,y k + 82 h 1 2079F 2 +1002F 3 +834F 4 454F 5 93F 6 +72F 7 )) y k+1 = y k + h 840 (41F 1+216F 3 +27F 4 +272F 5 +27F 6 +216F 7 +41F 8 );
Poznámka: Počet vyčíslení funkcie f. Analýza lokálnej chyby Heunovej metódy Odvodíme si lokálnu diskretizačnú chybu pre Heunovu metódu. Predpokladáme, že y k = y(x k ). Pre lokálnu diskretizačnú chybu platí L(x k, h) = 1 h (y(x k+1) y(x k )) 1 h (y k+1 y k ) = 1 h (y(x k+1) y k+1 ). Budeme teda počítat a odhadovat rozdiel na pravej strane. Pri úprave použijeme Taylorov rozvoj y(x k + h) = y(x k ) + hy (x k ) + h2 2! y (x k ) + h3 3! y (z k ).
Takže počítajme y k+1 y(x k+1 ) = y k + h 2 (f(x k, y k ) + f(x k+1, y k + hf(x k, y k ))) y(x k ) hy (x k ) h2 2 y (x k ) h3 3! y (z k ) = = h 2 f(x k, y k ) hf(x k, y k ) + h 2 f(x k, y k + hf(x k, y k )) + + h 2 hf x(x k, y k + hf(x k, y k )) + h 2 O(h2 ) h2 2 (f x(x k, y k ) + f(x k, y k )f y (x k, y k )) h3 3! y (z k ) = = O(h 3 ). Lokálna diskretizačná chyba je teda O(h 2 ).
Poznámka: Porovnanie Runge-Kutta metód s metódami Eulerovho typu - 2 príklady. Poznámka: Aj Runge-Kutta metódy môžu mat problémy so stabilitou - príklad vyrovnávania teploty.
Poznámky k ODR: diskretizačné metódy dávajú diskrétne riešenie, ktoré sa dá previest na spojité pomocou interpolácie alebo splajnom (minulý semester) aj ked lim h 0 L(x, h) = 0, je nutné zvolit vhodný krok h, pretože pre malé h sa môže riešenie znehodnotit zaokrúhl ovacími chybami ako vieme, že nám riešenie konverguje k presnému, ked presné riešenie nepoznáme, ako zvolit vhodné h?
riešenie systémov ODR - analogicky, len miesto y : IR IR, f : IR 2 IR budú y : IR IR n, f : IR n+1 IR n (príklad korist -dravec) rovnice 2. a vyššieho rádu s počiatočnou podmienkou sa prevádzajú na systém ODR
Viackrokové metódy máme problém y (x) = f(x, y(x)) x > x 0 y(x 0 ) = y 0 nech h > 0, x k = x 0 + kh, k = 1, 2, 3,... nech y k je označenie pre aproximáciu riešenia y(x k ) pre N +1-krokovú metódu riešenie y k+1 závisí od riešení v bodoch x k, x k 1,..., x k N (resp. x k+1, x k, x k 1,..., x k N )
platí x k+1 x k+1 x k+1 y(x k+1 ) y(x k ) = y (x)dx = f(x, y(x))dx p(x)dx, x k x k x k (6) kde p(x) je polynóm, ktorý interpoluje funkciu f tj. ak (y k+1 ), y k, y k 1,..., y k N sú aproximácie riešenia v bodoch (x k+1 ), x k, x k 1,..., x k N a označíme f i := f(x i, y i ), i = (k+1), k, k 1,...k N tak p(x i ) = f i, Potom z (6) y k+1 = y k + x k+1 x k i = (k+1), k, k 1,..., k N. p(x)dx. Poznámka: Ked že p je polynóm, tak presne. x k+1 x k p(x)dx vieme spočítat
Poznámka: Podl a toho, či interpolačný polynóm je zostrojený v bodoch x k, x k 1,..., x k N alebo x k+1, x k, x k 1,..., x k N rozlišujeme N + 1-krokovú explicitnú alebo implicitnú metódu (tak ako v prípade jednokrokových metód). Explicitné viackrokové metódy (Adams-Bashforth metódy) interpolačný polynóm je zostrojený v bodoch x k, x k 1,..., x k N Pre N = 0 dostaneme Eulerovu metódu. Pre N = 1 interpolačný polynóm zostrojujeme z bodov (x k 1, f k 1 ), (x k, f f p(x) = p 1 (x) = f k + x x k (f k 1 f k ) = f k x x k (f k 1 f k ) x k 1 x k h
teda y k+1 = y k + x k+1 x k (f k x x k (f k 1 f k ))dx = y k +hf k f k 1 f k h h Dostali sme Adams-Bashforth metódu 2. rádu (2-krokovú) x k+1 x k (x x k ) y k+1 = y k + h 2 (3f k f k 1 ), (7) ktorá má lokálnu diskretizačnú chybu O(h 2 ). Ak označíme f k := f k 1 f k, potom (7) môžeme prepísat y k+1 = y k + hf }{{ k h } 2 f k Euler
Pre N = 2-3. rádu (3-kroková metóda) y k+1 = y k + hf k h 2 f k + 5 6 h 2 f k = y k + h 12 (23f k 16f k 1 + 5f k 2 ). Pre N = 3-4. rádu (4-kroková metóda) y k+1 = y k + h 24 (55f k 59f k 1 + 37f k 2 9f k 3 ). Poznámka: Kol ko krokov taká presnost. Poznámka: Štartovanie metód.
Implicitné viackrokové metódy (Adams-Moulton metódy) interpolačný polynóm je zostrojený v bodoch x k+1, x k, x k 1,..., x k N Pre N = 0 dostaneme Crank-Nicholsonovu metódu tj. presnosti O(h 2 ) Pre N = 2 dostaneme metódu 4.rádu (presnost O(h 4 )) y k+1 = y k + h 24 (9f k+1 + 19f k 5f k 1 + f k 2 ). Poznámka: Adams-Moulton metódy sú implicitné, riešia sa iteračne.
Metódy typu prediktor-korektor - sú kombináciou explicitnej a implicitnej metódy. Označme P (predictor) - nejaká explicitná metóda na predikciu hodnoty, napr. Adams-Bashforthova metóda 4.rádu y (P ) k+1 y (P ) k+1 = y k + h 24 (55f k 59f k 1 + 37f k 2 9f k 3 ) E (evaluation) - vyčíslenie pravej strany f (P ) k+1 = f(x k+1, y (P ) k+1 ) C (corrector) - nejaká implicitná metóda na korekciu hodnoty y k+1, napr. Adams-Moultonova metóda 4.rádu y k+1 = y k + h (P ) (9f 24 k+1 + 19f k 5f k 1 + f k 2 )
Poznámka: Používajú sa P(EC) M alebo P(EC) M E (M 2), najčastejšie PECE. Poznámka: Rád prediktora by mal byt taký istý (alebo o 1 menší) ako rád korektora. Analýza chyby Ukážeme pre Adams-Bashforthovu metódu 2. rádu, ostatné metódy analogicky. A-B metóda 2. rádu y k+1 = y k + h 2 (3f k f k 1 ). Pre metódu y k+1 = y k + hφ(x k, x k 1, y k, y k 1 )
je lokálna diskretizačná chyba tvaru L(x, h) = 1 (y(x + h) y(x)) Φ(x, x h, y(x), y(x h)). h Teda pre A-B metódu 2. rádu hl(x, h) = y(x + h) y(x) h 2 Urobíme Taylorov rozvoj a spočítame (3 f(x, y(x)) }{{} y (x) y(x + h) = y(x) + hy (x) + h2 2 y (x) + O(h 3 ) y (x h) = y (x) hy (x) + O(h 2 ) f(x h, y(x h)) ) } {{ } y (x h) 3y (x) y (x h) = 2y (x) + hy (x) + O(h 2 ).
Potom hl(x, h) = y(x + h) y(x) h 2 (3y (x) y (x h)) = = hy (x) + h2 2 y (x) + O(h 3 ) hy (x) h2 2 y (x) + O(h 3 ) = O(h 3 ) = L(x, h) = O(h 2 ). Poznámka: Globálna diskretizačná chyba sa vo všeobecnosti odvodzuje len vel mi t ažko, ale za istých predpokladov na funkciu f a riešenie y sa dá ukázat, že ak lokálna diskretizačná chyba L(x, h) = O(h p ) tak aj globálna diskretizačná chyba E(h) = O(h p ).
Otázky stability, nestability a stiff rovnice Pri riešení diferenciálnych rovníc je otázka stability vel mi závažná. Ukážeme na príkladoch, čo má vplyv na stabilitu riešenia. Nestabilné úlohy Pr. 1: Uvažujme počiatočnú úlohu y 10y 11y = 0 y(0) = 1 y (0) = 1. Jej presné riešenie je y(x) = exp( x).
Predpokladajme malú zmenu riešenia prvej počiatočnej podmienky y(0) = 1 + ε. Potom presné riešenie y(x) = (1 + 11 ε ε) exp( x) + 12 12 exp(11x). Problém je nestabilný, lebo malá zmena vstupu spôsobila vel kú zmenu výstupu (vid obrázky). presné riešenie ε = 0.01 presné riešenie - červené numerické riešenie - čierne ε = 0 ε = 0.01
Pr. 2: Uvažujme počiatočnú úlohu y = xy(y 2) y(0) = y 0, ktorá má presné riešenie y(x) = Nech y 0 = 2 + ε, potom 2y 0 y 0 +(2 y 0 ) exp(x 2 ). y 0 < 2 y(x) 0 pre x y 0 = 2 y(x) 2 x y 0 > 2 nestabilita riešenia.
presné riešenie ε = 0.1 ε = 0.001 ε = 0 ε = 0.001 presné riešenie - červené numerické riešenie - čierne bodky ε = 0 ε = 0.1 presné riešenie - červené numerické riešenie - čierne bodky Záver: Niektoré úlohy sú nestabilné. presné riešenie - červené numerické riešenie - čierne bodky
Nestabilné metódy Na ilustráciu zoberme obdĺžnikovú (dvojkrokovú) metódu y n+1 = y n 1 + 2hf n. Poznámka: Obdĺžniková metóda graficky. Pr.: Uvažujme počiatočnú úlohu y = 2y + 1 y(0) = 1. Jej presné riešenie je y(x) = 1 2 exp( 2x) + 1 2.
Zmeňme počiatočnú podmienku na y(0) = 1 + ε. Potom presné riešenie sa máličko zmení na y(x) = ( 1 2 + ε) exp( 2x) + 1 2. Táto úloha nie je nestabilná, lebo pre x je y(x) 1 2. Zoberme y 0 = 1, y 1 = y(h) = 1 2 exp( 2h) + 1 2. Obdĺžnikovou metódou dostaneme, že y n pre n. Prečo?
Pozrime sa na to ako na diferenčnú rovnicu y n+1 = y n 1 + 2hf n = 2h( 2y n + 1) + y n 1 = 4hy n + y n 1 + 2h y 0 = 1, y 1 = 1 2 exp( 2h) + 1 2. Homogénna rovnica y n+1 + 4hy n y n 1 = 0. Riešenie navrhneme v tvare y n = λ n. Potom rovnica λ n 1 (λ 2 + 4hλ 1) = 0 má korene λ 1 = 2h + 1 + 4h 2, λ 2 = 2h 1 + 4h 2. Všeobecné riešenie hom. rovnice je c 1 λ n 1 + c 2λ n 2.
Jedno z partikulárnych riešení nehomogénnej rovnice y n+1 = a 2 y n + a 1 y n 1 + a 0 (a 0 = 2h, a 1 = 1, a 2 = 4h) je y n = a 0 1 a 1 a 2 = y n = Potom riešenie nehomogénnej rovnice je y n = c 1 ( 2h + 1 + 4h 2 ) n + c 2 ( 2h Čo sa deje pre n? 2h 1 1 + 4h = 1 2. 1 + 4h 2 ) n + 1 2. (8) Platí ( 2h + 1 + 4h 2 ) n 0 pretože 0 < 2h + 1 + 4h 2 < 1. Člen ( 2h 1 + 4h 2 ) n ± (osciluje).
presné riešenie - červené numerické riešenie - čierne (obdĺžniková metóda) presné riešenie - červené numerické riešenie - modré (Eulerova metóda) Poznámka: Zovšeobecnenie. Majme všeobecnú metódu tvaru y n+1 = m i=1 α i y n+1 i + hφ(x n+1,..., x n+1 m, y n+1,..., y n+1 m ) (9)
(pre obdĺžnikovú metódu y n+1 = y n 1 + 2hf n je Φ(x n+1, x n, x n 1, y n+1, y n, y n 1 ) = 2f n ) Definícia 10 Hovoríme, že metóda (9) je stabilná, ak všetky korene λ i polynómu ρ(λ) λ m α 1 λ m 1... α m sú také, že spĺňajú λ i 1 a všetky korene, pre ktoré λ i = 1 sú jednoduché. Metóda je silne stabilná ak naviac pre m 1 koreňov platí λ i < 1. Niektorí autori používajú pojem slabo stabilná a stabilná metóda pre takto definované stabilnú a silne stabilnú metódu.
Pre prípad obdĺžnikovej metódy je ρ(λ) = λ 2 1 a teda korene ρ(λ) sú ±1. V riešení (8) vidíme 2 zložky - prvá z nich dobre aproximuje presné riešenie, druhá je naviac, je to parazitná zložka, ktorá spôsobí rast oscilácie približného riešenia. Existujú problémy, ktoré aj pre silne stabilné metódy dávajú nestabilné riešenie pre vel ké h. Na druhej strane, ked h bude maličké, tak sa zvýši výpočtová náročnost a výsledok môže byt zat ažený zaokrúhl ovacími chybami. Takéto úlohy sa volajú stiff úlohy alebo úlohy s vel kým tlmením.
Stiff úlohy - úlohy s vel kým tlmením Pr.: Uvažujme úlohu Presné riešenie je y = 100y + 100, y(0) = y 0. y(x) = (y 0 1) exp( 100x) + 1. Riešenie je stabilné, lebo ak počiatočnú podmienku zmeníme o ε na y(0) = y 0 + ε, tak presné riešenie sa zmení o ε exp( 100x). Riešme Eulerovou metódou napred. Dostaneme presné riešenie
diferenčnej rovnice y n = y n 1 + h( 100y n 1 + 100) = (1 100h)y n 1 + 100h = = (1 100h)(y n 2 + h( 100y n 2 + 100)) + 100h = = (1 100h) 2 y n 2 + (1 100h)100h + 100h = = = (1 100h) n 1 (1 100h)n y 0 + 100h 1 1 100h = = (1 100h) n (y 0 1) + 1. Presné riešenie diferenciálnej rovnice obsahuje člen exp( 100x), ktorý s rastúcim x ide vel mi rýchlo k 0. Napr. ak zoberieme y(0) = y 0 = 2, tak y(0.1) 1 + 5 10 5. Takže na začiatku potrebujeme vel mi malý krok h, aby sme túto zmenu zachytili: Ak h je také, že 1 100h > 1 tak y n. Aby 1 100h < 1 je treba zobrat h < 0.02. Aby však táto metóda konvergovala k presnému riešeniu potrebujeme, aby 0 < 1 100h = h < 0.01 (vid obrázky).
h = 0.02 h = 0.015 h = 0.0099 h = 0.006 6 Vel ká zmena sa však deje len na začiatku, potom už riešenie
nevykazuje vel ké zmeny, preto je zbytočné mat malý krok h aj po niekol kých časových krokoch. Preto sa takéto úlohy nazývajú úlohy s vel kým tlmením. Použime teraz na riešenie spätnú Eulerovu metódu, ktorá je implicitná tj. Dostaneme diferenčnú rovnicu ktorej presné riešenie je a pre y 0 = 2 máme y n+1 = y n + h( 100y n+1 + 100). y n+1 = (1 + 100h) 1 (y n + 100h), y n = (y 0 1)(1 + 100h) n + 1 y n = 1 + 1 1 pre x = nh a h. (1 + 100h) n
h = 0.025 h = 0.006 6 V tomto príklade y n+1 sme nepočítali iteračne, pretože f je v y lineárna, vo všeobecnosti však y n+1 sa určuje iteračne. Funkcia (1 100h) n z explicitnej schémy vel mi zle aproximuje funkciu exp( 100x) pre h > 0.02. Naopak funkcia 1 (1+100h) n z implicitnej schémy vel mi dobre aproximuje funkciu exp( 100x) pre h. Záver: Na riešenie stiff úloh sa používajú implicitné metódy.