.4. RUNGĖS IR KUTO METODAS.4. Rungės ir Kuto metodas.4.. Prediktoriaus-korektoriaus metodas Palyginkime išreikštinį ir simetrinį Eulerio metodus. Pirmojo iš jų pagrindinis privalumas tas, kad išreikštinio metodo realizacija yra daug ekonomiškesnė, tai ypač svarbu, kai sprendžiame dideles PDL sistemas. Tačiau simetrinio Eulerio metodo tikslumo eilė yra antroji, todėl norėdami apskaičiuoti PDL pradinio uždavinio (.) sprendinį numatytu tikslumu, galime naudoti didesnį žingsnį τ nei išreikštiniu Eulerio metodu, tai yra sumažiname žingsniu skaičiu. Šiame poskyryje sukonstruosime nauja išreikštinį baigtiniu skirtumu metoda, kurio aproksimacijos tikslumo eilė irgi yra antroji. Pirmiausia pažymėsime, kad simetrinio Eulerio metodo aproksimacijos tikslumo eilė nepasikeis, jei naudosime lygtį Y n+ Y n = F (t n, Y n ) + F (t n, Y ), (.35) τ n+ kurioje pagalbinė funkcija Y apskaičiuojama taip, kad imdami diferencialinio uždavinio sprendinį U gausime nelygybę F (t n+, U n+ ) F (t n+, U ) Cτ. Parodysime, kad Y galima apskaičiuoti išreikštiniu Eulerio metodu Y = Y n + τ n+ F (t n, Y n ). (.3) Pirmąjį algoritmo žingsnį (.3) vadinsime prediktoriumi (angl. predict prognozuoti). Antrasis šio algoritmo žingsnis (.35) taip pat yra išreikštinis, jis vadinamas korektoriumi (angl. correct ištaisyti). Tarkime, kad funkcija F (t, U) yra Lipšico funkcija. Be to, papildomai pareikalaukime, kad PDL pradinio uždavinio sprendinio antroji išvestinė būtų aprėžta iš viršaus u i (t) C, i =,,, M. (.37) Tada iš (.5) ir (.3) nelygybiu gausime tokius įverčius F (t n+, U n+ ) F (t n+, U ) L U n+ U L U n+ U n τ n+ F (t n, U n ) = L U n+ U n τ n+ U (t n ). Išskleidę U n+ Teiloro eilute ir pasinaudoję (.37) salyga gausime reikalinga aproksimavimo paklaidos įvertį F (t n+, U n+ ) F (t n+, U ) LC τ.
SKYRIUS. PDL PRADINIS UŽDAVINYS Skaičiavimo eksperimento rezultatai, kai sprendžiame šilumos spinduliavimo uždavinį pateikti.5 lentelėje. Palyginkite šiuos rezultatus su simetrinio Eulerio metodo sprendinio paklaidomis, pateiktomis.4 lentelėje..5 lentelė. Prediktoriaus-korektoriaus metodo tikslumo analizė τ E(τ) E(τ)/E(τ),000 3,53E- 4,03 0,500 8,770E-7 4,07 0,50,88E-7 4,009 0,5 5,4E-8 4,00 Prediktoriaus-korektoriaus metodu iš pradžiu prognozuojame sprendinio reikšmę, apskaičiuojame ja išreikštiniu Eulerio metodu, o paskui, remdamiesi didesnio tikslumo skaitinio integravimo formule ir naudodami šia reikšmę, patiksliname sprendinį. Pateiksime dar viena antrosios tikslumo eilės prediktoriaus-korektoriaus metoda. Šį karta (.9) formulėje integrala apskaičiuosime pagal viduriniu reikšmiu algoritma: Y = Y n + τ n+f (t n, Y n ), Y n+ Y n (.38) = F (t n+0,5, Y ). τ n+ Pažymėtina, kad prediktoriaus etape prognozuojame sprendinio reikšmę intervalo vidurio taške t = t n+0,5..4.. Rungės ir Kuto metodo bendroji schema Prediktoriaus-korektoriaus metode realizuodami viena jo žingsnį vektoriaus F (t, U) reikšmę skaičiavome dviejuose kiekvieno intervalo [t n, t n+ ] taškuose. Šitaip pavyko sukonstruoti išreikštinį antrosios tikslumo eilės metoda. Dabar pateiksime metodo apibendrinima, kai viename žingsnyje funkcijos F (t, U) reikšmės skaičiuojamos keliuose taškuose. Juos parenkame taip, kad gautojo artinio tikslumas būtų kuo didesnis. Toks metodas vadinamas Rungės ir Kuto (Runge - Kutta) metodu.
.4. RUNGĖS IR KUTO METODAS 3 m- pakopis išreikštinis Rungės ir Kuto metodas Sakykime, kad turime koeficientu lentelę, kuri dar vadinama Rungės ir Kuto metodo matrica: a b a 3 b 3 b 3. a m b m b m b m,m σ σ σ m σ m Tada nuosekliai apskaičiuojame išraiškas K = F (t n, Y n ), K = F (t n + a τ n+, Y n + τ n+ b K ), K 3 = F ( t n + a 3 τ n+, Y n + τ n+ (b 3 K + b 3 K ) ), K m = F ( t n + a m τ n+, Y n m ) + τ n+ b mj K j. j= Sprendinio Y n+ reikšmė apskaičiuojama išreikštine formule Y n+ = Y n + τ n+ m j= (.39) σ j K j. (.40) Taigi realizuodami m-pakopio Rungės ir Kuto metodo algoritma funkcijos F (t, U) reikšmes skaičiuojame m skirtinguose intervalo [t n, t n+ ] taškuose..4 pavyzdys. Dvipakopis Rungės ir Kuto metodo algoritmas. Prediktoriaus-korektoriaus metodo algoritmai (.35) (.3) ir (.38) yra atskiri dvipakopio Rungės ir Kuto metodo atvejai. Jų koeficientu lentelės ir realizavimo formulės tokios: (.35) (.3) algoritmas 0, 5 0, 5 K = F (t n, Y n ), K = F (t n + τ n+, Y n + τ n+ K ), Y n+ Y n = K + K. τ n+
4 SKYRIUS. PDL PRADINIS UŽDAVINYS (.38) algoritmas 0, 5 0, 5 0 K = F (t n, Y n ), K = F ( t n + τ n+, Y n + τ n+k ), Y n+ Y n τ n+ = K. Pateiksime m-pakopio Rungės ir Kuto metodo algoritma. procedure Rungės ir Kuto metodo algoritmas begin. Pradinės sąlygos skaičiavimas t = 0, n = 0 for i = to M Y N[i] = U 0 [i]. Sprendinio skaičiavimas nauju laiku t n+ while ( (t + τ n+ ) T ) for i = to M Y S[i] = Y N[i] 3. Tarpinių vektorių K j skaičiavimas for i = to M K [i] = f i (t, Y S) for j = to m for i = to M Y N[i] = Y S[i] for k = to j Y N[i] = Y N[i] + τ n+ b jk K k [i]
.4. RUNGĖS IR KUTO METODAS 5 end for i = to M K j [i] = f i (t + τ n+ a j, Y N) 4. Vektoriaus Y n+ skaičiavimas for i = to M Y N[i] = Y S[i] for j = to m Y N[i] = Y N[i] + τ n+ σ j K j (i) t = t + τ n+ n = n + end while.4.3. Rungės ir Kuto metodo koeficientu radimas Algoritmo koeficientai a i, b ij, σ i parenkami taip, kad metodo aproksimacijos tikslumas būtų didžiausias. Išnagrinėsime dvipakopį Rungės ir Kuto metoda. Iš šio pavyzdžio bus aišku, kaip koeficientai randami ir bendruoju atveju. Imsime vienos diferencialinės lygties atvejį, kai M =. Lygčių sistemu analizė atliekama visiškai taip pat, be to, tik Rungės ir Kuto metodams, kuriu tikslumo eilė didesnė už ketvirtaj a, atsiranda papildomu lygčiu, kurias turi tenkinti metodo koeficientai. Kadangi paprastai randame ne konkretu vienintelį nurodyto tikslumo Rungės ir Kuto metoda, o metodu šeima, priklausančia nuo keliu laisvu parametru, tai dažniausiai pavyksta patenkinti ir šias papildomas lygtis. Dvipakopio Rungės ir Kuto metodo formulėse yra keturi laisvi parametrai a, b, σ, σ : K = f(t n, y n ), K = f(t n + a τ, y n + b τk ), y n+ = y n + τ(σ K + σ K ). Perrašykime paskutiniaj a lygybę standartine forma: y n+ y n = σ f(t n, y n ) + σ f ( t n + a τ, y n + b τf(t n, y n ) ). τ
SKYRIUS. PDL PRADINIS UŽDAVINYS Metodo aproksimacijos tikslumo analizė. Priminsime, kad aproksimavimo paklaida vadinamas dydis, gaunamas įrašius į baigtiniu skirtumu lygtį PDL pradinio uždavinio sprendinį, taigi Rungės ir Kuto algoritmo aproksimavimo paklaida yra ψ n = un+ u n τ σ f(t n, u n ) σ f ( t n + a τ, u n + τb f(t n, u n ) ). Tarkime, kad diferencialinio uždavinio (.) sprendinys ir funkcija F (t, U) tenkina tokias glodumo salygas (jas užrašome bendrajam PDL sistemos atvejui): u i (t) C 3, i =,,, M, t [0, T ], f i (t, U) t α u β M, α + β + γ =. j uγ k Tada teisingi tokie Teiloro skleidiniai: u n+ u n τ = u (t n ) + τ u (t n ) + O(τ ), f ( t n + a τ, u n + τb f(t n, u n ) ) = f(t n, u n f(t n, u n ) ) + τa t + τb f(t n, u n ) f(t n, u n ) + O(τ ). u Diferencijuodami (.) lygtį t atžvilgiu, išreiškiame sprendinio išvestinę: u = f t + f u u = f t + f u f. Įrašę šiuos skleidinius į aproksimavimo paklaidos išraiška, gausime lygybę ψ n = ( σ σ )f(t n, u n ) + τ ( ) f(t n, u n ) 0, 5 σ a t + τ(0, 5 σ b )f(t n, u n ) f(t n, u n ) + O(τ ). u Norėdami gauti antrosios tikslumo eilės aproksimacija, sudarome lygčiu sistema σ + σ =, σ a = 0, 5, σ b = 0, 5.
.4. RUNGĖS IR KUTO METODAS 7 Taigi keturiems dvipakopio Rungės ir Kuto metodo koeficientams nustatyti gavome tris lygtis. Todėl vienas parametras lieka laisvas, tai yra sukonstravome Rungės ir Kuto metodų šeima, priklausančia nuo parametro σ: σ σ σ σ Jos skaičiavimo formulės diferencialiniu lygčiu sistemoms yra tokios: K = K(t n, Y n ), K = F ( t n + τ σ, Y n + τ σ K ), Y n+ = Y n + τ ( ) ( σ)k + σk. Imdami σ = ir σ = 0, 5 gauname du atskirus šios Rungės ir Kuto metodo šeimos algoritmus, išnagrinėtus.4 pavyzdyje. Jeigu Teiloro skleidiniuose būtume išrašę ir O(τ ) eilės narius, tai būtume galėję įsitinkinti, kad vieno papildomo parametro neužteks visus juos prilyginti nuliui. Galima ir paprasčiau įrodyti, kad nėra tokio dvipakopio Rungės ir Kuto metodo, kurio tikslumo eilė būtų trečioji. Tam užtenka rasti bent viena kontrapavyzdį. Nagrinėkite tokį uždavinį du dt = u, u(0) =, kurio sprendinys yra u(t) = e t. Jį aproksimuokime dvipakopiu Rungės ir Kuto metodu: Y n+ Y n τ = ( σ)y n + σ ( Y n + τ σ Y n) = ( + τ ) Y n. ir ištirkite šio metodo aproksimavimo paklaid a (tokia analizė pateikta vadovėlyje, bet pabandykite ją atlikti savatankiškai).
8 SKYRIUS. PDL PRADINIS UŽDAVINYS.4.4. Daugiapakopiai Rungės ir Kuto algoritmai Panaši analizė rodo, kad ir kitoms m reikšmėms gauname ne viena konkretu Rungės ir Kuto metoda, o metodu šeima, priklausančia nuo vieno ar keliu parametrų. Šiuos parametrus parenkame remdamiesi papildomais kriterijais: algoritmo realizavimo ekonomiškumu, stabilumo reikalavimu ir kitais. Pažymėsime, kad Rungės ir Kuto metodo pakopu skaičius (o kartu ir funkcijos F (t, U) reikšmiu skaičiavimo skaičius) didėja greičiau nei metodo aproksimacijos tikslumo eilė. Šie duomenys pateikti. lentelėje.. lentelė. Rungės ir Kuto metodo aproksimacijos tikslumo eilės priklausomybė nuo etapų skaičiaus Etapų skaičius m 3 4 5 7 8 Tikslumo eilė p 3 4 4 5 Pateiksime skaičiavimo praktikoje dažniausiai naudojamu Rungės ir Kuto algoritmu koeficientus: m = 3, p = 3 : 0,5 0,5-0,5 0,5 0,75 0 0,75 (.4) 4 9 3 4 9 m = 4, p = 4 : 0, 5 0, 5 0,5 0 0,5 0 0 3 3 0,5 0,5 0, 5 + + 3
.4. RUNGĖS IR KUTO METODAS 9 Keturpakopiu Rungės ir Kuto metodu išspręsime diferencialiniu lygčiu sistemos, aprašančios dvieju planetu judėjimo uždavinį (žr. vadovėlį)..7 lentelėje pateikos diskrečiojo sprendinio globaliosios paklaidos E(τ) reikšmės taške t =..7 lentelė. Keturpakopio Rungės ir Kuto metodo tikslumo analizė τ E(τ) E(τ)/E(τ) 0,000 3,799E-4 8,994 0,0500,05E-5 8,55 0,050,70E- 7,53 0,05,95E-8,838 Matome, kad du kartus sumažinus integravimo žingsnį, diskrečiojo sprendinio globalioji paklaida sumažėja apie kartų.