Obyčajné differenciálne rovnice/Kontrola kroku pre jednokrokové metódy

Kontrola kroku pre jednokrokové metódy

edit

Nastavenie veľkosti kroku   počas numerického výpočtu riešenia zohráva dôležitú úlohu v úlohách s počiatočnou hodnotou, ktorých pravá strana je strmá funkcia. Ak sa v takýchto prípadoch zachová pevná veľkosť kroku, numerická chyba v oblastiach strmého nárastu z  stark wachsen und das numerische Verfahren versagen. Kontrola veľkosti kroku je nevyhnutná aj pre takzvané tuhé problémy s veľmi rozdielnymi rýchlosťami rastu zložiek riešenia. Problémy s tuhosťou sa budú podrobnejšie skúmať neskôr. V tejto časti opisuje, ako použiť presný výraz pre lokálnu chybu metódy na nastavenie veľkosti kroku  . Obmedzíme sa tu na explicitnú Euerovu metódu.

Lokálna chyba opisuje chybu, ktorú ESV pripúšťa v každom jednotlivom kroku výpočtu, pozri definíciu 3.8, alebo ako dobre sa funkcia metódy aproximuje pravej strane AWA,  . V prípade explicitnej Eulerovej metódy je lokálna chyba, vyhodnotená v bode    


Čím je funkcia   strmšia (čím väčšia  ), tým väčšia je lokálna chyba  . Cieľom riadenia veľkosti kroku je prispôsobiť veľkosť kroku priebehu funkcie   tak, aby sa lokálna chyba v každom kroku výpočtu   udržala pod určitou toleranciou.

Aby sme našli vhodnú veľkosť kroku v každom kroku, musíme vopred "skenovať" numerické riešenie a budúcu chybu. Pri explicitnej Eulerovej metóde sa tento odhad dá urobiť porovnaním numerického riešenia s riešením pomocou dvoch "polovičných" Eulerových krokov (s veľkosťou kroku  ). Aby sme to vysvetlili, najprv preskúmame lokálnu chybu Eulerovej metódy s polovičnou veľkosťou kroku:  


Lokálna chyba tejto metódy je dvakrát menšia ako chyba Eulerovho vzorca, pretože  


porovnaj (3.16). Podľa definície lokálnej chyby je lokálna chyba rovná rozdielu medzi presným a numerickým riešením (vypočítaným z presnej počiatočnej hodnoty),  , pozri poznámku 3.1 bod ii). V súlade s tým pre Eulerovu metódu dostaneme  

a pre Eulerovu metódu s polovičnou veľkosťou kroku  


Toto zistenie vedie k dvom záverom:
a) Lokálnu chybu Eulerovej metódy možno predpovedať pomocou rozdielu numerického riešenia s veľkosťou kroku   a polovičnou veľkosťou kroku,  


b) S vhodnou kombináciou dvoch riešení   je možné odstrániť vedúci chybový prvok   a rekonštruovať numerické riešenie druhého rádu, pretože  

Rovnica (3.19) je základom pre úpravu veľkosti kroku Eulerovej metódy. Lokálnu chybu   možno vopred určiť výpočtom rozdielu medzi numerickými riešeniami s plnou a polovičnou veľkosťou kroku  . Veľkosť kroku   sa volí tak, aby lokálna chyba neprekročila predtým zvolenú toleranciu  :


ALGORITM: Regulácia šírky kroku

  1.  , vyberte veľkosť skúšobného kroku   a toleranciu   pre lokálnu chybu.

V ďalšom kroku vypočítajte numerické riešenie  .

    • pomocou jedného kroku Eulerovej metódy s veľkosťou kroku  :  ,
    • pomocou dvoch krokov Eulerovej metódy s polovičnou veľkosťou kroku  ,  , pozri (3.17).
  1. Odhadnite... vedúca konštanta chyby pomocou (3.19),  
  2. Zvoľte optimálnu veľkosť kroku   tak, aby lokálna chyba   neprekročila zadanú toleranciu  :     Rovnica (3.20) Parameter   sa tu môže zvoliť na dodatočné škálovanie optimálnej veľkosti kroku. V praxi sa často používa  .
  3. Určite numerické riešenie   v ďalšom kroku   pomocou veľkosti kroku   a metódy druhého rádu,  , siehe (3. 17).

Tento krok nie je povinný; možno tu použiť aj klasickú explicitnú Eulerovu metódu, ale so stratou presnosti (poradie konzistencie).

Namiesto tolerancie absolútnej lokálnej chyby sa pri riadení veľkosti kroku často predpokladá tolerancia relatívnej chyby (%). V tomto prípade sa namiesto   použije relatívna chyba   sa používa na výpočet kroku,