12.07.2015 Views

1.4. Rung˙es ir Kuto metodas - techmat.vgtu.lt

1.4. Rung˙es ir Kuto metodas - techmat.vgtu.lt

1.4. Rung˙es ir Kuto metodas - techmat.vgtu.lt

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

22 1 SKYRIUS. PDL PRADINIS UŽDAVINYSSkaičiavimo eksperimento rezu<strong>lt</strong>atai, kai sprendžiame šilumos spinduliavimouždavinį pateikti 1.5 lentelėje. Palyginkite šiuos rezu<strong>lt</strong>atus su simetrinio Euleriometodo sprendinio paklaidomis, pateiktomis 1.4 lentelėje.1.5 lentelė. Prediktoriaus-korektoriaus metodo tikslumo analizėτ E(τ) E(2τ)/E(τ)1,000 3,523E-6 4,0310,500 8,770E-7 4,0170,250 2,188E-7 4,0090,125 5,461E-8 4,006Prediktoriaus-korektoriaus metodu iš pradžiu˛prognozuojame sprendinio reikšmę,apskaičiuojame ja˛išreikštiniu Eulerio metodu, o paskui, remdamiesi didesniotikslumo skaitinio integravimo formule <strong>ir</strong> naudodami šia˛reikšmę, patikslinamesprendinį.Pateiksime dar viena˛antrosios tikslumo eilės prediktoriaus-korektoriaus metoda.˛ Šį karta ˛ (1.9) formulėje integrala˛apskaičiuosime pagal viduriniu˛reikšmiu˛algoritma:˛⎧⎪⎨ Y ∗ = Y n + 1 2 τ n+1F (t n , Y n ) ,Y⎪⎩n+1 − Y n(1.38)= F (t n+0,5 , Y ∗ ) .τ n+1Pažymėtina, kad prediktoriaus etape prognozuojame sprendinio reikšmę intervalovidurio taške t = t n+0,5 .<strong>1.4.</strong>2. Rungės <strong>ir</strong> <strong>Kuto</strong> metodo bendroji schemaPrediktoriaus-korektoriaus metode realizuodami viena˛jo žingsnį vektoriausF (t, U) reikšmę skaičiavome dviejuose kiekvieno intervalo [t n , t n+1 ] taškuose. Šitaippavyko sukonstruoti išreikštinį antrosios tikslumo eilės metoda. ˛ Dabar pateiksimemetodo apibendrinima, ˛ kai viename žingsnyje funkcijos F (t, U) reikšmėsskaičiuojamos keliuose taškuose. Juos parenkame taip, kad gautojo artinio tikslumasbūtų kuo didesnis. Toks <strong>metodas</strong> vadinamas Rungės <strong>ir</strong> <strong>Kuto</strong> (Runge - Kutta)metodu.


<strong>1.4.</strong> RUNGĖS IR KUTO METODAS 23m- pakopis išreikštinis Rungės <strong>ir</strong> <strong>Kuto</strong> <strong>metodas</strong>Sakykime, kad turime koeficientu˛lentelę, kuri dar vadinama Rungės <strong>ir</strong> <strong>Kuto</strong>metodo matrica:a 2 b 21a 3 b 31 b 32. · · · · · · · · ·a m b m1 b m2 · · · b m,m−1σ 1 σ 2 · · · σ m−1 σ mTada nuosekliai apskaičiuojame išraiškas⎧K 1 = F (t n , Y n ) ,⎪⎨⎪⎩K 2 = F (t n + a 2 τ n+1 , Y n + τ n+1 b 21 K 1 ) ,K 3 = F ( t n + a 3 τ n+1 , Y n + τ n+1 (b 31 K 1 + b 32 K 2 ) ) ,(1.39)· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·K m = F ( t n + a m τ n+1 , Y n m−1 ∑ )+ τ n+1 b mj K j .j=1Sprendinio Y n+1 reikšmė apskaičiuojama išreikštine formuleY n+1 = Y n + τ n+1m ∑j=1σ j K j . (1.40)Taigi realizuodami m-pakopio Rungės <strong>ir</strong> <strong>Kuto</strong> metodo algoritma˛funkcijosF (t, U) reikšmes skaičiuojame m sk<strong>ir</strong>tinguose intervalo [t n , t n+1 ] taškuose.1.4 pavyzdys. Dvipakopis Rungės <strong>ir</strong> <strong>Kuto</strong> metodo algoritmas. Prediktoriaus-korektoriausmetodo algoritmai (1.35) – (1.36) <strong>ir</strong> (1.38) yra atsk<strong>ir</strong>idvipakopio Rungės <strong>ir</strong> <strong>Kuto</strong> metodo atvejai. Jų koeficientu˛lentelės <strong>ir</strong> realizavimoformulės tokios:(1.35) – (1.36) algoritmas⎧⎪⎨1 10, 5 0, 5K 1 = F (t n , Y n ) ,K 2 = F (t n + τ n+1 , Y n + τ n+1 K 1 ) ,⎪⎩Y n+1 − Y n= K 1 + K 2.τ n+1 2


24 1 SKYRIUS. PDL PRADINIS UŽDAVINYS(1.38) algoritmas0, 5 0, 50 1⎧⎪⎨⎪⎩K 1 = F (t n , Y n ),K 2 = F ( t n + 1 2 τ n+1, Y n + 1 2 τ n+1K 1),Y n+1 − Y nτ n+1= K 2 .Pateiksime m-pakopio Rungės <strong>ir</strong> <strong>Kuto</strong> metodo algoritma.˛procedure Rungės <strong>ir</strong> <strong>Kuto</strong> metodo algoritmasbegin1. Pradinės sąlygos skaičiavimast = 0, n = 0for i = 1 to MY N[i] = U 0 [i]end for2. Sprendinio skaičiavimas nauju laiku t n+1while ( (t + τ n+1 ) ≤ T )for i = 1 to MY S[i] = Y N[i]end for3. Tarpinių vektorių K j skaičiavimasfor i = 1 to MK 1 [i] = f i (t, Y S)end forfor j = 2 to mfor i = 1 to MY N[i] = Y S[i]for k = 1 to j − 1Y N[i] = Y N[i] + τ n+1 b jk K k [i]end forend for


<strong>1.4.</strong> RUNGĖS IR KUTO METODAS 25endfor i = 1 to MK j [i] = f i (t + τ n+1 a j , Y N)end forend for4. Vektoriaus Y n+1 skaičiavimasfor i = 1 to MY N[i] = Y S[i]for j = 1 to mY N[i] = Y N[i] + τ n+1 σ j K j (i)end forend fort = t + τ n+1n = n + 1end while<strong>1.4.</strong>3. Rungės <strong>ir</strong> <strong>Kuto</strong> metodo koeficientu˛radimasAlgoritmo koeficientai a i , b ij , σ i parenkami taip, kad metodo aproksimacijostikslumas būtų didžiausias. Išnagrinėsime dvipakopį Rungės <strong>ir</strong> <strong>Kuto</strong> metoda. ˛ Iššio pavyzdžio bus aišku, kaip koeficientai randami <strong>ir</strong> bendruoju atveju.Imsime vienos diferencialinės lygties atvejį, kai M = 1. Lygčių sistemu˛analizėatliekama visiškai taip pat, be to, tik Rungės <strong>ir</strong> <strong>Kuto</strong> metodams, kuriu˛tikslumoeilė didesnė už ketv<strong>ir</strong>taj ˛ a, ˛ ats<strong>ir</strong>anda papildomu˛lygčiu, ˛ kurias turi tenkinti metodokoeficientai. Kadangi paprastai randame ne konkretu˛vienintelį nurodyto tikslumoRungės <strong>ir</strong> <strong>Kuto</strong> metoda, ˛ o metodu˛šeima, ˛ priklausančia˛nuo keliu˛laisvu˛parametru,˛tai dažniausiai pavyksta patenkinti <strong>ir</strong> šias papildomas lygtis.Dvipakopio Rungės <strong>ir</strong> <strong>Kuto</strong> metodo formulėse yra keturi laisvi parametrai a 2 ,b 21 , σ 1 , σ 2 :K 1 = f(t n , y n ),K 2 = f(t n + a 2 τ, y n + b 21 τK 1 ),y n+1 = y n + τ(σ 1 K 1 + σ 2 K 2 ) .Perrašykime paskutiniaj ˛ a˛lygybę standartine forma:y n+1 − y n= σ 1 f(t n , y n ) + σ 2 f ( t n + a 2 τ, y n + b 21 τf(t n , y n ) ) .τ


26 1 SKYRIUS. PDL PRADINIS UŽDAVINYSMetodo aproksimacijos tikslumo analizė. Priminsime, kad aproksimavimo paklaidavadinamas dydis, gaunamas įrašius į baigtiniu˛sk<strong>ir</strong>tumu˛lygtį PDL pradiniouždavinio sprendinį, taigi Rungės <strong>ir</strong> <strong>Kuto</strong> algoritmo aproksimavimo paklaida yraψ n = un+1 − u nτ− σ 1 f(t n , u n ) − σ 2 f ( t n + a 2 τ, u n + τb 21 f(t n , u n ) ) .Tarkime, kad diferencialinio uždavinio (1.1) sprendinys <strong>ir</strong> funkcija F (t, U) tenkinatokias glodumo salygas ˛ (jas užrašome bendrajam PDL sistemos atvejui):|u ′′′i (t)| ≤ C 3 , i = 1, 2, · · · , M, t ∈ [0, T ] ,∂ 2 f i (t, U)∣∂t α ∂u β ∣ ≤ M 2 , α + β + γ = 2 .j ∂uγ kTada teisingi tokie Teiloro skleidiniai:u n+1 − u nτ= u ′ (t n ) + τ 2 u′′ (t n ) + O(τ 2 ) ,f ( t n + a 2 τ, u n + τb 21 f(t n , u n ) ) = f(t n , u n ∂f(t n , u n )) + τa 2∂t+ τb 21 f(t n , u n ) ∂f(t n, u n )+ O(τ 2 ) .∂uDiferencijuodami (1.1) 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 = (1 − σ 1 − σ 2 )f(t n , u n ) + τ ( )∂f(t n , u n )0, 5 − σ 2 a 2∂t+ τ(0, 5 − σ 2 b 21 )f(t n , u n ) ∂f(t n, u n )+ O(τ 2 ) .∂uNorėdami gauti antrosios tikslumo eilės aproksimacija, ˛ sudarome lygčiu˛sistema˛⎧⎪⎨ σ 1 + σ 2 = 1 ,σ 2 a 2 = 0, 5 ,⎪⎩σ 2 b 21 = 0, 5 .


<strong>1.4.</strong> RUNGĖS IR KUTO METODAS 27Taigi keturiems dvipakopio Rungės <strong>ir</strong> <strong>Kuto</strong> metodo koeficientams nustatyti gavometris lygtis. Todėl vienas parametras lieka laisvas, tai yra sukonstravome Rungės <strong>ir</strong><strong>Kuto</strong> metodų šeima, ˛ priklausančia˛nuo parametro σ:12σ12σ1 − σ σJos skaičiavimo formulės diferencialiniu˛lygčiu˛sistemoms yra tokios:⎧⎪⎨⎪⎩K 1 = K(t n , Y n ) ,K 2 = F ( t n + τ2σ , Y n + τ2σ K )1 ,Y n+1 = Y n + τ ( )(1 − σ)K 1 + σK 2 .Imdami σ = 1 <strong>ir</strong> σ = 0, 5 gauname du atsk<strong>ir</strong>us šios Rungės <strong>ir</strong> <strong>Kuto</strong> metodo šeimosalgoritmus, išnagrinėtus 1.4 pavyzdyje.Jeigu Teiloro skleidiniuose būtume išrašę <strong>ir</strong> O(τ 2 ) eilės narius, tai būtumegalėję įsitinkinti, kad vieno papildomo parametro neužteks visus juos prilygintinuliui.Galima <strong>ir</strong> paprasčiau įrodyti, kad nėra tokio dvipakopio Rungės <strong>ir</strong> <strong>Kuto</strong> metodo,kurio tikslumo eilė būtų trečioji. Tam užtenka rasti bent viena˛kontrapavyzdį.Nagrinėkite tokį uždavinį⎧⎨⎩dudt = u ,u(0) = 1 ,kurio sprendinys yra u(t) = e t . Jį aproksimuokime dvipakopiu Rungės <strong>ir</strong> <strong>Kuto</strong>metodu:Y n+1 − Y nτ= (1 − σ)Y n + σ ( Y n + τ2σ Y n) = ( 1 + τ )Y n .2<strong>ir</strong> išt<strong>ir</strong>kite šio metodo aproksimavimo paklaid ˛ a (tokia analizė pateikta vadovėlyje,bet pabandykite ją atlikti savatankiškai).


28 1 SKYRIUS. PDL PRADINIS UŽDAVINYS<strong>1.4.</strong>4. Daugiapakopiai Rungės <strong>ir</strong> <strong>Kuto</strong> algoritmaiPanaši analizė rodo, kad <strong>ir</strong> kitoms m reikšmėms gauname ne viena˛konkretu˛Rungės <strong>ir</strong> <strong>Kuto</strong> metoda, ˛ o metodu˛šeima, ˛ priklausančia˛nuo vieno ar keliu˛parametrų.Šiuos parametrus parenkame remdamiesi papildomais kriterijais: algoritmorealizavimo ekonomiškumu, stabilumo reikalavimu <strong>ir</strong> kitais. Pažymėsime,kad Rungės <strong>ir</strong> <strong>Kuto</strong> metodo pakopu˛skaičius (o kartu <strong>ir</strong> funkcijos F (t, U) reikšmiu˛skaičiavimo skaičius) didėja greičiau nei metodo aproksimacijos tikslumo eilė. Šieduomenys pateikti 1.6 lentelėje.1.6 lentelė. Rungės <strong>ir</strong> <strong>Kuto</strong> metodo aproksimacijos tikslumo eilės priklausomybė nuoetapų skaičiausEtapų skaičius m 1 2 3 4 5 6 7 8Tikslumo eilė p 1 2 3 4 4 5 6 6Pateiksime skaičiavimo praktikoje dažniausiai naudojamu˛Rungės <strong>ir</strong> <strong>Kuto</strong> algoritmu˛koeficientus:m = 3, p = 3 :0,5 0,51 -1 20,5 0,50,75 0 0,75(1.41)164616291349m = 4, p = 4 :0, 5 0, 50,5 0 0,51 0 0 1161313160,5 0,50, 5√2−121 −√22162− √ 222+ √ 222− √ 262+ √ 2316


<strong>1.4.</strong> RUNGĖS IR KUTO METODAS 29Keturpakopiu Rungės <strong>ir</strong> <strong>Kuto</strong> metodu išspręsime diferencialiniu˛lygčiu˛sistemos,aprašančios dvieju˛planetu˛judėjimo uždavinį (žr. vadovėlį). 1.7 lentelėjepateikos diskrečiojo sprendinio globaliosios paklaidos E(τ) reikšmės taške t = 1.1.7 lentelė. Keturpakopio Rungės <strong>ir</strong> <strong>Kuto</strong> metodo tikslumo analizėτ E(τ) E(2τ)/E(τ)0,1000 3,799E-4 18,9940,0500 2,052E-5 18,5150,0250 1,170E-6 17,5320,0125 6,951E-8 16,838Matome, kad du kartus sumažinus integravimo žingsnį, diskrečiojo sprendinioglobalioji paklaida sumažėja apie 16 kartų.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!