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),
![{\displaystyle |\varepsilon (t_{i},H)|=2|{\overline {\eta }}_{i+1}^{H}-\eta _{i+1}^{H}|\approx \gamma H^{2},\ H\in \mathbb {R} _{+}\implies \gamma \approx {\frac {|\varepsilon (t_{i},H)|}{H^{2}}}\equiv {\frac {2|{\overline {\eta }}_{i+1}^{H}-\eta _{i+1}^{H}|}{H^{2}}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/581c9e02b87f26e48e667def1c2987bbe0fb8de5)
- 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,