Obyčajné differenciálne rovnice/Úvod do Runge-Kutta metód

From testwiki
Revision as of 18:06, 5 August 2024 by imported>Hauc3378
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Runge-Kutta metódy

Metódy Runge-Kutta (RKV) sú špeciálne jednokrokové metódy, ktoré vďaka svojej štruktúre umožňujú vyšší stupeň konzistencie, a tým aj vyššiu presnosť numerického riešenia. Tieto metódy vyvinul nemecký matematik Wilhelm Kutta v roku 1901 na základe článku Carla Rungeho z roku 1895.

Ak sa pozrieme na rovnicu y(t)=f(t,y(t)), vyšší rád konzistencie metódy Runge-Kutta je spôsobený vyšším počtom vyhodnotení funkcie f (pravá strana rovnice) v bodoch medzi ti und ti+1=ti+h dosiahnuté. Medziľahlé body ti+ch voláme Kroky, oder Body podpory, pričom c[0,1] a h je prírastok.

V doteraz študovaných ESV, ako sú Eulerova metóda, lichobežníkové pravidlo, pravidlo stredového bodu (v explicitnej alebo implicitnej forme), sa v každom kroku použilo jedno alebo dve vyhodnotenia f v bodoch ti,ti+1/2 alebo ti+1. V RKV sa počet bodov mriežky zvyšuje a ich poloha sa určuje primerane, aby sa dosiahol čo najvyšší poriadok konzistencie. Die bisher bekannten ESV können als die einfachsten Runge-Kutta Verfahren einordnet werden.



'Definícia 4.1. ("Runge-Kutta metóda").

Nech s je počet stupňov/podporných bodov, As×s je koeficientová matica so zápismi (A)j,m=:ajm, nech bs vektor váh a cs vektor výberových bodov.
Metóda s pravidlom η0=y0,kj=f(ti+hcj,ηi+hm=1sajmkm)für j=1,,s,(4.1)ηi+1=ηi+hj=1skjbjfür i=0,1,,Nh1(4.2) sa nazýva s-kroková Runge-Kutta metóda.


Metódy Runge-Kutta sa dajú špecifikovať aj schematicky v takzvanej Butcherovej tabuľke:

oder kurz


c=(c1cs),bT=(b1,bs).


Príklad 4.1.

Ohodnotenie funkcie kj RKV pre j=2 je k2=f((ti+hc2,ηi+hm=1sa2mkm)=f((ti+hc2,ηi+ha2k), kde a2=(a21,,a2s) je druhý riadok matice A a k2=(k1,,ks) .

Nová hodnota numerického riešenia po jednom kroku RKV (nazývanom aj Runge-Kutta aktualizácia) sa vypočíta podľa (4.2) ako ηi+1=ηi+hj=1skjbj. Porovnanie tejto rovnice s Volterrovou integrálnou rovnicou (2.1) na intervale (ti,ti+1), y(ti+h)=y(ti)+titi+1f(s,y(s))ds vedie k nasledujúcim úvahám: Ak integrál titi+1f(s,y(s))ds zmysluplne nahradíme súčtom takým, že hj=1skjbjtiti+1f(s,y(s))ds, na výpočet novej hodnoty f sa použije kvadratúra ηi+1. Tu kjs uzly tejto kvadratúry v bodoch mriežky ti+hcj (pozri (4.1)) a bj sú váhy kvadratúry. Skonštruovať RKV teda znamená nájsť vhodnú kvadratúru integrálu titi+1f. Najjednoduchšie RKV (ide o jednokrokové metódy uvedené v kapitole 3) zahŕňajú aplikáciu kvadratúr, ako je pravidlo obdĺžnika, stredového bodu a lichobežníka pre integrál titi+1f(s,y(s))ds (pozri poznámku 3.1 bod iii) a obrázky 3.1, 3.2, 3.3, 3.4). Butcherovu tabuľku možno interpretovať takto: Vektor c opisuje body mriežky a vektor b opisuje váhy príslušnej kvadratúry f na intervale (ti,ti+1). Die Matrix A spiegelt in gewissem Sinne die Differentialgleichung zurück. Dies kann wie folgt begründet werden:
Nach der Definition der Runge-Kutta Verfahren, siehe (4. 1), und mithilfe der Differentiagleichung y=f(t,y) kann darauf geschlossen werden, dass die kj die Ableitungen der gesuchten Funktion an den Stützstellen ti+hcj approximieren, sodass mit j=1,s und i - fest, kjy(ti+hcj)

platí. Keďže na výpočet A sa používa matica kj, automaticky sa tým vyjadruje diferenciálna rovnica vo vyššie opísanom zmysle.

Na rozlíšenie explicitných a implicitných metód RK možno použiť maticu A:


  • Explicitná Runge-Kutta metóda (eRKV):

Ak je matica A dolná trojuholníková matica, ide o explicitnú RKV. V tomto prípade sa v každom k1,,kj1 kroku na výpočet ti použije iba predtým vypočítaná kj,j=1,s. V tomto prípade môžete explicitne vypočítať kj vložením ako kj=f(ti+hcj,ηi+hm=1j1ajmkm).


  • 'Implicitná Runge-Kutta metóda (iRKV):
    Implicitná Runge-Kutta metóda (iRKV):

Ak je matica A plne vyplnená matica, potom kj všeobecne závisí od všetkých k1,,ks pre každé j=1,s. Výpočet kj sa potom vykoná riešením (lineárnej alebo prípadne nelineárnej) sústavy rovníc. V tomto prípade je výpočet kj jednoduchší alebo lacnejší, ak A je trojuholníková matica. V tomto prípade sa rozlišuje medzi

    • DIRK-metóda: ’diagonálna implicitná metóda RK’:

Matrix A je trojuholníková matica s diag(A)𝟎,

    • SDIRK-metóda: ’jednoducho diagonálna implicitná metóda RK’:

matica A je trojuholníková matica s diag(A)=λdiag(I)𝟎, λ, I ist eine Einheitsmatrix,

    • SIRK-metóda ’jednoducho implicitný postup RK’:

matica A je plne vyplnená matica, pričom diag(A)=λdiag(I) a horná trojuholníková matica tiež pozostáva z λ's.


Teraz uvedieme niekoľko konkrétnych príkladov Runge-Kutta metód:
Explicitná Eulerova metóda, s=1:


k1=f(ti+0.h,ηi+0.hk1)=f(ti,ηi)ηi+1=ηi+hk1ηi+hf(ti,ηi)=k1
Implicitná Eulerova metóda, s=1:


k1=f(ti+1.h,ηi+1.hk1)ηi+1=ηi+hk1%ηi+hf(ti+h,ηi+hk1)=k1=ηi+hf(ti+h,ηi+hk1=ηi+1)
Vylepšená Eulerova metóda (explicitné pravidlo stredového bodu), s=2:


k1=f(ti,ηi)k2=f(ti+h2,ηi+h2k1)ηi+1=ηi+h(0.k1+1.k2)ηi+hf(ti+h2,ηi+h2f(ti,ηi)=k1)=k2

Klasický Runge-Kutta postup, s=4:


k1=f(ti,ηi)k2=f(ti+h2,ηi+h2k1)k3=f(ti+12h,ηi+h2k2)k4=f(ti+h,ηi+hk3)ηi+1=ηi+h(k16+k23+k33+k46)

3/8- Pravidlo, s=4:


k1=f(ti,ηi)k2=f(ti+h3,ηi+h3k1)k3=f(ti+23h,ηih3k1+hk2)k4=f(ti+h,ηi+hk1hk2+hk3)ηi+1=ηi+h(k18+38k2+38k3+k48)


Ďalšie dve explicitné 3-stupňové RKV sú dané nasledujúcimi Butcherovými tabuľkami:

Heunova metóda, s=3 (1900): 3-stupňová eRKV