Logo OPVVV

Teoretické minimum

Eulerova metoda je nejjednodušší z numerických metod na hledání řešení diferenciálních rovnic prvního řádu s počáteční podmínkou ve tvaru @b \left\{ \begin{array}{ccc} y' & = & f(x,y),\\ y(x_0) & = & y_0. \end{array} \right. @b Všimněte si, že rovnice je rozřešená vzhledem k první derivaci.

Numerických metod se používá zejména tehdy, když neumíme daný problém vyřešit exaktně (analyticky). Otázkou, zdali řešení získané vybranou numerickou metodou konverguje ke skutečnému řešení úlohy, popř. jak rychle, se zde nebudeme zabývat, protože je to poměrně obtížný úkol. Zájemce odkážeme na předmět Numerické metody  vyučovaný Ústavem matematiky.

Nejprve si zvolme krok metody @i h @i, což je malé nenulové číslo (může být i záporné!). Eulerova metoda spočívá v tom, že funkční hodnotu řešení startujícího z počáteční podmínky @i y(x_0)=y_0 @i nahradíme v bodě @i x_1 := x_0+h @i funkční hodnotou tečny @i t_0 @i k integrální křivce řešení v bodě @i x_1 @i. Jinými slovy na intervalu @i [x_0,x_1] @i nahradíme řešení Taylorovým polynomem prvního řádu v bodě @i x_0 @i @b y(x)\approx T_1^{x_0}(x)=y(x_0)+y'(x_0)(x-x_0),\label{aprox}\tag{1} @b který umíme sestrojit po dosazení @i y'(x_0)=f\big(x_0,y(x_0)\big) @i, neboť @i y @i je řešením rovnice @i y'(x) = f\big(x,y(x)\big) @i. Označme @i y_1:=T_1^{x_0}(x_1) @i. Protože @i y(x_0)=y_0 @i a @i x_1-x_0=h @i, získáme v bodě @i x=x_1@i (dosazením do \eqref{aprox}) přibližný vztah pro hodnotu řešení @b y(x_1)\approx y_1=y_0 + hf(x_0,y_0). @b

Na obrázku níže můžeme vidět právě popsaný první krok znázorněný graficky. Bodem @i (x_0,y_0) @i jsme vedli tečnu @i t_0 @i k integrální křivce. Hodnotu řešení v bodě @i x_1 @i, kterou neznáme, jsme nahradili hodnotou @i y_1 = t_0(x_1) @i.

 Ve druhém kroku chceme určit přibližně hodnotu řešení v bodě @i x_2 @i. Budeme postupovat stejně jako v prvním kroku, jen z nové počáteční podmínky @i y(x_1)=y_1 @i (do které jsme se dostali z prvního kroku). Bodem @i (x_1,y_1) @i vedeme tečnu @i t_1 @i k integrální křivce procházející bodem @i (x_1,y_1) @i. Neznámou hodnotu řešení @i y(x_1) @i v bodě @i x_1 @i nahradíme hodnotou @i y_2=t_1(x_1) @i tečny @i t_1 @i.

Užitečná poznámka: Všimněme si, že pouze v prvním kroku sestrojujeme tečnu k integrální křivce řešení, které hledáme. V dalších krocích sestrojujeme tečnu k integrální křivce jiného řešení, a to toho, jehož graf prochází bodem @i (x_i,y_i)@i. Dopouštíme se chyby, ale pokud je krok metody @i h@i malý a jsme blízko počáteční podmínky, tato chyba je pro „pěkné“ rovnice malá. Jinými slovy řečeno, směrnice tečny k integrální křivce procházející bodem @i (x_i,y_i)@i je blízko směrnici tečny k integrální křivce námi hledaného řešení sestrojené v bodě @i \big(x_i,y(x_i)\big)@i.

Přibližnou hodnotu řešení v bodě @i x_2 @i můžeme tedy najít dle vzorce (jeho odvození je stejné jako toho v prvním kroku) @b y(x_2)\approx y_2= y_1 + h f\big(x_1,y_1\big). @b Všimněte si, že aproximační vztahy vypadají vlastně stejně — z prvního dostaneme druhý tak, že ke všem indexům přičteme jedničku.

Budeme-li pokračovat v této metodě dál (můžete sledovat obrázek), v @i i+1 @i kroku získáme přibližnou hodnotu řešení v @i x_{i+1} @i @b y(x_{i+1})\approx y_{i+1} = y_i + h f(x_i,y_i).\label{vzorec}\tag{2} @b

Užitečná poznámka: Právě odvozený vzorec není nezbytné si pamatovat, mnohem užitečnější je vědět postup, jak se k němu dostat. Uvědomte  si, že Eulerovou metodou hledáme hodnoty řešení pouze v některých bodech (na obrázku jsou to body @i x_i @i vyznačené na ose @i x @i puntíky) Vzdálenost těchto bodů je @i h @i, krok metody, který si volíme na začátku. Opakovaným dosazováním do vzorečku \eqref{vzorec} získáme přibližné hodnoty @i y_i @i řešení v bodech @i x_i @i. Uspořádané dvojice @i (x_i,y_i) @i, což jsou aproximace integrální křivky v některých bodech, jsou na obrázku vyznačeny křížkem. Čím je krok metody menší, tím by měly být křížky blíž integrální křivce řešení. Poznamenejme ještě, že Eulerova metoda nepatří k nejpřesnějším metodám.


Související

Diferenciální rovnice prvního řádu, Taylorův polynom, tečna ke grafu funkce.   


Řešený příklad

1. Najděte přibližnou hodnotu řešení počáteční úlohy @b \left\{ \begin{array}{ccc} y' & = & x^2-y,\\ y(0) & = & 1, \end{array} \right. @b v bodě

  • @i 0{,}6 @i, volte krok @i h=0{,}2 @i
  • @i -0{,}3 @i, volte krok @i h=-0{,}1 @i.
  1. Chceme přibližně určit @i y(0{,}6) @i. Využijeme Eulerovu metodu, odvozený vzorec \eqref{vzorec}. Volíme krok @i h=0{,}2 @i. Pro přehlednost zápisu použijeme tabulku @b \begin{array}{|c|c|c|c|}  \hline i & x_i & y_i &  y_i + 0{,}2(x_i^2-y_i)\\ \hline\hline 0 & 0  & 1 & 1 + 0{,}2(0^2-1)=0{,}8 \\ \hline 1 & 0{,}2 &  0{,}8 & 0{,}8 + 0{,}2(0{,}2^2-0{,}8)=0,648 \\ \hline 2 & 0{,}4 & 0,648 & 0,648 +0{,}2(0{,}4^2-0,648)=0,5504 \\ \hline 3 & 0{,}6 & 0,5504 & \\ \hline \end{array} @b
    A tak @i y(0{,}6)\approx y_3=0,5504 @i.
  2. Ve druhém případě hledáme přibližnou hodnotu @i y(-0{,}3) @i. Volbou kroku @i h=-0{,}1 @i získáme @b \begin{array}{|c|c|c|c|}  \hline i & x_i & y_i &  y_i - 0{,}1(x_i^2-y_i)\\ \hline\hline 0 & 0  & 1 & 1 - 0{,}1(0^2-1)=1{,}1 \\ \hline 1 & -0{,}1 &  1{,}1 & 1{,}1 - 0{,}1\big((-0{,}1)^2-1{,}1\big)=1,209 \\ \hline 2 & -0{,}2 & 1,209 & 1,209 -0{,}1\big((-0{,}2)^2-1,209\big)=1,3259 \\ \hline 3 & -0{,}3 & 1,3259 & \\ \hline \end{array} @b
    A proto @i y(-0{,}3)\approx y_3=1,3259 @i.

Protože je naše rovnice lineární, můžeme najít (udělejte sami!) její přesné řešení @b y(x)=x^2-2x+2-{\rm e}^{-x},\ x\in\mathbb R. @b Pak (pro srovnání) @i y(0{,}6)\doteq 0,6112 @i a @i y(-0{,}3)\doteq 1,3401 @i.


Jak je vidět z obrázku, velikost kroku vpřed @i 0{,}2 @i, která je dvakrát větší než velikost kroku zpět @i 0{,}1 @i, je již příliš velká na to, aby nám dala přesnější aproximaci řešení — křížky se od integrální křivky v kladném směru osy @i x @i vzdalují více, než v jejím záporném směru. Také si lze všimnout, že s rostoucí vzdáleností od počáteční podmínky (tj. čím větší je vzdálenost @i x_0 @i  a @i x @i) klesá přesnost aproximace — křížky jsou od integrální křivky řešení vzdálenější.

Pozor, častá chyba: Máte-li najít přibližnou hodnotu řešení @i y(x) @i v bodě @i x=x_i @i, nestačí jenom vytvořit tabulku obdobnou té z předcházejícího příkladu, ani poté napsat, že @i y_i @i je tolik a tolik. Protože bez uvedení, že @b y(x_i)\approx y_i, @b se každý může pouze domnívat, co jste spočetli.
Užitečná poznámka: Protože výše popsaná metoda je numerická, lze očekávat, že při jejím použití využijeme počítač, anebo aspoň kalkulačku. Pokud se s takovým příkladem setkáte v písemce, bude vždy ve vašich možnostech spočítat ho.


Neřešené příklady

  1. Eulerovou metodou s krokem @i h=-0{,}2 @i určete přibližnou hodnotu řešení v bodě @i 0{,}6 @i počáteční úlohy @b \left\{ \begin{array}{ccc} y' & = & \dfrac{y^2}{x}-x,\\ y(1) & = & 1. \end{array} \right. @b Je zadaná rovnice lineární?
  2. Spočtěte přibližnou hodnotu řešení rovnice @b y'=\frac{y-2x}{y-x} @b splňující počáteční podmínku @i y(1)=0 @i v bodě @i 1{,}2 @i. Krok metody volte @i h=0{,}1 @i. Ověřte, že funkce @i y(x) = x-\sqrt{2-x^2},\ x\in \big(0,\sqrt 2\big] @i je přesným řešením rovnice, a srovnejte přesnou hodnotu řešení s hodnotou získanou numericky.
  3. Určete přibližnou hodnotu řešení počáteční úlohy @b \left\{ \begin{array}{ccc} y' & = & \dfrac{3x^2}{2y},\\ y(0) & = & -1, \end{array} \right. @b v bodě @i 0{,}2 @i Eulerovou metodou s krokem @i 0{,}1 @i. Výsledek porovnejte s hodnotou přesného řešení, které sami najděte.

Licence CC BY SA

Naposledy změněno: úterý, 14. června 2022, 21.38