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

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í  .