Jump to content

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

From Wikiversity

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,