Cvičenie 11

Riešenie diferenciálnych rovníc

Konečne sa dostávame k pravdepodobne najdôležitejšej a najviac využívanej časti numerických metód - k riešeniu diferenciálnych rovníc. Základom je naučiť sa riešiť diferenciálnu rovnicu v tvare

\[y'=f(x,y(x)),\]

pretože metódy N-tého rádu sa prevádzajú na sústavu N diferenciálnych rovníc prvého rádu, viď prednáška. Rovnako ako v analýze, k vyriešeniu úlohy potrebujeme N podmienok. V rámci prvého cvičenia sa budeme venovať úlohe s počiatočnou podmienkou. Máme teda zadaný predpis derivácie (\(f(x,y(x))\)) spolu s počiatočnou podmienkou \(y(0)=c\) a našou úlohou je nájsť tvar funkcie \(y(x)\).

Runge-Kuttove metódy

Najjednoduchšia metóda na riešenie diferenciálnych rovníc sa nazýva Eulerova, ktorá vychádza priamo z Taylorovho rozvoja a približné riešenie v bode \(x_{i+1}\) vieme vyjadriť ako

\[y_{i+1}=y_i+hf(x_i,y_i)\]

kde \(h\) je krok použitý pri diferencii. Metóda je prvého rádu, chyba je teda úmerná \(h\).

Riešenie vieme spresniť využitím viacerých bodov, pomocou ktorých odhadujeme deriváciu. Jednou z možností je metóda stredného bodu, kde odhadujeme deriváciu pomocou dvoch bodov, konkrétne ako

\[y_{i+1}=y_i+hf(x_i+\frac{h}{2},y_i+\frac{h}{2}f(x_i,y_i)).\]

Na rovnakom princípe funguje aj Heunova metóda, ktorá namiesto odhadu derivácie v \(x_i+h/2\) využíva \(x_i+h\). Dá sa vyjadriť ako

\[y_{i+1}=y_i+\frac{h}{2} \left(f(x_i,y_i)+f(x_i+h,y_i+hf(x_i,y_i))\right).\]

Podrobnejšie vysvetlenie metód nájdete v pdf. Pozrite si video s implementáciou spomínaných metód od času 15:45 a metódy si naimplementujte, môžte použiť template.

Na predchádzajúce metódy sa dá pozerať aj obecne ako na Runge-Kuttove metódy, ktoré majú obecný tvar

\[y(x_i+h)=y(x_i)+h\Phi(x_i,y(x_i),h),\]

kde \(\Phi(x_i,y(x_i),h)\) je kombinácia rôznych hodnôt funkcie \(f\) v bodoch \((x_i+\alpha h, y_i+\beta h f(x_i,y_i))\) pre rôzne parametre \(\alpha\) a \(\beta\). Detailnejšie odvodenie viď pdf. Veľmi presná a často využívaná metóda zo skupiny metód Runge-Kutta je metóda štvrtého rádu, nájdete aj pod názvom RK4.

Sústava diferenciálnych rovníc

Princíp riešenia sústavy diferenciálnych rovníc zostáva totožný ako v prípade jednej rovnice. Detailne je to vysvetlené v pdf na príklade riešenia Keplerovej úlohy. Úlohu si môžte implementovať ľubovoľnou metódou sami. Kto by s tým mal problém, jednoduchú implementáciu nájdete vo videu (0:00-26:28). Sofistikovanejší skript, ktorý je takisto rozoberaný vo videu si môžte stiahnuť tu.

Takisto si prezrite pdf k ďalším užitočným metódam používaných na riešenie ODR (Leap-Frog, Bulirsch-Stoer, implicitný Euler, prediktor-korektor).

Domáca úloha

Deadline na odovzdanie domácej úlohy je streda 5. Máj 2021 23:59:59. Konzultácie a odovzdanie úlohy cez chat v MS Teams. Zadanie dostanete takisto v MS Teams.

Comments