Technická univerzita v Liberci Fakulta mechatroniky a mezioborových inženýrských studií Poznámky k předmětu APLIKOVANÁ MATEMATIKA Část soustavy obyčejných diferenciálních rovnic J. ŠEMBERA Ústav nových technologií a aplikované informatiky Liberec 2006-7
Obsah 1 Soustavy ODR 2 1.1 Soustava ODR a Cauchyova úloha.................. 2 1.2 Lineární soustava ODR........................ 7 1.2.1 Vlastnosti fundamentální matice a standardní fundamentální matice.......................... 10 1.2.2 Nehomogenní lineární soustava obyčejných diferenciálních rovnic............................. 10 1.2.3 Výpočet fundamentální matice řešení homogenních lineárních soustav obyčejných diferenciálních rovnic s konstatními koeficienty........................ 11 1.2.4 Putzerova metoda....................... 12 1.2.5 Metoda rozvoje v mocninnou řadu............. 13 1.3 Numerické řešení ODR s počátečními podmínkami......... 15 1.3.1 Eulerova metoda....................... 17 1.3.2 Obecná jednokroková metoda................ 21 1.3.3 Runge-Kuttovy metody................... 22 1.4 Numerické řešení ODR s okrajovými podmínkami......... 29 1.4.1 Metoda střelby........................ 30 1.4.2 Metoda střelby na více cílů.................. 34 1.4.3 Metoda sítí.......................... 37 Literatura 47 1
Kapitola 1 Soustavy obyčejných diferenciálních rovnic 1.1 Soustava obyčejných diferenciálních rovnic prvního řádu a Cauchyova úloha Definice 1.1 Nechť I je otevřený neprázdný interval v R 1, nechť H je oblast v R n a G = I H. Nechť je dána funkce f : G R n. Řešením soustavy obyčejných diferenciálních rovnic 1. řádu ẋ 1 = f 1 (t, x 1, x 2,..., x n ), ẋ 2 = f 2 (t, x 1, x 2,..., x n ),... ẋ n = f n (t, x 1, x 2,..., x n ) [kterou lze stručně zapsat ve vektorovém tvaru (1.1) x = f(t, x)] (1.2) nazýváme reálnou vektorovou funkci u = (u 1, u 2,..., u n ) T mající tyto vlastnosti: 1. Funkce u je definována na nějakém nedegenerovaném podintervalu J intervalu I. 2. Graf funkce u leží celý v definičním oboru funkce f, tj. platí (t, u 1 (t), u 2 (t),..., u n (t)) G pro všechna t J. 3. Funkce u vyhovuje soustavě (1.1), tj. pro všechna t J platí u 1 = f 1 (t, u 1, u 2,..., u n ), u 2 = f 2 (t, u 1, u 2,..., u n ),... u n = f n (t, u 1, u 2,..., u n ) 2
1.1. SOUSTAVA ODR A CAUCHYOVA ÚLOHA 3 [nebo stručně ve vektorovém tvaru kde u = f(t, u)], u i = du i(t), i = 1, 2,..., n. dt Příklad 1.1 Ukažte, že vektorová funkce c 1 e 2t + c 2 e 2t c 3 e t u(t) = c 1 e 2t c 2 e 2t c 3 e t, t R 1 2c 1 e 2t + c 3 e t je pro každou volbu reálných konstant c 1, c 2, c 3 řešením soustavy ẋ 1 = x 1 + x 2 + x 3, ẋ 2 = x 1 x 2 + x 3, ẋ 3 = x 1 + x 2 + x 3. Příklad 1.2 Ukažte, že vektorová funkce ( c1 t cos[(1 t u(t) = 2 ) 3/2 ) c 2 ] c 1 t sin[(1 t 2 ) 3/2, t (0, 1) c 2 ] je pro každou volbu reálných konstant c 1, c 2 řešením soustavy 1 ẋ 1 = x t 1 + 3t (1 t 2 )x 2, ẋ 2 = 3t (1 t 2 1 )x 1 + x t 2. Definice 1.2 Nechť I = (a, b) je otevřený neprázdný interval v R 1, nechť H je oblast v R n, nechť (τ, ξ) je pevně zvolený bod v oblasti G = I H a na oblasti G je definována vektorová funkce f : G R n. Cauchyovou úlohou ẋ 1 = f 1 (t, x 1, x 2,..., x n ), x 1 (τ) = ξ 1 ẋ 2 = f 2 (t, x 1, x 2,..., x n ), x 2 (τ) = ξ 2... ẋ n = f n (t, x 1, x 2,..., x n ), x n (τ) = ξ n (1.3) [nebo ve vektorovém zápisu x = f(t, x), x(τ) = ξ] (1.4) pro soustavu obyčejných diferenciálních rovnic 1. řádu x = f(t, x) (1.5) nazýváme úlohu najít takové řešení u soustavy (1.5), které je definováno na intervalu J obsahujícím bot τ a pro které platí u(τ) = ξ. (1.6)
4 KAPITOLA 1. SOUSTAVY ODR Příklad 1.3 Ukažte, že funkce u(t) = ξ 1 ξ(t τ), t (, τ + 1 ξ ) je řešením Cauchyovy úlohy ẋ = x 2, x(τ) = ξ, ξ > 0. Příklad 1.4 Ukažte, že vektorová funkce ( (2ξ1 + ξ u(t) = 2 )e 3(t τ) + (3ξ 1 + ξ 2 )e 2(t τ) (6ξ 1 + 3ξ 2 )e 3(t τ) (6ξ 1 + 2ξ 2 )e 2(t τ) ), t R 1 je řešením Cauchyovy úlohy ẋ 1 = x 2, x 1 (τ) = ξ 1, ẋ 2 = 6x 1 5x 2, x 2 (τ) = ξ 2. Příklad 1.5 Nechť q a h jsou reálné funkce spojité na nějakém otevřeném intervalu I. Označme Q(t, τ) = t τ q(s)ds, H(t, τ) = t τ h(s)ds. Ukažte, že pro dané τ I a ξ = (ξ 1, ξ 2 ) T R 2 je vektorová funkce ( e u(t) = Q(t,τ) ) [ξ 1 cos H(t, τ) + ξ 2 sin H(t, τ)] e Q(t,τ), t R 1 [ ξ 1 sin H(t, τ) + ξ 2 cos H(t, τ)] pro všechna t I řešením Cauchyovy úlohy ẋ 1 = q(t)x 1 + h(t)x 2, x 1 (τ) = ξ 1, ẋ 2 = h(t)x 1 + q(t)x 2, x 2 (τ) = ξ 2. Věta 1.1 Buď f funkce spojitá na oblasti G = I H z definice 1.2 a nechť je dán bod (τ, ξ) G. Řešení Cauchyovy úlohy pro soustavu obyčejných diferenciálních rovnic 1. řádu x = f(t, x) s počáteční podmínkou x(τ) = ξ je funkce u s následujícími vlastnostmi: 1. Funkce u je definovaná a spojitá na nějakém nedegenerovaném intervalu J I. 2. Graf funkce u leží celý v definičním oboru funkce f. 3. Pro všechna t J platí u(t) = ξ + t τ f(s, u(s))ds.
1.1. SOUSTAVA ODR A CAUCHYOVA ÚLOHA 5 Definice 1.3 Říkáme, že Cauchyova úloha x = f(t, x), x(τ) = ξ (1.7) je jednoznačně řešitelná právě tehdy, když existuje otevřený interval J R 1 obsahující bod τ tak, že pro každá dvě řešení u 1, u 2 úlohy (1.7) definovaná po řadě na intervalech J 1, J 2 pro všechna t J 1 J 2 J platí rovnost u 1 (t) = u 2 (t). Definice 1.4 Nechť G je oblast v R 1 R n. Vektorová funkce f : g R n se nazývá lipschitzovská vzhledem k proměnné x v množině G s konstantou L právě tehdy, když pro každou dvojici bodů (t, x), (t, y) G platí f(t, x) f(t, y) L x y. (1.8) V podmínce (1.8) můžeme za normu zvolit kteroukoliv normu v R n ekvivalentní Euklidovské normě 2. Důležitou třídu funkcí lipschitzovských vzhledem k proměnné x v oblasti G R 1 R n tvoří funkce mající v oblasti G omezené všechny své první parciální derivace vzhledem k proměnným x 1, x 2,..., x n. Že je tato množina funkcí podmnožinou funkcí lipschitzovských vzhledem k proměnné x v oblasti G R 1 R n dokážeme následujícím postupem: Nechť existuje konstanta M > 0 tak, že pro všechna i, j = 1, 2,..., n a všechna (t, x 1, x 2,..., x n ) G platí f 1 (t, x 1, x 2,..., x n ) x j < M. Podle věty o střední hodnotě existuje ke každé funkci f i, kde i = 1, 2,..., n, a každé dvojici (t, x) G, (t, y) G bod (t, z) G takový, že platí n f i (t, x 1, x 2,..., x n ) f i (t, y 1, y 2,..., y n ) = (x j y j ) f i (t, z 1, z 2,..., z n ) j=1 x j Z posledních dvou vztahů plyne f i (t, x 1, x 2,..., x n ) f i (t, y 1, y 2,..., y n ) n f i (x j y j ) (t, z 1, z 2,..., z n ) x j < < j=1 n j=1 (x j y j )M = M x y 1. Sečteme-li poslední vztah přes i od 1 do n, dostáváme nerovnost f(t, x 1, x 2,..., x n ) f(t, y 1, y 2,..., y n ) 1 < nm x y 1.
6 KAPITOLA 1. SOUSTAVY ODR Věta 1.2 Nechť je dána Cauchyova úloha x = f(t, x), x(τ) = ξ (1.9) v oblasti G R 1 R n a nechť existují čísla a a b taková, že funkce f je spojitá na množině R = {(t, x) G; t τ a, x ξ b}. Označme M = max (t, x) R f(t, x), α = min { a, } b. M Pak existuje řešení u(t; τ, ξ) Cauchyovy úlohy (1.9), definované a spojitě diferencovatelné na intervalu τ α, τ + α. Je-li navíc funkce f lipschitzovská vzhledem k proměnné x v oblasti R, pak Cauchyova úloha (1.9) je jednoznačně řešitelná, a tedy její řešení u(t; τ, ξ), definované na intervalu τ α, τ + α, je jednoznačně určeno počáteční podmínkou x(τ) = ξ. Definice 1.5 Nechť je dán otevřený interval I R 1 a oblast H R n. Označme G = I H. Nechť je dána funkce f : G R 1 a bod (τ, ξ 1, ξ 2,..., ξ n ) G. Cauchyovou úlohou pro obyčejnou diferenciální rovnici n-tého řádu x (n) = f(t, x, ẋ, ẍ,..., x (n 1) ) (1.10) nazýváme úlohu najít reálnou funkci u mající tyto vlastnosti: 1. Funkce u je definovaná a n-krát spojitě diferencovatelná na nějakém nedegenerovaném intervalu J I. 2. Platí (t, u(t), u(t),..., u (n) (t)) G pro všechna t J. 3. Funkce u splňuje rovnost u (n) (t) = f(t, u(t), u(t),..., u (n 1) (t)) pro všechna t J. 4. Počáteční okamžik τ leží v J a řešení u a jeho derivace až do řádu n 1 včetně nabývají v bodě τ předepsaných hodnot, tj. platí τ J a u(τ) = ξ 1, u(τ) = ξ 2,..., u (n 1) (τ) = ξ n. Cauchyovu úlohu definovanou definicí 1.5 zapisujeme ve tvaru x (n) = f(t, x, ẋ, ẍ,..., x (n 1) ), x (k 1) (τ) = ξ k, k = 1, 2,..., n. (1.11) Funkci u mající vlastnosti 1 až 4 z definice 1.5 nazýváme řešením Cauchyovy úlohy (1.11). Má-li funkce u pouze vlastnosti 1 až 3, nazýváme ji řešením obyčejné diferenciální rovnice (1.10).
1.2. LINEÁRNÍ SOUSTAVA ODR 7 Označíme-li pak platí x 1 = x, x 2 = ẋ, x 3 = ẍ,..., x k+1 = x (k),..., x n = x (n 1), ẋ 1 = x 2, x 1 (τ) = ξ 1, ẋ 2 = x 3, x 2 (τ) = ξ 2,... ẋ n 1 = x n, x n 1 (τ) = ξ n 1, ẋ n = f(t, x 1, x 2,..., x n ), x n (τ) = ξ n. (1.12) To je Cauchyova úloha pro soustavu obyčejných diferenciálních rovnic 1. řádu (1.3), kde f 1 (t, x 1, x 2,..., x n ) = x 2, f 2 (t, x 1, x 2,..., x n ) = x 3,... f n 1 (t, x 1, x 2,..., x n ) = x n, f n (t, x 1, x 2,..., x n ) = f(t, x 1, x 2,..., x n ). Věta 1.3 Mezi Cauchyovými úlohami (1.11) a (1.12) platí tento vztah: Je-li funkce u řešením Cauchyovy úlohy (1.11), pak vektorová funkce u = (u, u, ü,..., u (n 1) ) je řešením Cauchyovy úlohy (1.12). Je-li vektorová funkce v = (v 1, v 2,..., v n ) řešením Cauchyovy úlohy (1.12), pak je v 2 = v 1, v 3 = v 1,..., v n = v (n 1) 1 a funkce v 1 je řešením Cauchyovy úlohy (1.11). 1.2 Lineární soustava obyčejných diferenciálních rovnic 1. řádu Definice 1.6 Nechť I je otevřený interval v R 1, G = I R n, f : G R n. Říkáme, že soustava obyčejných diferenciálních rovnic x = f(t, x) je lineární právě tehdy, když existuje maticová funkce A typu n n a vektorová funkce b typu n 1 A(t) = a 11 (t) a 12 (t)... a 1n (t) a 21 (t) a 22 (t)... a 2n (t)............ a n1 (t) a n2 (t)... a nn (t) taková, že platí pro všechna (t, x) G, b(t) = b 1 (t) b 2 (t)... b n (t), (1.13) f(t x) = A(t) x + b(t). (1.14)
8 KAPITOLA 1. SOUSTAVY ODR Matici A nazýváme matice lineární soustavy a vektorovou funkci b nazýváme pravá strana lineární soustavy. Říkáme, že lineární soustava je homogenní, právě tehdy, pokud pro každé i = 1, 2,..., n a všechna t I je b i (t) = 0. V opačném případě soustavu nazýváme nehomogenní. Lineární soustavu obyčejných diferenciálních rovnic 1. řádu zapisujeme ve tvaru ẋ 1 = a 11 (t)x 1 + a 12 (t)x 2 +... + a 1n (t)x n + b 1 (t), ẋ 2 = a 21 (t)x 1 + a 22 (t)x 2 +... + a 2n (t)x n + b 2 (t),... ẋ n = a n1 (t)x 1 + a n2 (t)x 2 +... + a nn (t)x n + b n (t) nebo stručně ve vektorovém tvaru (1.15) ẋ = A(t) x + b(t). (1.16) Věta 1.4 Nechť maticová funkce A a vektorová funkce b jsou spojité na otevřeném intervalu I. Pak pro každý bod (τ, ξ) G = I R n má Cauchyova úloha ẋ = A(t) x + b(t), x(τ) = ξ (1.17) právě jedno řešení u(t; τ, ξ), které je definované na celém intervalu I. Důkaz vyplývá z přímé aplikace věty 1.2. Nyní se budeme podrobněji zabývat homogenní lineární Cauchyovou úlohou x = A(t) x, x(τ) = ξ. (1.18) Věta 1.5 Nechť maticová funkce A a je spojitá na otevřeném intervalu I a nechť τ I je libovolné. Pak množina U(τ, I) = { u( ; τ, ξ); ξ R n } všech řešení homogenní Cauchyovy úlohy (1.18) definovaných na celém intervalu I pro všechny počáteční hodnoty ξ R n tvoří n-rozměrný vektorový prostor. Ke každému n-rozměrnému vektorovému prostoru můžeme najít n prvkovou bázi lineárně nezávislých vektorů generující tento vektorový prostor. Definice 1.7 Říkáme, že vektorové funkce v 1 = v 11 v 12... v 1n, v 2 = v 21 v 22... v 2n,..., v n = v n1 v n2... v nn (1.19) tvoří bázi řešení (nebo fundamentální systém řešení) soustavy x = A(t) x, t I, (1.20)
1.2. LINEÁRNÍ SOUSTAVA ODR 9 právě tehdy, když funkce v 1, v 2,..., v n jsou lineárně nezávislými řešeními soustavy (1.20) na intervalu I. Je-li (1.19) báze řešení soustavy (1.20), pak n-parametrický systém řešení soustavy (1.20) definovaný předpisem v(t, c 1, c 2,..., c n ) = c 1 v 1 (t) + c 2 v 2 (t) +... + c n v n (t), t I, kde c 1, c 2,..., c n jsou reálné parametry, se nazývá obecný tvar řešení soustavy (1.20). Je-li (1.19) báze řešení soustavy (1.20), pak maticová funkce V definovaná předpisem V(t) = v 11 (t), v 21 (t),... v n1 (t) v 12 (t), v 22 (t),... v n2 (t)... v 1n (t), v 2n (t),... v nn (t), t I se nazývá fundamentální matice soustavy (1.20). Je-li dána homogenní Cauchyova úloha x = A(t) x, x(τ) = ξ, (1.21) pak n lineárně nezávislých řešení této úlohy u( ; τ, e 1 ), u( ; τ, e 2 ),..., u( ; τ, e n ), (1.22) kde e i je i-tý vektor standardní báze R n, tedy 1 0 0 0 1 e 1 =, e 2 =,..., e n = 0., 0. 0. 0 0 0 1 nazýváme standarní bází řešení (také standardním fundamentálním systémem řešení) Cauchyovy úlohy (1.21). Fundamentální matici soustavy (1.20) sestavenou ze standardní báze řešení (1.22), tj. maticovou funkci U(, τ), definovanou předpisem U(t, τ) = u 1 (t; τ, e 1 ), u 1 (t; τ, e 2 ),... u 1 (t; τ, e n ) u 2 (t; τ, e 1 ), u 2 (t; τ, e 2 ),... u 2 (t; τ, e n )... u n (t; τ, e 1 ), u n (t; τ, e 2 ),... u n (t; τ, e n ), t I nazýváme standardní fundamentální maticí (také maticí přechodu) Cauchyovy úlohy (1.21).
10 KAPITOLA 1. SOUSTAVY ODR Ze způsobu, jak je standardní fundamentální matice sestavena, přímo vyplývá, že řešení homogenní Cauchyovy úlohy (1.21) pro konkrétní volbu hodnoty počáteční podmínky ξ při znalosti standardní fundamentální matice U(t, τ) splňuje rovnost u(t; τ, ξ) = U(t, τ) ξ, t I. (1.23) 1.2.1 Vlastnosti fundamentální matice a standardní fundamentální matice Věta 1.6 Nechť V je fundamentální matice soustavy x = A(t) x (1.24) definovaná na intervalu I. Pak platí: 1. V(t) = A(t)V(t) pro všechna t I. 2. det V(t) = (det V(τ))e t τ n i=1(a ii (s)ds) pro všechna t, τ I. 3. Je-li C regulární reálná konstantní matice typu (n, n), pak také maticová funkce W(t) = V(t)C je fundamentální matice soustavy (1.24). Věta 1.7 Nechť U(t, τ) je standardní fundamentální matice Cauchyovy úlohy x = A(t) x, pro t, τ I. Pak platí: x(τ) = ξ 1. U(τ, τ) je jednotková matice pro všechna τ I. 2. U(t, τ) je regulární matice (tj. det U(t, τ) 0) pro všechna t, τ I. 3. U(t, τ)u(τ, s) = U(t, s) pro všechna t, τ, s I. 4. [U(t, τ)] 1 = U(τ, t) pro všechna t, τ I. 1.2.2 Nehomogenní lineární soustava obyčejných diferenciálních rovnic Věta 1.8 Nechť maticová funkce A a vektorová funkce b jsou spojité na nějakém otevřeném intervalu I a nechť τ I je libovolné. Pak Cauchyova úloha x = A(t) x + b(t), x(τ) = ξ má pro každý bod ξ R n právě jedno řešení, které je na celém intervalu I definováno předpisem u(t; τ, ξ) = U(t, τ) ξ + t τ U(t, s) b(s)ds, t I. (1.25)
1.2. LINEÁRNÍ SOUSTAVA ODR 11 1.2.3 Výpočet fundamentální matice řešení homogenních lineárních soustav obyčejných diferenciálních rovnic s konstatními koeficienty Dále se zaměříme na případ homogenních lineárních soustav s konstatními koeficienty, tj. soustav, které lze zapsat ve tvaru x = A x, (1.26) kde A je konstantní reálná čtvercová matice. Protože konstatní maticová funkce A je spojitá na celé množině reálných čísel R, má Cauchyova úloha x = A x, x(τ) = ξ (1.27) pro každý počáteční bod (τ, ξ) R R n právě jedno řešení u(t; τ, ξ) definované na celé množině R. Věta 1.9 Funkce u(t; τ, ξ) je řešením Cauchyovy úlohy x = A x, x(τ) = ξ (1.28) právě tehdy, je-li funkce u(t; 0, ξ) řešením Cauchyovy úlohy x = A x, x(0) = ξ (1.29) a pro tato dvě řešení platí rovnost u(t; τ, ξ) = u(t τ; 0, ξ) pro všechna t R. Důsledkem předchozí věty je rovnost U(t, τ) = U(t τ, 0) =: U(t τ), t, τ R (1.30) Věta 1.10 Vektorová funkce v definovaná předpisem v(t) = ζe λt, t R, ζ 0 (1.31) je řešením soustavy x = A x (1.32) právě tehdy, je-li λ reálným vlastním číslem matice A a vektor ζ vlastním vektorem příslušným k λ. Vektorové funkce u a v definovaná předpisy u(t) = ( g cos ωt h sin ωt)e σt v(t) = ( g sin ωt + h cos ωt)e σt t R, ζ 0 (1.33) jsou řešeními soustavy (1.32) právě tehdy, je-li λ = σ + iω komplexním vlastním číslem matice A a vektor ζ = g + i h vlastním vektorem příslušným k λ.
12 KAPITOLA 1. SOUSTAVY ODR Věta 1.11 Nechť λ je k-násobným reálným vlastním číslem matice A, jemuž přísluší k lineárně nezávislých vlastních vektorů ζ 1, ζ 2,..., ζ k. Pak množina všech řešení soustavy (1.32) tvaru u(t) = ηe λt, t R (1.34) tvoří k-rozměrný podprostor vektorového prostoru všech řešení soustavy (1.32). Za bázi tohoto podprostoru můžeme zvolit vektorové funkce v 1 (t) = ζ 1 e λt, v 2 (t) = ζ 2 e λt,..., v k (t) = ζ k e λt, t R. (1.35) Věta 1.12 Nechť λ = σ + iω je komplexním k-násobným vlastním číslem matice A, jemuž přísluší k lineárně nezávislých vlastních vektorů ζ 1 = g 1 + i h 1, ζ 2 = g 2 + i h 2,..., ζ k = g k + i h k. Pak množina všech řešení soustavy (1.32) tvaru u(t) = ( a cos ωt + b sin ωt)e σt t R, a, b R n (1.36) tvoří 2k-rozměrný podprostor vektorového prostoru všech řešení soustavy (1.32). Za bázi tohoto podprostoru můžeme zvolit vektorové funkce u 1 (t) = ( g 1 cos ωt h 1 sin ωt)e σt v 1 (t) = ( g 1 sin ωt + h 1 cos ωt)e σt u 2 (t) = ( g 2 cos ωt h 2 sin ωt)e σt v 2 (t) = ( g 2 sin ωt + h 2 cos ωt)e σt..., u k (t) = ( g k cos ωt h k sin ωt)e σt v k (t) = ( g k sin ωt + h k cos ωt)e σt t R. (1.37) Pro případ, kdy některému k-násobnému vlastnímu číslu λ matice A přísluší méně než k lineárně nezávislých vektorů, nelze předchozí věty použít pro nalezení fundamentálního systému soustavy. Věty vztahující se k tomuto případu lze nalézt např. v [4]. Pro určení standardní fundamentální matice homogenních systémů s konstantními koeficienty můžeme použít jednu z metod, kterým věnujeme následující odstavce. 1.2.4 Putzerova metoda Věta 1.13 Nechť λ 1, λ 2,..., λ n jsou všechna vlastní čísla matice A zapsaná v libovolném pořadí, přičemž každé vlastní číslo je v posloupnosti zapsáno tolikrát, kolik je jeho násobnost. Sestavme posloupnost n matic P 0 = E, kde E je jednotková matice, P 1 = (A λ 1 E)P 0 = A λ 1 E,...
1.2. LINEÁRNÍ SOUSTAVA ODR 13 P j = (A λ j E)P j 1 = (A λ j E)(A λ j 1 E) (A λ 1 E),... P n 1 = (A λ n 1 E)P n 2 = (A λ n 1 E)(A λ n 2 E) (A λ 1 E), a posloupnost n funkcí q j (t), které jsou řešeními n Cauchyových úloh q 1 = λ 1 q 1, q 1 (0) = 1, q 2 = λ 2 q 2 + q 1, q 2 (0) = 0,... q j = λ j q j + q j 1, q j (0) = 0,... q n = λ n q n + q n 1, q n (0) = 0. Potom matice (1.38) U(t) = q 1 (t)p 0 + q 2 (t)p 1 +... + q n (t)p n 1, t R (1.39) je standardní fundamentální maticí Cauchyovy úlohy x = A x, x(0) = ξ. (1.40) 1.2.5 Metoda rozvoje v mocninnou řadu Věta 1.14 Standardní fundamentální matici U(t) soustavy x = A x lze psát ve tvaru U(t) = E + At + (At)2 +... + (At)k (At) k +... =, t R (1.41) 2! k! k! Důkaz: Pro takto definovanou matici U zřejmě platí U(0) = E. Pro její derivaci platí k=0 k=0 U(t) = 0 + A + A 2 t + A3 t 2 +... + Ak t k 1 2! (k 1)! +... = (At) k = A = AU(t), t R k! U(t) je tedy standardní fundamentální matice uvedené soustavy. Q.E.D. Z tvrzení minulé věty je patrné, proč se pro standarní fundamentální matici používá také symbol e At. Věta 1.15 Matice A vyhovuje své charakteristické rovnici, tedy kde A n + c 1 A n 1 +... + c n 1 A + c n E = 0, (1.42) det(a λe) = ( 1) n (λ n + c 1 λ n 1 +... + c n 1 λ + c n ) = 0 (1.43) je charakteristická rovnice matice A.
14 KAPITOLA 1. SOUSTAVY ODR Z minulé věty vyplývá, že matice A n je lineární kombinací matic E, A, A 2,..., A n 1. To znamená, že existují funkce b 0 (t), b 1 (t),..., b n 1 (t) takové, že platí e At = U(t) = b 0 (t)e + b 1 (t)a +... + b n 1 (t)a n 1, t R. (1.44) Uvědomme si, že také každé vlastní číslo λ i matice A splňuje její charakteristickou rovnici, a tedy platí λ n i + c 1 λ n 1 i +... + c n 1 λ i + c n = 0, (1.45) a tedy λ n i zkombinujeme z hodnot 1, λ i, λ 2 i,..., λi n 1, stejnými koeficienty, jako jsme získali A n kombinací matic E, A, A 2,..., A n 1. Proto bude také platit e λit (λ i t) k = k! k=0 = b 0 (t) + b 1 (t)λ i +... + b n 1 (t)λ n 1 i, t R, (1.46) kde b 0, b 1,..., b n jsou totožné s funkcemi b 0, b 1,..., b n ze vztahu (1.44). Má-li tedy matice A n navzájem různých vlastních čísel λ 1, λ 2,..., λ n, pak funkce b 0, b 1,..., b n můžeme hledat jako řešení soustavy n lineárně nezávislých algebraických rovnic b 0 (t) + b 1 (t)λ 1 +... + b n 1 (t)λ n 1 1 = e λ1t, b 0 (t) + b 1 (t)λ 2 +... + b n 1 (t)λ n 1 2 = e λ2t,... b 0 (t) + b 1 (t)λ n +... + b n 1 (t)λ n 1 n = e λnt. (1.47) Má-li tedy matice A některé vlastní číslo λ i vícenásobné, dosazujeme pro něj do předchozí soustavy kromě vztahu (1.46) také jeho derivace podle proměnné λ i (tolik, aby rovnic příslušejících λ i bylo tolik, kolik je jeho násobnost - označme ji k). k rovnic pro λ i pak bude mít tvar b 0 (t) + b 1 (t)λ i +... + b n 1 (t)λi n 1 = e λit, b 1 (t) +... + (n 1)b n 1 (t)λi n 2 = te λit, (1.48)... (k 1)!b k 1 (t)λ i +... + (n k) (n 1)b n 1 (t)λi n k 1 = t k 1 e λit. Sestavíme-li soustavu rovnic takto pro každé vlastní číslo, dostaneme systém n lineárně nezávislých algebraických rovnic pro n neznámých funkcí b 0, b 1,..., b n. Po jejím vyřešení a dosazení do rovnice (1.44) dostaneme hledanou standardní fundamentální matici.
1.3. NUMERICKÉ ŘEŠENÍ ODR S POČÁTEČNÍMI PODMÍNKAMI 15 1.3 Numerické řešení obyčejných diferenciálních rovnic s počátečními podmínkami Úlohou s počátečními podmínkami pro soustavu m obyčejných diferenciálních rovnic prvního řádu ẋ 1 = f 1 (t, x 1,..., x m ), ẋ 2 = f 2 (t, x 2,..., x m ),. ẋ m = f m (t, x 1,..., x m ) (1.49) rozumíme úlohu najít m funkcí x 1 (t),..., x m (t) definovaných, a spojitě diferencovatelných v intervalu a, b takových, že vyhovují rovnicím (1.49) a splňují počáteční podmínky x 1 (τ) = ξ 1, x 2 (τ) = ξ 2,. x m (τ) = ξ m, (1.50) kde ξ = (ξ 1,..., ξ m ) T je daný vektor a τ je pevně zvolený bod z intervalu a, b. Často bývají počáteční podmínky předepisovány v bodě τ = a, tedy v levém krajním bodě řešeného intervalu, odtud název počáteční. Počáteční úlohu pro obyčejnou diferenciální rovnici m-tého řádu x (m) = f(t, x, ẋ,..., x (m 1) ) (1.51) s počátečními podmínkami x(τ) = ξ 1, ẋ(τ) = ξ 2,. x (m 1) (τ) = ξ m, lze zavedením sady substitucí x 1 = x, x 2 = ẋ,. x m = x (m 1) převést přesně na tvar (1.49), (1.50), přičemž bude f 1 (t, x 1,..., x m ) = x 2, f 2 (t, x 1,..., x m ) = x 3,. f m 1 (t, x 1,..., x m ) = x m f m (t, x 1,..., x m ) = f(t, x 1,..., x m ). (1.52)
16 KAPITOLA 1. SOUSTAVY ODR Rovnice (1.49) a (1.50) lze zapsat ve vektorovém tvaru x = f(t, x), x(τ) = ξ, kde x = (x 1,..., x m ) T a f = (f 1,..., f m ) T. Nadále budeme s touto soustavou pracovat jako s jednou rovnicí, označení vektorů vynecháme. V následující kapitole tedy budeme řešit počáteční úlohu ve tvaru ẋ = f(t, x), x(τ) = ξ, (1.53) přičemž vzhledem k výše uvedeným poznámkám zastupuje tato úloha nejen počáteční úlohu jedné obyčejné diferenciální rovnice prvního řádu, ale i obyčejné diferenciální rovnice vyššího řádu nebo soustavy obyčejných diferenciálních rovnic prvního řádu. Než přistoupíme ke studiu konkrétních metod poznamenejme, že přibližné řešení úlohy (1.53) lze hledat několika principiálně odlišnými postupy. Zde zmiňme především v teorii diferenciálních rovnic užitečnou, avšak pro numerické řešení neefektivní, metodu postupných aproximací založenou na integrální variantě rovnic (1.53) x(t) = ξ + t a f(s, x(s))ds a konstrukci postupných aproximací funkce x(t) podle vztahu x n+1 (t) = ξ + t a f(s, x n (s))ds. My se budeme zabývat jiným typem metod, tzv. diskrétními metodami, založenými na hledání přibližných hodnot funkce x(t) pouze v konečném počtu bodů t i z intervalu a, b. Omezíme se na ekvidistantní volbu bodů t i, tj. t i = a + ih, i = 0, 1,... Konstantu h označujeme termínem integrační krok. Dále, abychom měli zajištěnu existenci jednoznačného řešení úlohy (1.53), budeme požadovat následující vlastnosti funkce pravé strany f: (i) f je definovaná a spojitá jako funkce dvou proměnných v pásu (t, x) a, b (, ) a (ii) f je v tomto pásu lipschitzovská vzhledem ke druhému parametru s konstantou L nezávislou na t, tj. existuje L tak, že pro každé t a, b, každé x a každé y je f(t, x) f(t, y) L x y. (1.54) Tyto podmínky jsou pro existenci jednoznačného řešení postačující, nikoliv nutné. Pro jednoduchost však budeme předpokládat jejich splnění.
1.3. NUMERICKÉ ŘEŠENÍ ODR S POČÁTEČNÍMI PODMÍNKAMI 17 1.3.1 Eulerova metoda Představíme-li si funkci f jako směrové pole ve fázovém prostoru (t, x) a, b (, ), je grafem řešení počáteční úlohy (1.53) taková křivka v tomto prostoru, že směrové pole f je na ni v každém bodě tečné. Z této myšlenky intuitivně dojdeme k nejjednoduššímu diskrétnímu vzorci, tzv. Eulerově metodě. Tou postupně konstruujeme lomenou čáru ve fázovém prostoru takovou, že každý úsek mezi dvěma body (t i, x i ) a (t i+1, x i+1 ) má směr určený směrovým polem v počátečním bodě úseku, tj. f(t i, x i ). Bod (t 0, x 0 ) je dán počáteční podmínkou a postupně získávané hodnoty x i považujeme za aproximace hodnot přesného řešení v bodech t i, tj. x(t i ). Rovnicemi zapsána vypadá Eulerova metoda takto: x 0 = ξ, x i+1 = x i + hf(t i, x i ), i = 0,..., n 1, kde h = b a n. Druhy chyb numerických metod (1.55) Takto získané hodnoty x i jsou pouze odhady hodnot x(t i ) skutečného řešení v uzlových bodech. Je tedy potřebné znát hodnotu nebo alespoň odhad celkové diskretizační chyby v bodě t i definované vzorcem e i = x i x(t i ). Poznamenejme, že její vyšetřování vzhledem ke změně délky integračního kroku bude mít smysl pouze tehdy, bude-li se vyjadřovat ve stejném bodě t, tj. pro různá i tak, že bude zachováno t = a+ih. Při asymptotickém vyšetřování celkové diskretizační chyby tak budeme hledat limitu e i při h 0 a i +. Dalším druhem chyby, který má smysl vyšetřovat, je tzv. lokální diskretizační chyba, které se dopustíme aplikací jednoho kroku metody s přesnými počátečními podmínkami. V případě Eulerovy chyby lze tuto chybu zapsat vzorcem L(x(t); h) = x(t) + hf(t, x(t)) x(t + h), kde funkce x(t) je přesným řešením dané počáteční úlohy. Celková diskretizační chyba je vlastně kumulovanou řadou lokálních diskretizačních chyb, kterých se dopouštíme v každém integračním kroku. V každém integračním kroku kromě prvního však navíc vycházíme z nepřesných dat, proto celková diskretizační chyba není prostým součtem teoretických lokálních diskretizačních chyb. Při výpočtech na počítači však nepracujeme s přesnými čísly. Vždy výsledek poškodíme nejen diskretizační chybou, ale také jej zaokrouhlujeme. Celková chyba, tedy rozdíl vypočteného odhadu a skutečného řešení, je tak součtem celkové diskretizační chyby a tzv. celkové zaokrouhlovací chyby r i = x i x i, (1.56) kde x i je výsledek poskytnutý počítačem.
18 KAPITOLA 1. SOUSTAVY ODR Diskretizační chyba Eulerovy metody Věta 1.16 Nechť jsou splněny předpoklady (1.54.i) a (1.54.ii) a nechť má přesné řešení x počáteční úlohy (1.53) v intervalu a, b dvě spojité derivace. Pak platí kde x i x(t i ) hm(t i )E L (t i a), i = 0,..., n, (1.57) M(t i ) = 1 2 max s a,t i ẍ(s), E L(t) = { e Lt 1 L pro L > 0 t pro L = 0, n = b a a x h i je odhad hodnoty x(t i ) vypočtený Eulerovou metodou a L je lipschitzovská konstanta z podmínky (1.54.ii). Vzorec (1.57) vyjadřuje apriorní odhad chyby Eulerovy metody, pokud známe funkci M(t). Bez znalosti řešení tuto funkci ovšem neznáme. Dostáváme ale z Věty 1.16 informaci, že rychlost konvergence Eulerovy metody je h. Uveďme ještě odhad funkce M(t) při existenci omezených spojitých obou parciálních derivací pravé strany f: f 2M(t) max (t,x) a,b R t + f f x. Typicky je apriorní odhad velmi pesimistický. Plyne to z jeho vlastnosti, že zaručuje za velmi obecných podmínek, že chyba řešení nebude větší než tento odhad. Následující věta vyjadřuje asymptotický odhad chyby Eulerovy metody, který nemá uvedenou vlastnost apriorního odhadu, ale liší se od skutečné chyby ve členech vyššího řádu v h: Věta 1.17 Nechť jsou splněny předpoklady (1.54.i) a (1.54.ii) a nechť má navíc pravá strana f spojité první a druhé parciální derivace podle obou proměnných v pásu a, b R. Pak lze celkovou diskretizační chybu e i přibližného řešení vypočteného Eulerovou metodou zapsat ve tvaru e i = e(t i )h + O(h 2 ), (1.58) kde je funkce e(t) řešením diferenciální rovnice ė = 1 f(t, x(t))e x 2ẍ(t) s počáteční podmínkou e(a) = 0. Ani funkci e(t) neznáme, pokud nemáme přesné řešení x(t). Navíc i se znalostí přesného řešení znamená její výpočet řešení další diferenciální rovnice. Věta však není z praktického hlediska ani zdaleka bezcenná. Použijme vztah (1.58) k aposteriornímu odhadu chyby (tj. odhadu chyby již vypočteného odhadu
1.3. NUMERICKÉ ŘEŠENÍ ODR S POČÁTEČNÍMI PODMÍNKAMI 19 řešení): Buď t pevně daný bod v intervalu a, b a označme x(t; h) hodnotu přibližného řešení v bodě t získaného Eulerovou metodou s krokem h, vybraným tak, že podíl 2(t a)/h je celé číslo. Platí-li předpoklady Věty 1.17, platí i tvrzení (1.58): x(t; h) x(t) = e(t)h + O(h 2 ). (1.59) Při výpočtu s polovičním krokem h/2 platí podle téže věty: x(t; h 2 ) x(t) = e(t)h 2 + O((h/2)2 ) = 1 2 e(t)h + O(h2 ). (1.60) Odečteme-li rovnici (1.60) od rovnice (1.59), dostaneme vztah x(t; h) x(t; h 2 ) = 1 2 e(t)h + O(h2 ) e(t)h = 2[x(t; h) x(t; h 2 )] + O(h2 ). Po dosazení zpět do (1.59) dostáváme aposteriorní odhad chyby přibližného řešení x(t; h) x(t) = 2[x(t; h) x(t; h 2 )] + O(h2 ). (1.61) Odhad celkové diskretizační chyby lze tedy získat pouze ze znalosti hodnot získaných dvěma přibližnými výpočty se dvěma integračními kroky. Tento postup odhadu chyby se nazývá metoda polovičního kroku. Jednu důležitou vlatnost tohoto odhadu však musíme zdůraznit: odhad chyby ve Větě 1.17 i odhad metodou polovičního kroku (1.61) je asymptotickým odhadem, tj. odhadem její hodnoty až na veličiny vyššího řádu. Není to tedy ani horní ani dolní odhad a jeho přesnost roste se zkracujícím se integračním krokem. Výraz 2[x(t; h) x(t; h )] se proto 2 nazývá hlavní část celkové diskretizační chyby. Zaokrouhlovací chyba Zaokrouhlovací chyba r i je definována vztahem (1.56). Hodnota x i je přitom zaokrouhlený výsledek výpočtu prováděného počítačem. Je tedy řešením soustavy rovnic (1.55) s poškozenou pravou stranou, tedy soustavy x 0 = ξ, x i+1 = x i + hf(t i, x i ) + ε i, i = 0,..., n 1. (1.62) Veličina ε i se označuje termínem lokální zaokrouhlovací chyba a vlastně vyjadřuje míru nepřesnosti, se kterou počítáme konkrétní integrační krok. Lokální diskretizační chyby se postupně kumulují a každý další integrační krok je počítán na základě poškozených vstupních dat (s výjimkou prvního, kde je počáteční podmínka zadána přesně). Pro velikost celkové zaokrouhlovací chyby lze dokázat následující větu:
20 KAPITOLA 1. SOUSTAVY ODR Věta 1.18 Nechť pravá strana f splňuje předpoklady (1.54.i) a (1.54.ii) a nechť je lokální zaokrouhlovací chyba ε i omezená (tj. existuje konstanta ε taková, že pro každé i = 1,..., n je ε i ε). Pak platí r i ε h E L(t i a), i = 1,..., n. (1.63) Poznamenejme ještě, že požadavek na omezenost lokální chyby je přirozeně splněn při výpočtech s pevnou desetinnou čárkou. Při výpočtech s pohyblivou čárkou je fakticky splněn tehdy, pokud výpočet dává konečné výsledky, velikost maximální lokální chyby ale nelze předem určit. Z tvrzení Věty 1.18 je patrné, že velikost celkové zaokrouhlovací chyby při zkracování integračního kroku obecně roste nepřímo úměrně h. Je to způsobeno akumulací rostoucího množství lokálních zaokrouhlovacích chyb. Obrázek 1.1: Vztah diskretizační, zaokrouhlovací a celkové chyby. Mezní přesnost metody V předešlých odstavcích jsme ukázali, že zkracováním integračního kroku můžeme dosáhnout libovolného zmenšení diskretizační chyby Eulerovy metody. Zároveň ale zkracování kroku vede k růstu celkové zaokrouhlovací chyby. Celková chyba metody, která je součtem zmíněných dvou druhů chyb e i + r i tak musí mít pro
1.3. NUMERICKÉ ŘEŠENÍ ODR S POČÁTEČNÍMI PODMÍNKAMI 21 nějakou hodnotu integračního kroku h 0 minimální hodnotu (viz Obr. 1.1). Této hodnotě říkáme mezní přesnost Eulerovy metody a zmenšení chyby pod tuto mez již nelze jinak, než užitím jiné metody, jejíž diskretizační chyba bude při stejném integračním kroku menší. Zaokrouhlovací chyba je totiž do značné míry nezávislá na metodě a díky tomu lze zmenšením diskretizační chyby upravit mezní přesnost. 1.3.2 Obecná jednokroková metoda Eulerova metoda popisovaná v minulé kapitole je speciálním případem obecné jednokrokové metody. Název jednokroková metoda označuje tu vlastnost metody, že přibližná hodnota řešení x i+1 v bodě t i+1 je počítána pouze ze znalosti hodnoty přibližného řešení x i v bodě t i. Obecnou jednokrokovou metodu lze zapsat ve tvaru x 0 = ξ, x i+1 = x i + hφ(t i, x i, h), i = 0,..., n 1, (1.64) přičemž funkce Φ musí mít nějaký vztah k pravé straně diferenciální rovnice f. Definujme funkci Φ(t, x, h) tak, aby při jejím dosazení do metody (1.64) za funkci Φ(t, x, h) vycházelo přesné řešení. Označíme-li x(t) přesné řešení počáteční úlohy (1.53), můžeme hledanou funkci Φ zapsat takto: Φ(t i, x i, h) = { x(ti+1 ) x(t i ) h pro h > 0, f(t i, x i ) pro h = 0. (1.65) Hodnota pro h = 0 nemá praktický význam (metodu s nulovým integračním krokem nemá smysl budovat). Je dodefinována tak, aby funkce Φ byla spojitá v okolí bodu h = 0. Bohužel, bez znalosti přesného řešení funkci Φ nezískáme a bez znalosti funkce Φ nespočítáme obecnou jednokrokovou metodou přesné řešení. Proto je třeba funkci Φ definovat jinak, než Φ Φ. Je ale třeba ji hledat tak, aby se pro malá h funkce Φ nelišila od funkce Φ příliš. Je patrné, že nejjednodušší takovou volbou je právě Eulerova metoda s Φ(t, x, h) = f(t, x). Volba Φ určuje přesnost obecné jednokrokové metody. Tu je možno kvantifikovat veličinou, kterou nazveme řád obecné jednokrokové metody. Označme M podmnožinu množiny všech diferenciálních rovnic, jejichž pravé strany splňují předpoklady (1.54.i) a (1.54.ii). Řádem dané obecné jednokrokové metody na množině M pak označíme maximální přirozené číslo p, pro které platí: L(x(t); h) := h[φ(t, x(t), h) Φ(t, x(t), h)] = O(h p+1 ), tj. je-li lokální chyba metody řádu p + 1, je řád metody p. Ve smyslu této definice má Eulerova metoda řád 1 na množině rovnic se spojitě diferencovatelnou pravou stranou. Na množině všech řešitelných rovnic její řád nelze určit.
22 KAPITOLA 1. SOUSTAVY ODR Předpokládejme, že funkce pravé strany f má pro všechna t a, b všechny parciální derivace až do řádu p. Potom přesné řešení počáteční úlohy (1.53) má derivace až do řádu p + 1 a platí pro ně rovnice ẋ = f(t, x) ẍ = d dt f(t, x) = f t(t, x) + f x (t, x)f(t, x) =: f(t, x) x (3) = d2 dt 2 f(t, x) = f tt(t, x) + 2f tx (t, x)f(t, x) + f t (t, x)f x (t, x) + + f 2 x(t, x)f(t, x) + f xx (t, x)f 2 (t, x) =: f(t, x) x (4) =... = f (3) (t, x). Zde indexy t, resp. x značí parciální derivaci podle t, resp. x a tečka značí totální derivaci podle t. S předpokladem existence uvedených derivací tedy můžeme rozvinout přírůstek h Φ(t, x, h) v Taylorovu řadu v bodě t: h Φ(t, x, h) = x(t + h) x(t) = = hẋ(t) + h2 hp ẍ(t) +... + 2! p! x(p) (t) + O(h p+1 ) = = hf(t, x) + h2 2 f(t, x) +... + hp p! f (p 1) (t, x) + O(h p+1 ), a tedy funkci Φ můžeme psát ve tvaru Φ(t, x, h) = f(t, x) + 1 2 h f(t, x) +... + 1 p! hp 1 f (p 1) (t, x) + O(h p ). (1.66) Rovnice (1.66) nám nabízí přímo volit funkci Φ jako prvních p členů Taylorova rozvoje funkce Φ, tedy Φ(t, x, h) = f(t, x) + 1 2 h f(t, x) +... + 1 p! hp 1 f (p 1) (t, x). Tato metoda je označována termínem metoda Taylorova rozvoje řádu p, její řád je p na množině rovnic s p krát spojitě diferencovatelnou pravou stranou. Ale bohužel není příliš praktická. Pochybovači se mohou přesvědčit krátkým cvičením a pokusit se určit funkci Φ jako rozvoj do 3. řádu pro diferenciální rovnici ẋ = x 2 + t 2. 1.3.3 Runge-Kuttovy metody Závěr předchozí kapitoly nás přivedl k úloze sestrojit funkci Φ tak, aby se od funkce Φ lišila až ve členech řádu h p, ale aby nebylo k jejímu sestrojení třeba
1.3. NUMERICKÉ ŘEŠENÍ ODR S POČÁTEČNÍMI PODMÍNKAMI 23 hledat žádné derivace funkce f. Řešení takové úlohy je určeno skutečností, že libovolnou derivaci každé funkce lze aproximovat lineární kombinací jejích hodnot ve vhodně zvolených bodech. Na této myšlence je založena celá třída jednokrokových metod nazývaných obecně Runge-Kuttovy metody. Pro příklad si odvodíme třídu Runge-Kuttových metod řádu p = 2. Hledejme funkci Φ ve tvaru Φ(t, x, h) = w 1 k 1 + w 2 k 2, kde k 1 = f(t, x), k 2 = f(t + αh, x + βhk 1 ), a w 1, w 2, α a β jsou konstanty zvolené tak, aby rozvoj funkce Φ jako funkce proměnné h byl shodný s rozvojem funkce Φ do co největšího řádu. Rozvojem funkce Φ v proměnné h dostaneme Φ(t, x, h) = w 1 f(t, x) + w 2 f(t + αh, x + βhf(t, x)) = w 1 f(t, x) + + w 2 f(t, x) + w 2 αf t (t, x)h + w 2 βf x (t, x)hf(t, x) + O(h 2 ) = = (w 1 + w 2 )f(t, x) + w 2 [αf t (t, x) + βf x (t, x)f(t, x)]h + O(h 2 ). Porovnáním členů rozvoje se vzorcem (1.66) dostaneme pro konstanty w 1, w 2, α a β soustavu tří rovnic w 1 + w 2 = 1, w 2 α = 1 2, w 2β = 1 2. Ta má nekonečně mnoho řešení, která je možno zapsat v parametrickém tvaru w 1 = 1 s, w 2 = s, α = β = 1 2s, (1.67) kde parametr s je libovolné nenulové reálné číslo. Žádnou volbou parametrů w 1, w 2, α a β nelze docílit shody rozvoje funkcí Φ a Φ až do třetího řádu. Našli jsme tedy celou sadu metod řádu 2 na množině rovnic s třikrát spojitě diferencovatelnou funkcí pravé strany. Pro její sestrojení nepotřebujeme počítat derivace pravé strany, namísto toho je třeba však pro výpočet jednoho integračního kroku počítat dvakrát hodnoty funkce f ve dvou různých bodech. Z právě odvozené třídy metod jsou prakticky užívány dvě. Dosazením parametru s = 1 do (1.67) dostaneme tzv. modifikovanou Eulerovu metodu x i+1 = x i + hf(t i + 1 2 h, x i + 1 2 hf(t i, x i )), (1.68) kterou lze geometricky názorněji přepsat do tvaru x i+1 = x i + hk 2, kde k 1 = f(t i, x i ), k 2 = f(t i + 1 2 h, x i + 1 2 hk 1).
24 KAPITOLA 1. SOUSTAVY ODR Dosadíme-li do (1.67) za s = 1/2, definujeme tzv. Heunovu metodu x i+1 = x i + 1 2 h[f(t i, x i ) + f(t i + h, x i + hf(t i, x i ))], (1.69) kterou podobně přepíšeme ve tvaru x i+1 = x i + 1 2 h(k 1 + k 2 ), kde k 1 = f(t i, x i ), k 2 = f(t i + h, x i + hk 1 ). Vyjádříme-li podstatu Eulerovy metody slovy tak, že přírůstek odhadu řešení v i-tém časovém kroku je dán hodnotou funkce f v bodě (t i, x i ), pak lze obě uvedené metody geometricky interpretovat tak, že přírůstek odhadu řešení je v i-tém časovém kroku dán v odhadem hodnoty funkce f mezi body (t i, x i ) a (t i+1, x i+1 ). V případě modifikované Eulerovy metody je odhadnut střední bod úsečky (t i, x i ), (t i+1, x i+1 ) a v něm je vyčíslena hodnota funkce f. V případě Heunovy metody je uvažován algebraický průměr hodnot f(t i, x i ) a f(t i+1, x i+1), kde bod (t i+1, x i+1) je odhadem bodu (t i+1, x i+1 ) Eulerovou metodou. Obecná Runge-Kuttova metoda Obecná Runge-Kuttova metoda má funkci Φ předepsanou ve tvaru: Φ(t, x, h) = s w j k j, kde j=1 k 1 = f(t, x), j 1 k j = f t + α j h, x + h β jl k l, j = 2,..., s. l=1 K výpočtu funkce Φ je tak třeba vypočítat s-krát hodnotu pravé strany f. Lze ukázat, že parametry v každé Runge-Kuttově metodě lze volit tak, že pro její řád p = p(s) platí lim s p =. Pro s 4 je možno na množině diferenciálních rovnic s dostatečně hladkými pravými stranami docílit řádu p(s) = s, pro s > 4 roste funkce p(s) pomaleji než s. Z tohoto důvodu a také proto, že soustavy nelineárních rovnic svazujících koeficienty w j, α j a β jl jsou pro s > 4 velmi složité, se prakticky Runge-Kuttových metod řádu většího než 4 užívá velmi zřídka. Pro příklad složitosti nelineárních soustav rovnic svazujících koeficienty uvádíme případ, kdy s = 4: α 2 = β 21, α 3 = β 31 + β 32, w 1 + w 2 + w 3 + w 4 = 1, α 4 = β 41 + β 42 + β 43,
1.3. NUMERICKÉ ŘEŠENÍ ODR S POČÁTEČNÍMI PODMÍNKAMI 25 w 2 α 2 + w 3 α 3 + w 4 α 4 = 1 2, w 2 α 2 2 + w 3 α 2 3 + w 4 α 2 4 = 1 3, w 2 α 3 2 + w 3 α 3 3 + w 4 α 3 4 = 1 4, w 3 α 2 β 32 + w 4 (α 2 β 42 + α 3 β 43 ) = 1 6, w 3 α 2 2β 32 + w 4 (α 2 2β 42 + α 2 3β 43 ) = 1 12, w 3 α 2 α 3 β 32 + w 4 (α 2 β 42 + α 3 β 43 )α 4 = 1 8, w 4 α 2 β 32 β 43 = 1 24. Uveďme několik často užívaných Runge-Kuttových metod. Jedna z metod třetího řádu nese rovněž jméno Heunova metoda a má tvar x i+1 = x i + 1 4 h(k 1 + 3k 3 ) k 1 = f(t i, x i ), k 2 = f(t i + 1 3 h, x i + 1 3 hk 1), k 3 = f(t i + 2 3 h, x i + 2 3 hk 2). Tzv. standardní Runge-Kuttova metoda je čtvrtého řádu: x i+1 = x i + 1 6 h(k 1 + 2k 2 + 2k 3 + k 4 ) k 1 = f(t i, x i ), k 2 = f(t i + 1 2 h, x i + 1 2 hk 1), k 3 = f(t i + 1 2 h, x i + 1 2 hk 2), k 4 = f(t i + h, x i + hk 3 ). Další často užívanou metodou čtvrtého řádu je tzv. tříosminové pravidlo: x i+1 = x i + 1 8 h(k 1 + 3k 2 + 3k 3 + k 4 ) k 1 = f(t i, x i ), k 2 = f(t i + 1 3 h, x i + 1 3 hk 1), k 3 = f(t i + 2 3 h, x i 1 3 hk 1 + hk 2 ), k 4 = f(t i + h, x i + hk 1 hk 2 + hk 3 ).
26 KAPITOLA 1. SOUSTAVY ODR Metody vyšších řádů nejsou, jak už jsme uvedli, užívány často. Jejich odvození i implementace jsou sice složitější, k jejich realizaci je třeba více početních operací na jeden integrační krok, avšak jsou přesnější a proto není třeba pro stejnou přesnost tak krátký časový krok jako při užití metod nižších řádů, což může jejich nevýhody kompenzovat i převážit. Populární metodou pátého řádu je Fehlbergova metoda: x i+1 = ( 16 x i + h 135 k 1 + 6656 12825 k 3 + 28561 56430 k 4 + 9 50 k 5 + 2 ) 55 k 6 k 1 = f(t i, x i ), k 2 = f(t i + 1 4 h, x i + 1 4 hk 1), k 3 = f(t i + 3 8 h, x i + 1 32 h(3k 1 + 9k 2 )), k 4 = f(t i + 12 13 h, x i + 1 2197 h(1932k 1 7200k 2 + 7296k 3 )), k 5 = f(t i + h, x i + h( 439 216 k 1 8k 2 + 3680 513 k 3 845 4104 k 4)), k 6 = f(t i + 1 2 h, x i + h( 8 27 k 1 + 2k 2 3544 2565 k 3 + 1859 4104 k 4 11 40 k 5)). Z metod šestého řádu uvádíme Huťovu metodu: x i+1 = x i + 1 840 h (41k 1 + 216k 3 + 27k 4 + 272k 5 + 27k 6 + 216k 7 + 41k 8 ) k 1 = f(t i, x i ), k 2 = f(t i + 1 9 h, x i + 1 9 hk 1), k 3 = f(t i + 1 6 h, x i + 1 24 h(k 1 + 3k 2 )), k 4 = f(t i + 1 3 h, x i + 1 6 h(k 1 3k 2 + 4k 3 )), k 5 = f(t i + 1 2 h, x i + 1 8 h( 5k 1 + 27k 2 24k 3 + 6k 4 )), k 6 = f(t i + 2 3 h, x i + 1 9 h(221k 1 981k 2 + 867k 3 102k 4 + k 5 )), k 7 = f(t i + 5 6 h, x i + 1 48 h( 183k 1 + 678k 2 472k 3 66k 4 + 80k 5 + 3k 6 )), k 8 = f(t i + h, x i + 1 82 h(716k 1 2079k 2 + 1002k 3 + 834k 4 454k 5 9k 6 + 72k 7 )). Chyby Runge-Kuttových metod Pro diskretizační chybu Runge-Kuttových metod lze dokázat větu:
1.3. NUMERICKÉ ŘEŠENÍ ODR S POČÁTEČNÍMI PODMÍNKAMI 27 Věta 1.19 Buď dána Runge-Kuttova metoda řádu p na množině rovnic s p + 1 krát spojitě diferencovatelnou pravou stranou a počáteční úloha z této množiny. Označíme-li x(t) přesné řešení úlohy a x i jeho aproximaci získanou danou metodou, existují konstanty M a h 0 nezávislé na zvolené úloze takové, že pro každé h < h 0 platí: x i x(t i ) Mh p E L (t i a), i = 0,..., n, (1.70) kde funkce E L (t) je definována v tvrzení věty 1.16 na straně 18. Neznáme-li velikost konstanty M (což je velmi častý případ), vyplývá z věty 1.19 pouze rychlost konvergence Runge-Kuttových metod. Není tedy nijak užitečná k odhadu chyby. Všimněme si ale, že ve srovnání s Eulerovou metodou (viz větu 1.16) klesá chyba při klesajícím h rychleji (zde klesá s h p, u Eulerovy metody s h). Pro odhad velikosti chyby je užitečný asymptotický odhad chyby, který vyjadřuje následující věta: Věta 1.20 Nechť jsou splněny předpoklady (1.54.i) a (1.54.ii) a nechť je x i přibližné řešení úlohy vypočtené Runge-Kuttovou metodou řádu p 1. Nechť navíc mají pravá strana f a funkce Runge-Kuttovy metody Φ p + 1 spojitých parciální derivace podle všech proměnných v oblasti a, b R, resp. a, b R 0, h 0. Pak lze celkovou diskretizační chybu přibližného řešení vypočteného danou Runge- Kuttovou metodou zapsat ve tvaru x i x(t i ) = e(t i )h p + O(h p+1 ), (1.71) kde je funkce e(t) řešením diferenciální rovnice ė = f(t, x(t))e ϕ(t, x(t)) x s počáteční podmínkou e(a) = 0, přičemž ϕ(t, x) = 1 p ] [ Φ(t, x, h) Φ(t, x, h) p! h p = h=0 1 = (p + 1)! f (p) (t, x) 1 p Φ(t, x, h) p! h p h=0 Z věty 1.20 vyplývá aposteriorní odhad chyby metodou polovičního kroku analogický k (1.61): x(t; h) x(t) = 2p 2 p 1 [x(t; h) x(t; h 2 )] + O(hp+1 ). (1.72) Zavedeme-li lokální zaokrouhlovací chybu podobně jako pro Eulerovu metodu vztahy x 0 = ξ, x i+1 = x i + hφ(t i, x i, h) + ε i, i = 0,..., n 1, lze pro velikost celkové zaokrouhlovací chyby dokázat následující větu: (1.73)
28 KAPITOLA 1. SOUSTAVY ODR 0.02 0.018 0.016 celk. chyba Eulerovy metody celk. chyba R.-K. metody diskret. chyba Eulerovy metody diskret. chyba R.-K. metody zaokr. chyba Eulerovy metody zaokr. chyba R.-K. metody 0.014 0.012 chyba 0.01 0.008 Mezní pøesnost Eulerovy metody 0.006 Mezní pøesnost R.-K. metody 0.004 0.002 0 0.2 0.4 0.6 0.8 1 1.2 Optim. integr. krok integraèní krok Optimální Eulerovy metody integraèní krok R.-K. metody Obrázek 1.2: Porovnání mezní přesnosti Eulerovy a Runge-Kuttovy metody. Věta 1.21 Nechť pravá strana f splňuje předpoklady (1.54.i) a (1.54.ii) a Φ je funkce Runge-Kuttovy metody. Nechť je lokální zaokrouhlovací chyba ε i omezená konstantou ε. Pak pro celkovou zaokrouhlovací chybu platí x i x i ε h E L(t i a), i = 0,..., n 1. (1.74) Tvrzení věty 1.21 je v podstatě totožné s tvrzením věty 1.18. Zaokrouhlovací chyba se tedy projevuje stejně u Eulerovy metody, jako Runge-Kuttových metod libovolného řádu. Důsledkem této skutečnosti a větší rychlosti konvergence diskretizační chyby Runge-Kuttových metod vyšších řádů je skutečnost, že mezní přesnost Runge-Kuttových metod je lepší než mezní přesnost Eulerovy metody a je dosahována při větším integračním kroku. Právě vyslovené tvrzení je ilustrováno na obrázku 1.2. Pochopitelně podobný vztah platí i mezi dvěma Runge-Kuttovými metodami různých řádů.
1.4. NUMERICKÉ ŘEŠENÍ ODR S OKRAJOVÝMI PODMÍNKAMI 29 1.4 Numerické řešení obyčejných diferenciálních rovnic s okrajovými podmínkami Dvoubodovou okrajovou úlohou, nebo stručně okrajovou úlohou pro soustavu obyčejných diferenciálních rovnic prvního řádu kde x = x = f(t, x), (1.75) x 1. x m a f = f 1. f m (1.75), které splňuje okrajové podmínky, rozumíme úlohu najít takové řešení soustavy r( x(a), x(b)) = 0, (1.76) kde r je m-složková vektorová funkce 2m proměnných a navzájem různé body a a b leží v intervalu, v němž hledáme řešení. Nejčastěji právě jeho krajní body odtud název okrajové podmínky. Je-li možné okrajové podmínky přepsat ve tvaru r 1 ( x(a)) = 0, r 2 ( x(b)) = 0, (1.77) kde r 1, resp. r 2 jsou m 1 -, resp. m 2 -složkové vektorové funkce m proměnných, přičemž m 1 + m 2 = m, říkáme, že jde o separované okrajové podmínky. Jiným speciálním případem jsou lineární okrajové podmínky ve tvaru U x(a) + V x(b) = c, (1.78) kde U a V jsou čtvercové matice řádu m a c je m-rozměrný vektor. Lineární separované okrajové podmínky pak mají tvar V 1 x(a) = v 1, V 2 x(b) = v 2, (1.79) kde V 1, resp. V 2 jsou obdélníkové matice typu m 1 m, resp. m 2 m a v 1, resp. v 2 vektory o m 1, resp. m 2 složkách (zase m 1 + m 2 = m). Podobně, jako jsme zavedli počáteční úlohu pro obyčejnou diferenciální rovnici vyššího řádu (viz rovnice (1.51) a další), můžeme zavést i okrajovou úlohu pro takovou rovnici. Všimněme si rovněž, že položíme-li v rovnici (1.78) pro lineární okrajové podmínky za U jednotkovou matici E a za V nulovou matici O, dostaneme předpis pro počáteční podmínky. Počáteční úloha je tedy velmi speciálním případem okrajové úlohy. A bohužel, zatímco stačí splnit předpoklady (1.54), aby existovalo jednoznačné řešení počáteční úlohy, žádné podobně jednoduché tvrzení pro
30 KAPITOLA 1. SOUSTAVY ODR okrajové úlohy nelze najít. U sebejednodušší diferenciální rovnice můžeme okrajové podmínky předepsat tak, že řešení buď vůbec neexistuje, anebo jich existuje víc. Pro příklad uvedeme diferenciální rovnici druhého řádu ẍ + x = 0, (1.80) kterou lze ekvivalentně převést na soustavu dvou rovnic prvního řádu ẋ 1 = x 2, ẋ 2 = x 1. Každé její řešení lze zapsat ve tvaru x(t) = C 1 cos t + C 2 sin t, kde C 1 a C 2 jsou libovolné konstanty. Zvolíme-li okrajové podmínky x(0) = 0, x(π) = 0, (1.81) je řešením okrajové úlohy (1.80), (1.81) nekonečně mnoho funkcí ve tvaru C sin t, kde C je libovolné číslo. Naopak, s okrajovými podmínkami x(0) = 0, x(π) = 1, (1.82) nemá rovnice (1.80) žádné řešení. 1.4.1 Metoda střelby Je jednou z metod řešení okrajových úloh založených na převodu úlohy s okrajovými podmínkami na ekvivalentní počáteční úlohu. Její princip budeme ilustrovat na konkrétní úloze. Lineární samoadjungovaná diferenciální rovnice Uvažujme lineární samoadjungovanou diferenciální rovnici druhého řádu (p(t)ẋ) + q(t)x = f(t) (1.83) s Dirichletovými okrajovými podmínkami x(a) = γ 1, x(b) = γ 2. (1.84) Předpokládejme, že funkce p, ṗ, q a f jsou spojité v intervalu a, b, že existuje kladná konstanta p 0 taková, že p(t) p 0, t a, b, a že je q(t) 0, t a, b.
1.4. NUMERICKÉ ŘEŠENÍ ODR S OKRAJOVÝMI PODMÍNKAMI 31 Lze dokázat, že za těchto podmínek je okrajová úloha (1.83), (1.84) jednoznačně řešitelná. Zadaná rovnice rovněž splňuje předpoklady (1.54). Proto pro každou počáteční podmínku x(a) = γ 1, ẋ(a) = α, (1.85) kde α je libovolné číslo, existuje právě jedna funkce y(x) řešící počáteční úlohu (1.83), (1.85). Označme řešení takové úlohy x(t; α). Řešení x(t; α) splňuje diferenciální rovnici (1.83) a jednu z okrajových podmínek (1.84) a závisí na parametru α. Nalezneme-li tedy takovou hodnotu α parametru α, pro kterou bude platit druhá okrajová podmínka, tj. x(b; α ) = γ 2, (1.86) dostaneme řešení okrajové úlohy (1.83), (1.84). Převedli jsme tak původní okrajovou úlohu na úlohu nalezení počáteční podmínky odpovídající zadaným okrajovým podmínkám a řešení tak vzniklé počáteční úlohy. Nyní je patrné, proč se tato metoda nazývá metodou střelby. K nalezení hledané hodnoty α je třeba znát základy teorie lineárních diferenciálních rovnic, kterou čtenář v potřebném rozsahu najde například v [4]. Zde uvedeme a použijeme pouze její závěry. Označíme-li z(x) řešení homogenní rovnice příslušné k (1.83), tj. (p(t)ż) + q(t)z = 0 s počátečními podmínkami z(a) = 0, ż(a) = 1, pak pro libovolné α platí: x(t; α) = x(t; 0) + αz(t) a speciálně pro t = b je x(b; α) = x(b; 0) + αz(b). Řešení rovnice (1.86) má tedy tvar α = γ 2 x(b; 0). (1.87) z(b) Pochopitelně za předpokladu, že z(b) 0, což je zajištěno předpoklady, které jsme kladli na funkce p, q a f. Řešení lineární okrajové úlohy (1.83), (1.84) metodou střelby spočívá tedy ve dvojím řešení počáteční úlohy (pro x(t; 0) a z(t)) a v lineárním zkombinování uvedených řešení podle vzorce x(t; α ) = x(t; 0) + α z(t), kde α spočteme z rovnice (1.87).
32 KAPITOLA 1. SOUSTAVY ODR Příklad Pro ilustraci uvedeme příklad řešení konkrétní úlohy uvedenou metodou. Řešme rovnici ẍ + 100x = 0 (1.88) s lineárními separovanými okrajovými podmínkami x(0) = 1, x(0,1) = 1. (1.89) Podotkněme, že tuto úlohu umíme řešit analyticky. Její řešení má tvar x(t) = 1 e + 1 e10t + e e + 1 e 10t. (1.90) Pro její řešení metodou střelby použijeme vzorec (1.87), přičemž x(t; 0) = 1 2 e10t + 1 2 e 10t, z(t) = 1 20 e10t 1 20 e 10t a tedy (při b = 0,1) α = 1 1e 1 2 2 e 1 1 e 1 = 10 2e e2 1 20 20 e 1 e 2 1 = 10 1 e. = 4,6211715726. e + 1 (e 1) 2 = 10 (e 1)(e + 1) = Počítáme-li s přesností na šest platných míst, počítač určí hodnotu α na 4,62117 a přibližné řešení na: x(t; 4,62117) = x(t; 0) 4,62117z(t) = = 1 2 e10t + 1 2 e 10t 0,462117( 1 2 e10t 1 2 e 10t ). =. = 0,268942e 10t + 0,731059e 10t a pravá okrajová podmínka bude přibližně splněna: x(0,1; 4,62117). = 0,268942e + 0,731059e 1. = 1,000002.