Eulerova metóda

Je najjednoduchšou metódou na hľadanie približného riešenia Cauchyho úlohy typu (3.32). Postupne od danej začiatočnej dvojice hodnôt $x_0 , \ y_0$, ktoré určujú začiatočnú podmienku úlohy, budeme určovať hodnoty
$x_1,\ y_1, \dots, x_n,y_n$ takto: Zvolíme počiatočný krok $h_0$ a hodnota $x_1$ bude potom $x_1 = x_0 +h_0$. Teraz stačí vypočítať hodnotu $y_1$. Najskôr nájdeme pre hľadanú funkciu $y(x)$ Taylorov polynóm prvého stupňa v bode $ x_0$ (Taylorov polynóm - viď skriptá 1. diel, časť 7.7). Keďže predpokladáme, že nami zvolený krok $h_0$ je malý, máme

\begin{displaymath}y(x_1) \approx y(x_0) + h_0 y^ \prime(x_0).\end{displaymath}

V tejto aproximácii teraz nahradíme hodnotu $ y^\prime(x_0)$ hodnotou $f(x_0,y_0)$ z pôvodnej rovnice (3.32). Dostávame:

\begin{displaymath}y(x_1) \approx y(x_0) + h_0 f(x_0,y_0).\end{displaymath}

Na základe tejto úvahy vypočíme teraz $y_1$ takto:

\begin{displaymath}y_1= y_0 +h_0f(x_0,y_0). \end{displaymath}

Z vyššie uvedeného vyplýva, že hodnota $y_1$ bude aproximovať presnú hodnotu $y(x_1)$. Tento postup teraz možeme zopakovať pre $x_2,y_2$ atď. Rekurentne dostávame: Ak máme vypočítané hodnoty $ x_n, y_n$ pre nejaké $n$, zvolíme $h_n$ a potom

\begin{displaymath}
x_{n+1} = x_n+h_n,\ \ \ y_{n+1}= y_n+ h_n f(x_n,y_n).
\end{displaymath} (3.33)

Pre ekvidistantný krok $h$ to jest $h-h_0=h_1,\dots,h_n,\dots$ dostávame schému
\begin{displaymath}
x_{n+1} = x_n+h,\ \ \ y_{n+1}= y_n+ h f(x_n,y_n).
\end{displaymath} (3.34)

Bude nás zaujímať, s akou presnosťou sme vypočítali hodnoty neznámej funkcie $y(x)$ v bodoch $x_1,\dots,x_n$, teda aký je rozdiel $ y(x_n)-y_n$? (Podrobnejšie o pojmoch chyba metódy, chyby zaokrúhľovacie, aproximácia a konvergencia metódy, rád rýchlosti konvergencie metódy viď 1. diel skrípt, časti 1.4 a 7.14.) Označme teraz $d_n$ lokálnu diskretizačnú chybu to jest chybu, ktorej sa dopustíme v jednom kroku výpočtu Eulerovej metódy, to jest chybu, s akou hodnoty presného riešenia spĺňajú rekurentný vzťah:

\begin{displaymath}y(x_{n+1})=y(x_n) + h_n f(x_n,y_n)+d_n.\end{displaymath}

Meradlom, ako presne aproximuje postupnosť hodnôt $y_1,y_2,\dots,y_n$ presné riešenie danej začiatočnej úlohy, je globálna diskretizačná chyba. Označíme ju $e_n= y(x_n) -y_n$. V stručnosti povieme, že rád metódy je najväčšie prirodzené číslo $p$ také, že pre danú metódu aplikovanú na ľubovoľnú začiatočnú úlohu s dostatočne hladkým riešením (riešenie je spojitá funkcia, ktorá má aj spojité derivácie prvého a prípadne vyšších rádov) platí pre ľubovoľné $n$ a $h_n \rightarrow 0$ odhad

\begin{displaymath}d_n = O(h_n^{p+1}).\end{displaymath}

(Označenie $a=O(h)$ znamená, že existuje také číslo $C>0$, že $a\leq C h$.) Rád Eulerovej metódy odvodíme opäť veľmi ľahko použitím Taylorovho radu a jeho zvyšku. Máme

\begin{displaymath}d_n=y(x_{n+1}) - y(x_n)- h_n y^\prime (x_n),\end{displaymath}


\begin{displaymath}y(x_{n+1}) = y(x_n)- h_n y^\prime (x_n)+ \frac12 h_n^2
y^{\prime \prime }(\psi),\ \ \hbox{ pre } \psi \in (x_n, x_{n+1}).\end{displaymath}

Preto

\begin{displaymath}d_n = \frac12 h_n^2 y^{\prime \prime} (\psi).\end{displaymath}

Ak je $y^{\prime\prime}$ ohraničená, potom

\begin{displaymath}d_n=O(h_n^2)\end{displaymath}

a teda Eulerova metóda je prvého rádu. Riešenie musí byť ale dostatočne hladká funkcia, inak sa rád metódy zníži. Odvodíme teraz globálnu chybu Eulerovej metódy pre prípad ekvidistantného kroku, to jest $h:=h_0=h_1=\dots=h_n\dots$. Odčítame rovnice algoritmu Eulerovej metódy a lokálnej chyby:
$ y_{n+1}= y_n+ h f(x_n,y_n),$ $y(x_{n+1})=y(x_n) + h f(x_n,y_n)+d_n$.
Máme
$ e_{n+1}=e_n+h\( f(x_n,y(x_n))-f(x_n,y_n)\)+d_n.$
Ku globálnej chybe sa tak v každom kroku pripočíta lokálna diskretizačná chyba, a preto sa v globálnej chybe $e_{n+1}$ prejavia nepresnosti minulých diskretizačných krokov. V prípade, že funkcia $f$ je len funkciou premennej $x$ a teda nezávisí na $y(x)$, ihneď dostávame
$ e_N = \sum _{n=0}^{N-1} d_n$.
Keďže už z vyššie uvedeného vieme, že lokálna chyba je typu $O(h^2)$ a $x_N-x_0=Nh$, teda $N= \frac{x_N-x_0}{h}$, dostávame
$e_N =O(h)$,
čiže globálna diskretizačná chyba je menšia ako $Ch$ pre nejaké reálne číslo $C>0$. Nakoniec si ešte stručne povieme niečo o vplyve zaokrúhľovacích chýb (podrobnejšie viď 1. diel, kapitola 1.3, 1.4). Nech $\varepsilon$ je maximálna zaokrúhľovacia chyba v jednom kroku Eulerovej metódy. Označili sme $y_n$ skutočné približné riešenie a teraz označme $\bar y_n$ približné riešenie, ktoré skutočne vypočítame a ktoré sa od riešenia $y_n$ líši vplyvom zaokrúhľovacích chýb. Takéto riešenie potom spĺňa pre ekvidistantný krok rovnicu
$ \bar y_{n+1}= \bar y_n+ h f(x_n,\bar y_n)+\varepsilon,\ \ n=0,1,\dots$
Celková chyba vzniknutá zaokrúhľovaním bude teda $N\varepsilon$, kde $N$ je posledný krok, ktorý sme vypočí tali. Z veľkosti $N$ ktorú sme odvodili vyššie, vidíme že celková zaokrúhľovacia chyba bude $\frac{\varepsilon (x_N - x_0)}{h}$. Preto celková chyba výpočtu v bode $x_N$ bude súčtom globálnej diskretizačnej chyby (chyby metódy) a globálnej zaokrúhľovacej chyby:
$ \vert y(x_N) -\bar y_N\vert \approx C h +\frac{\varepsilon(x_N-x_0)}{h}:= g(h)$.
Funkcia $g$ bude minimálna pre $h=\left( \frac{\varepsilon(x_N-x_0)}{C}
\right) ^\frac12 $. Teda chyba bude minimálna pre isté $h_{opt}$. Ďalším zmenšovaním $h$ nám budú narastať zaokrúhľovacie chyby ( kroky budú menšie, a preto ich bude viac). Ak zvolíme $h$ vačšie ako je $h_{opt}$ bude zas prevládať chyba diskretizačná. Tento jav je typický aj pre iné diferenčné metódy.


Poznámka. Na princípe aproximácie funkcie Taylorovým polynómom sú založené aj iné metódy. Voláme ich metódy Taylorovho typu. Tieto môžu byť aj vyšších rádov ako je Eulerova metóda, na druhej strane zas treba počítať aj derivácie danej funkcie. Tieto metódy sú preto presnejšie, ako je Eulerova, ale sú aj omnoho prácnejšie. -


Príklad 32. Máme Cauchyho úlohu

\begin{displaymath}y^\prime = -x+2, \ \ y(1)=0.\end{displaymath}

Riešme túto úlohu na intervale $\langle 1,2 \rangle$ s krokom $h=0,25$. Vypočítané hodnoty porovnajme s hodnotami analytického riešenia.


Riešenie: Táto úloha má práve jedno riešenie, ktoré môžme nájsť hneď priamou integráciou rovnice a dosadením začiatočnej podmienky. Dostávame:

\begin{displaymath}y(x)= -\frac{x^2}{2}+2x-\frac32.\end{displaymath}

Teraz vypočítame približné riešenie pomocou Eulerovej metódy. Keďže $h=0,25$, a $x_0=1,\ y_0=0$, riešenie budeme hľadať v bodoch

\begin{displaymath}x_1=1,25;\ \ x_2=1,5;\ \ x_3=1,75;\ \ x_4= 2.\end{displaymath}

Podľa vzorca (3.34) máme

\begin{displaymath}y_{i+1}=y_i + 0,25(-x_i+2),\ \ \ i=0,1,2,3.\end{displaymath}

Výsledky zapíšeme do tabuľky:
i $x_i$ $y(x_i)$ $y_i$
0 1,000 0,000 0,000
1 1,250 0,218 0,250
2 1,500 0,375 0,438
3 1,750 0,468 0,562
4 2,000 0,500 0,625