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
- , 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).
- Odhadnite... vedúca konštanta chyby pomocou (3.19),
- 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 .
- 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,