Enočlenske metode J.Kozak Uvod v numerične metode - / 4 Enočlenske metode veljajo trenutno za najprimernejše metode v numeričnem reševanju začetnih problemov. Skoraj vse sodijo v skupino Runge-Kutta metod. Ime Runge-Kutta metode je skovanka priimkov, po avtorjih, ki sta največ prispevala k začetku razvoja teh metod. Ideja izpeljave: osnovni Eulerjevi metodi, modificirana Eulerjeva metoda, trapezno pravilo,... k = f (x n, y n ) = f (x n + h, y n + h k ), k = f (x n, y n ) = f (x n + h, y n + h k ). Metodo tega tipa določajo tri konstante, α, β in γ, k = f (x n + α h, y n + β h k ), y n = y n + γ h k. Shema: α β γ
J.Kozak Uvod v numerične metode - / 4 Izboljšana Eulerjeva metoda, trapezno pravilo: in.
Splošna dvostopenjska shema: α β β α β β γ γ Konstante α i, β ij in γ j so svobodni parametri. Določajo metodo, ki najprej izračuna odvoda k i, ki zadoščata enačbama k = f(x n + α h, y n + h (β k + β k )), k = f(x n + α h, y n + h (β k + β k )). Nato sledi numerični približek v novi točki x n kot y n = y n + h (γ k + γ k ). J.Kozak Uvod v numerične metode - 3 / 4
Ideja izpeljave Runge-Kutta metod J.Kozak Uvod v numerične metode - 4 / 4 Osnovna zahteva Lokalna napaka y(x n ) y n pri pogoju y(x n ) = y n naj bo čim višjega reda! Razvoj točne rešitve v Taylorjevo vrsto y(x n +h) = y(x n )+h y (x n )+ h! y (x n )+ h3 3! y (x n )+... dobimo z upoštevanjem dejstva, da je y rešitev diferencialne enačbe y = f(x, y). V numerični rešitvi y n = y n + h (γ k + γ k ) moramo v vrsto okoli h razviti k i, torej spet y = f. Spet uporabimo dejstvo, da je y rešitev diferencialne enačbe.
J.Kozak Uvod v numerične metode - 5 / 4 Zgled računanja odvodov k Uporabimo verižno pravilo. Vse vrednosti, ki nastopajo, f, f x, f y,... naj bodo izračunane pri h =, torej pri argumentih (x n, y n ). Razvoj k : k = f + (α f x + (β + β ) f y f ) h+ ( + α f x x + (β + β ) (f y y f) f + (α β + α β ) f y f x + ( ) + β + β β + β (β + β ) f y f y f+ ) + α (β + β ) f x,y f h +...
Primerjava obeh razvojev J.Kozak Uvod v numerične metode - 6 / 4 V razliki obeh razvojev skušamo z izborom konstant uničiti čim več koeficientov pri naraščajočih potencah h i. Elementarni diferenciali Treba je biti pazljiv. Koeficient pri potenci h i sestavlja običajno več neodvisnih členov, elementarnih diferencialov. Za vsakega od njih je treba poskrbeti ločeno, torej je treba konstante izbrati tako, da je prispevek vsakega od njih enak nič. Primer: pri h dobimo neodvisna člena in (α (γ ) α γ + ) f x ( (γ ) β + (γ ) β γ β γ β + ) f y f.
Rezultat izpeljave v dvostopenjskem primeru J.Kozak Uvod v numerične metode - 7 / 4 Eksplicitne metode: Lokalna napaka O ( h 3). β β β β. Med najbolj pogostimi izbirami β srečamo, 3 in, torej metode, 3 3 4 3 4,. Zadnja od njih je Heunova.
Rezultat izpeljave v dvostopenjskem primeru Diagonalno implicitne metode metode: lokalna napaka O ( h 4). β β β = 3 ± 3, 6 β β β. Prednost diagonalno implicitne metode je v tem, da rešimo najprej sistem d = dim k = dim k nelinearnih enačb, da dobimo k, nato še en podoben sistem za k. J.Kozak Uvod v numerične metode - 8 / 4
Rezultat izpeljave v dvostopenjskem primeru J.Kozak Uvod v numerične metode - 9 / 4 Polno implicitna metoda, Hammer & Hollingsworth (tudi Gauss-Legendre četrtega reda): lokalna napaka O ( h 5). 3 6 3 + 6 4 3 4 + 6 4 4 3 6
Runge-Kutta metoda v splošnem J.Kozak Uvod v numerične metode - / 4 BucherjevaShema s-stopenjske metode α β β β s α β β β s..... α s β s β s β ss γ γ γ s Runge-Kutta metoda: k i = f x n + α i h, y n + h s β ij k j, i =,,..., s, j= y n = y n + h s γ i k i. i=
Zelo uporabljana metoda RK4, lokalna napaka O ( h 5) J.Kozak Uvod v numerične metode - / 4 6 6 6 6 k = f(x n, y n ), ( k = f x n + h, y n + h ) k, ( k 3 = f x n + h, y n + h ) k, k 4 = f(x n + h, y n + hk 3 ), y n = y n + h 6 (k + k + k 3 + k 4 ).
Stabilnost in konvergenca enočlenskih metod J.Kozak Uvod v numerične metode - / 4 Splošna oblika enočlenske metode y n = y n + h ψ(x n, y n, h), }{{} n =,,..., y = y a. numerični odvod Tu je funkcija ψ numerični odvod, približek pravega odvoda f. Definicija Enočlenska metoda je stabilna, če za vsako diferencialno enačbo, ki zadošča zahtevam eksistenčnega izreka, obstajata konstanti h > in c >, takšni, da za dve numerični rešitvi (y n ) in (ỹ n ), z začetnima vrednostima y in ỹ, velja y n ỹ n c y ỹ za vsak h, < h h in vse n.
Izrek Če je ψ Lipschitzova v y, je enočlenska metoda stabilna. Definicija Enočlenska metoda je konvergentna, če za vsako diferencialno enačbo, ki zadošča zahtevam eksistenčnega izreka, za vsak n velja ko h. Izrek y n y(x n ), Naj bo ψ Lipschitzova v y in zvezna v spremenljivkah h in x [a, b]. Potreben in zadosten pogoj za konvergenco je konsistentnost numerične metode, ψ(x, y, ) = f(x, y). J.Kozak Uvod v numerične metode - 3 / 4
RK4 in numerični korak za avtonomno enačbo y = f(y): J.Kozak Uvod v numerične metode - 4 / 4 k (y n ) = f(y n ), k (y n ) k (ỹ n ) L y n ỹ n ( k (y n ) = f y n + h ) k (y n ), k (y n ) k (ỹ n ) L( + hl) y n ỹ n ( k 3 (y n ) = f y n + h ) k (y n ) k 3 (y n ) k 3 (ỹ n ) L( + hl + 4 (hl) ) y n ỹ n k 4 (y n ) = f (y n + k 3 (y n )) k 4 (y n ) k 4 (ỹ n ) L( + hl + (hl) + 4 (hl)3 ) y n ỹ n ψ(x n, y n, h) ψ(x n, ỹ n, h) ( L + hl + 6 (hl) + ) 4 (hl)3 y n ỹ n Le (b a)l y n ỹ n
Red metode J.Kozak Uvod v numerične metode - 5 / 4 Lokalna napaka: razlika y n y(x n ) pri pogoju y n = y(x n ). Torej τ n (h) = y n y(x n ) = = y n + h ψ(x n, y n, h) y(x n ) = = y(x n ) + h ψ(x n, y(x n ), h) y(x n ). Izrek Naj bo ψ takšna, kot jo zahteva konvergenčni izrek. Naj za lokalno napako velja, da obstajata konstanti h > in C >, da za vse h, < h h in n velja ocena τ n (h) Ch r+. Tedaj za globalno napako velja y n y(x n ) Ch r ( e (b a)l ) L + e(b a)l y y(x ).
Kontrola koraka in vgnezdene metode: Mersonova metoda 3 3 3 6 6 8 3 8 3 4 6 6 y n y(x n ) = y n + h 6 (k + 4k 4 + k 5 ) y(x n ) = ( 7 h5 y (5) (x n ) +O }{{} ε ỹ n y(x n ) = y n + h (k 3k 3 + 4k 4 ) y(x n ) = = h5 y (5) (x n ) }{{} 6ε 6 y n ỹ n y(x n ) = O 5 ( +O h 6), ( h 6), J.Kozak Uvod v numerične metode - 6 / 4 6
Splošna vgnezdena Runge-Kutta metoda Butcherjeva shema: α β β s α β β s.... α s β s β ss γ γ s γ γ s Osnovni Runge-Kutta korak: Cenilka: y n = y n + h ỹ n = y n + h s γ i k i, i= s γ i k i. i= J.Kozak Uvod v numerične metode - 7 / 4
Praktična uporaba Približek in cenilka: y n = (y n,i ), ỹ n = (ỹ n,i ). Cilj: y n,i ỹ n,i η i ε, i =.,..., d. Uteži komponente η i : η i := ρ i + ( ρ i ) y n,i, ρ i (, ]. Merila izračunane ocene napake: δ n = d ( ) yn,i ỹ n,i, δ n = max y n,i ỹ n,i d η i i d η i i= Korak h n := x n x n zavržemo, če δ n > ε ali δ n > h n ε. Ker h n ni sprejemljiv, ga razpolovimo h n h n in ponovimo izračun iz x n. J.Kozak Uvod v numerične metode - 8 / 4.
J.Kozak Uvod v numerične metode - 9 / 4 Korak h n sprejemljiv. Določimo h n+. Ocena napake naj se obnaša kot razlika lokalnih napak osnovne metode in cenilke, ( ) δ n C hn r+ C h r+ n Chn p+, p := min (r, r). Če velja to tudi za nov korak, z isto neznano konstanto, izločimo C in dobimo δ n+ h p+ n+. δ n hn p+ Absolutni kriterij zahteva δ n+ ε, relativni δ n+ ε h n+. To da kandidata za nov korak kot ε ε h q n h n, kjer je q n = p+ ali q n = p n. δ n δ n Faktorji varnosti: τ = 9, q min Nov korak h n+ izberemo z [ 5 3], [ ] 3, q max, 5. h n+ = h n min (q max, max (q min, τ q n )).
Fehlbergova šest-stopenjska metoda metoda J.Kozak Uvod v numerične metode - / 4 4 3 8 3 4 3 3 93 97 439 6 8 7 5 6 6 35 9 3 7 796 97 97 368 8 53 3544 565 48 565 6656 85 845 44 859 44 97 44 856 5643 4 5 9 5 55
Dormand & Prince metode petega reda 5 3 4 5 8 9 5 3 4 44 45 937 656 97 368 35 384 35 384 579 576 9 4 56 5 536 87 355 33 3 9 64448 656 4673 547 5 3 5 3 757 6695 79 49 76 5 9 5 9 393 64 53 8656 87 6784 87 6784 997 339 84 84 87 J.Kozak Uvod v numerične metode - / 4 4
Veččlenske metode Veččlenska metoda določi numerično vrednost y n y(x n ) tako, da uporabi več že izračunanih vrednosti y n, y n,... Naj k IN označi število uporabljenih vrednosti; k-členska metoda iz vrednosti določi y n k, y n k+,..., y n y n y(x n ). Pri metodah te vrste običajno ne spreminjamo koraka. Zato se omejimo na ekvidistantno izbiro koraka h in x n i = x n i h, i =,,..., k. Veččlenske metode so lahko precej hitrejše od enočlenskih metod, saj na vsakem koraku ni treba izračunati s vrednosti desne strani f kot pri s-stopenjski Runge-Kutta metodi, ampak le eno. Imajo tudi svoje šibke strani: numerična stabilnost, začetek. k-členska metoda potrebuje k že izračunanih vrednosti () na začetku. Te metode niso prilagodljive, spreminjanje koraka h ni zelo preprosto. J.Kozak Uvod v numerične metode - / 4
J.Kozak Uvod v numerične metode - 3 / 4 Poznamo tri razrede pomembnejših veččlenskih metod: Adamsove metode, metode Milneovega tipa, BDF metode. Dva izpeljemo z integracijo diferencialne enačbe (Adamsove metode, metode Milneovega tipa), tretjega pa z diferenčno aproksimacijo odvoda (BDF metode).
Adamsove metode J.Kozak Uvod v numerične metode - 4 / 4 Izpeljimo najprej eksplicitne Adamsove metode, ki jih imenujemo Adams-Bashforthove metode. Dobimo jih tako, da diferencialno enačbo integriramo vzdolž rešitve y(x) po zadnjem podintervalu [x n, x n ], in od tod x n x n y (x) dx = y(x n ) = y(x n ) + x n x n x n f(x, y(x)) dx x n f(x, y(x)) dx. Preostane aproksimacija integrala na desni strani. Ker y ne poznamo, ne poznamo vrednosti vektorske funkcije f(., y(. )). Uporabimo aproksimacijo f z interpolacijskim polinomom v drugi Newtonovi obliki.
J.Kozak Uvod v numerične metode - 5 / 4 Novo spremenljivko t vpeljemo s t = x x n in h ( ) k t p(x) = p(x n + h t) = ( ) i i f n i i= in, ob zamenjavi integracijske spremenljivke x t, x n x n f(x, y(x)) dx = h k i= ( ) i ( t i ) i f n dt + Rf. Tako dobimo kjer je k y n = y n + h γ i i f n, γ i := ( ) i i= ( ) t dt. i
Uporabimo zaključeno obliko obratne končne diference in izpeljemo ( ) k k γ i i i i f n = γ i ( ) j f n j = j i= i= j= ( ) k k = ( ) j i k f n j γ i = β k,j+ f n j, j kjer smo označili j= i=j ( ) k β k,j+ := ( ) j i γ i. j Poglejmo si še ostanek Rf, ki ga lahko pišemo tudi kot R (y ), saj je y točna rešitev, po eksistenčnem izreku vsaj zvezno odvedljiva.produkt i=j j= ω(x) = (x x n )(x x n ) (x x n k ) = ( ) t = ω(x n + h t) = ( ) k h k k! k za x [x n, x n ], torej t [, ] ne spremeni predznaka. J.Kozak Uvod v numerične metode - 6 / 4
J.Kozak Uvod v numerične metode - 7 / 4 Ostanek, torej lokalno napako, lahko zapišemo v obliki R ( y ) = xn x n ω(x)[x n, x n,..., x n k, x]y dx = γ k h k+ y (k+) (ξ). Zamenjajmo še indeks j + j in dobimo Adams-Bashforthove metode izražene takole k y n = y n + h β kj f n j, k =,,.... j=
J.Kozak Uvod v numerične metode - 8 / 4 Koeficienti Adams-Bashforthovih metod za k 3 Izračunajmo najprej γ i, γ = ( ) γ = ( ) ( ) t dt =, γ = ( ) t! dt =, ( t)( t )! dt = 5. Pri k = dobimo spet eksplicitno Eulerjevo metodo, in vse tri skupaj k = : y n = y n + hf n, ( 3 k = : y n = y n + h f n ) f n, ( 3 k = 3 : y n = y n + h f n 4 3 f n + 5 ) f n 3.
J.Kozak Uvod v numerične metode - 9 / 4 Tabela Adams-Bashforthovih metod Izračunajmo tabelo koeficientov β kj Adams-Bashforthove metode za k 6, kjer izpostavimo skupni imenovalec koeficientov: β ki \i 3 4 5 6 β i β i 3 β 3i 3 6 5 4 β 4i 55 59 37 9 7 β 5i 9 774 66 74 5 44 β 6i 477 793 998 798 877-475
Implicitne Adamsove-Moultonova metode Izpeljimo še implicitne Adamsove metode, ki jim rečemo Adams-Moultonove metode. Ravnamo tako kot v izpeljavi Adams-Bashforthovih metod. Diferencialno enačbo y = f(x, y) integriramo po zadnjem podintervalu. Razlika nastane pri izbiri interpolacijskega polinoma p. Tokrat za konstrukcijo uporabimo še zadnjo točko x n in iskano vrednost y n, torej tudi f n, ( ) k t p(x) = p(x n + h t) = ( ) i i f n + Rf. i i= Vidimo, da je tu izraz i f n zamenjal i f n, saj upoštevamo tudi zadnjo točko. Prav tako je k zamenjal k. Polinomi temeljijo na eni interpolacijski točki več kot pri eksplicitni metodi. Seveda je pri danem k implicitna metoda še vedno k-členska. Po integraciji diferencialne enačbe in zamenjavi integracijske spremenljivke dobimo y (x n ) = y (x n ) + h ( ) k t ( ) i i f n dt + Rf. i i= J.Kozak Uvod v numerične metode - 3 / 4
J.Kozak Uvod v numerične metode - 3 / 4 To da metodo kjer je Zpomba γi = ( ) i k y n = y n + h γi i f n, i= ( t i ) dt = ( ) i Izračunajmo nekaj koeficientov γ i, γ = ( ) γ = ( ) ( ) t + dt. i ( ) t dt =, γ = ( ) t! dt =, ( t)( t ) dt = (! 3 ) =.
J.Kozak Uvod v numerične metode - 3 / 4 Splošna oblika metod y n = y n + h k βkjf n j. j= Zpomba Tabela koeficientov Adams-Moultonove metode βki k 5: za βki \i 3 4 5 βi βi βi 5 8 4β3i 9 9 5 7β4i 5 646 64 6 9 44β5i 475 47 798 48 73 7
Splošne linearne veččlenske metode Vzemimo Adamsove metode prejšnjega razdelka kot izhodišče za formulacijo splošne linearne k-členske metode. Adamsova metoda določi y n iz y n in linearne kombinacije odvodov f. Razširimo to v splošno linearno k-člensko metodo: k k α i y n i + h β i f n i =. i= Ker je enačba homogena, izberimo α :=, z mislijo na to, da y n sodi na drugo stran enačbe, saj ga računamo. Ostane k + svobodnih parametrov. Metoda je eksplicitna, če je β =, sicer je implicitna. Linearni k-členski metodi priredimo rodovna polinoma k ρ(ξ) := α i ξ k i in i= i= k σ(ξ) := β i ξ k i, () i= J.Kozak Uvod v numerične metode - 33 / 4
J.Kozak Uvod v numerične metode - 34 / 4 Izrek Linearna k-členska metoda (33) je reda r natanko tedaj, ko velja relacija ( ρ( + z) + ln( + z)σ( + z) = c r+ z r+ + O z r+), () kjer je c r+. Zpomba Naj bo k-členska metoda vsaj reda. Vstavimo z = in ugotovimo ρ() =. Če je red r vsaj, lahko enačbo odvajamo in ponovno vstavimo z =. To da ρ () + σ() =. Če je torej metoda vsaj prvega reda, rečemo, da je konsistentna, podobno kot v izreku. Linearna veččlenska metoda je konsistentna, če velja ρ() =, ρ () + σ() =.
Zpomba Adamsove metode smo izpeljali tako, da smo diferencialno enačbo integrirali po zadnjem podintervalu. Torej je prvi rodovni polinom nujno oblike ρ(ξ) = ξ k + ξ k. Privzemimo k = in poiščimo σ za eksplicitno metodo. Ker je β =, je σ kvečjemu prve stopnje. Iz () ugotovimo ρ( + z) σ( + z) = ( ln( + z) + O z ) = ( + z) ( + z) ln( + z) ( z + ) z ( + O z ) = ( + z) = ( + z)z = 3 ( + z) + O (z ). Tako smo dobili ( + O z ) = ( + z ) ( + O z σ(ξ) = 3 ξ in ( 3fn y n = y n + h ) J.Kozak Uvod v numerične metode - f n. 35 / 4
J.Kozak Uvod v numerične metode - 36 / 4 Zpomba Naj bo ponovno k =. Izpeljimo še implicitno metodo, β. Polinom σ je stopnje, lokalna napaka je reda 3. Torej ρ( + z) σ( + z) = Sledi metoda je ( ln( + z) + O z 3) = ( + z) ( + z) ln( + z) ( z + ) z ( + O z 3) = = ( + z)z = 5 ( + z) + 3 ( + z). σ(ξ) = 5 ξ + 3 ξ, ( 5 y n = y n + h f n + 3 f n ) f n. ( + O z 3) =
Milneove metode Razred veččlenskih metod, ki temeljijo na Newton-Cotesovih integracijskih pravilih, poimenujmo po najbolj znanem predstavniku, po Milneovi metodi. Ta je četrtega reda. Te metode najpogosteje uporabljamo kot prediktor-korektor metode. Eksplicitni del koraka da začetni približek, implicitni korektor vrednost popravi. Pri tem izbiramo prediktor in korektor tako, da sta istega reda. Formalno te metode izpeljemo z integracijo diferencialne enačbe po vseh zadnjih k podintervalih, [x n k, x n ]. Tako dobimo x n x n y (x) dx = y(x n ) y(x n k ) = f(x, y(x)) dx. x n k x n k Z izbiro intervala integracije je prvi rodovni polinom ρ določen, ρ(ξ) = ξ k + za vse metode Milneovega tipa. Za aproksimacijo integrala f uporabimo Newton-Cotesova pravila, za prediktor odprtega, za korektor pa zaprtega tipa. J.Kozak Uvod v numerične metode - 37 / 4
J.Kozak Uvod v numerične metode - 38 / 4 Da dosežemo enak red lokalne napake za prediktor in korektor, moramo za prediktor izbrati za dva večji k. Metoda se glasi k+ y (p) n = y n k + h β (p) i f n i, y n (k) = y n k + h i= k i= β i (k) f n i, Tu (p) označuje prediktor, (k) pa korektor. z f n = f ( x n, y n (p) ).
J.Kozak Uvod v numerične metode - 39 / 4 Zpomba (Milneova metoda) Tu je k = 4 za prediktor, torej k = za korektor. Prediktor: ρ(ξ) = ξ 4 +, ρ( + z) ( σ( + z) = ln( + z) + O z 4) = Dobili smo = 8 3 ( + z)3 + 4 3 ( + z) + 8 3 ( + z) + O (z 4). y n (p) = y n 4 + h 3 (8f n 4f n + 8f n 3 ). Še korektor (Simpsonovo pravilo), ρ(ξ) = ξ +, ρ( + z) ( σ( + z) = ln( + z) + O z 4) = = 3 ( + z) + 4 3 ( + z) + 3 + O (z 4).
Implicitne BDF metode Kratica BDF označuje metode, ki temeljijo na obratnih končnih diferencah. Izpeljemo jih tako, da v diferencialni enačbi aproksimiramo odvod. Stabilne so le v implicitni obliki. Veliko se uporabljajo tudi v reševanju togih problemov. Izpeljava: ( ) k t y(x) p(x) = p(x n + t h) = ( ) i i y n. i Sledi dp dx = p d t = t d x h x=xn t= Odvod binomskega koeficienta da d dt ( ( t)( t ) ( t (i )) i! dp dx i= ( d k ( ) ) t ( ) i i y n. dt i i= t= = h ) = t=, i =, ( ) i, i i >, J.Kozak Uvod v numerične metode - x=x i= 4 / 4 k i i y n.,
J.Kozak Uvod v numerične metode - 4 / 4 To pomnožimo s h in dobimo BDF metode v obliki k i i y n = hf(x n, y n ), k =,,... i= k metoda y n = y n + hf (x n, y n ) y n = 4 3 y n 3 y n + 3 hf (x n, y n ) 3 y n = 8 y n 9 y n + y n 3 + 6 hf (x n, y n ) 4 y n = 48 5 y n 36 5 y n + 6 5 y n 3 3 5 y n 4 + 5 hf (x n, y n ) 5 y n = 3 37 y n 3 37 y n + 37 y n 3 75 37 y n 4+ + 37 y n 5 + 6 37 hf (x n, y n )