Jump to content

Obyčajné differenciálne rovnice/Runge-Kutta páry

From Wikiversity

4.2 Vložené Runge-Kutta páry

[edit]

Riadenie veľkosti kroku je možné aj pri explicitných Runge-Kutta metódach. Na rozdiel od prístupu opísaného v časti 3.2 pre riadenie veľkosti kroku explicitnej Eulerovej metódy sa tu veľkosť kroku pre odhad lokálnej chyby neznižuje na polovicu; namiesto toho sa používajú dve eRKV s rôznymi poradiami konzistencie. S cieľom minimalizovať počet vyhodnotení funkcie pri výpočte medzikrokov tieto dve „vložené“ eRKV používajú spoločné body vzorkovania. Na tomto mieste je potrebné uviesť, že podľa zistení o počte krokov a poradí eRKV si metóda vyššieho rádu vyžaduje ďalšie dodatočné medziľahlé body, aby sa dosiahol tento vyšší rád.

Ako vloženú Runge-Kutta dvojicu chápeme dve eRKV so spoločnými interpolačnými bodmi (a krokmi). Prvá z eRKV má rád konzistencie a druhá metóda dosahuje rád konzistencie s opornými bodmi a ďalšími opornými bodmi. Váhové vektory týchto dvoch eRKV sa vo všeobecnosti líšia a iteračné špecifikácie (aktualizácie Runge-Kutta) týchto dvoch metód sú Kvôli spoločným krokom s sa v oboch metódach používajú vyhodnotenia funkcií . Príkladom vloženej dvojice Runge-Kutta je
Fehlenbergova RK dvojica rádov 2 a 3:


4.2.1 Regulácia kroku pre Runge-Kutta páry

[edit]

V nasledujúcom texte sa obmedzíme na prípad a odvodíme vzorec pre riadenie šírky kroku. Nech sú numerické riešenia v , ktoré sú odvodené z presného riešenia namiesto a metódy majú poradie konzistencie a . Potom pre lokálne chyby po použití Taylorovho rozšírenia (s Taylorovým zvyškom) platí

wobei . nazývame vedúce členy chyby oboch metód. Sú to členy s najmenšou mocninou a obsahujú až -tú a -tú parciálnu deriváciu funkcie v . Po odčítaní týchto dvoch rovníc dostaneme


t. j. lokálnu chybu prvej metódy (eRKV1) možno odhadnúť ako rozdiel medzi dvoma numerickými riešeniami. Vo (4.9) zanedbáme zvyšok s vyššími mocninami , získame odhad lokálnej chyby pomocou numerických riešení dvoch vložených eRKV, [1]

Zároveň pre metódu rádu konzistencie platí


Chybovú konštantu potom možno vypočítať pre pevnú veľkosť kroku ako

Tento odhad konštánt chyby je základnou myšlienkou riadenia šírky kroku vo vložených Runge-Kutta metódach.
ALGORITHMUS:

  1. , zvolíme skúšobnú veľkosť kroku a toleranciu pre lokálnu chybu.
    Vypočítame numerické riešenie v ďalšom kroku so skúšobnou veľkosťou kroku :
    • pomocou kroku eRKV1 s veľkosťou kroku a krokov: ,
    • pomocou kroku eRKV2 s veľkosťou kroku a krokov: .
  2. Odhadnite konštantu chyby pomocou (4.10) ako
  1. Vypočítajte optimálnu veľkosť kroku tak, aby lokálna chyba približne zodpovedala zadanej tolerancii , pričom konštanta chyby sa odhaduje podľa vyššie uvedeného:
  2. Určte (a uložte) numerické riešenie v ďalšom kroku pomocou veľkosti kroku a metódy eRKV2 rádu :


Ďalšími príkladmi vložených Runge-Kutta metód sú dvojice vzorcov: Dorman Prince (4., 5. rádu) alebo Bogacki Shampine (2., 3. rádu), ktoré sú známe ako funkcie Matlabu 'ODE45' a 'ODE23'. Runge-Kutta dvojice sa často implementujú ako metóda typu FSAL (First Same As Last), pričom v každom časovom kroku sa uloží prvé vyhodnotenie funkcie , pretože to zodpovedá poslednému vyhodnoteniu predchádzajúceho kroku, ako je to v nasledujúcej metóde:


Tu platí nasledujúce

  1. Tento odhad predpokladá, že hodnoty zodpovedajú presnej hodnote v . V praxi to tak nie je. Keďže sa však numerické riešenie vyššieho rádu ukladá ako riešenie vo vložených Runge-Kutta metódach a to je bližšie k presnému riešeniu, v praxi sa môže použiť odhad lokálnej chyby pomocou numerických riešení založených na (takmer) presnom riešení .