• 1 Úvod
  • 2 Základní pojmy
  • 3 Reálné posloupnosti
  • 4 Číselné řady
  • 5 Limita a spojitost funkce
  • 6 Derivace
  • 7 Taylorovy polynomy
  • 8 Primitivní funkce
  • 9 Riemannův integrál
  • 10 Další příklady a aplikace
  • 11 Přehled použitého značení
  • Index Literatura

    6.13 Newtonova metoda

    K numerickému řešení rovnic typu \(f(x) = 0\) existuje mnoho metod. My zatím známe jen metodu půlení intervalu (viz větu č. 5.41). V této kapitole si ukážeme Newtonovu metodu ( Sir Isaac Newton anglický fyzik a matematik, 1642 – 1727). Newtonův přístup podrobně prozkoumáme na následujícím příkladu.

    Příklad 6.72

    Vypočtěte třetí odmocninu z kladného reálného čísla \(c\).

    Zamyslete se, jak tento problém vyřešit, máme-li k dispozici kalkulátor umožňující pouze sčítat, odčítat, násobit a dělit čísla. Tedy operace, které může provádět stroj i člověk (s pomocí papíru). Tato otázka může vyvstat v praxi: máme-li zjistit jak velký má být poloměr kulového tankeru o daném objemu \(V\), dostáváme \(r = \sqrt[3]{\frac{3}{4\pi} V}\). Pro krychli dostaneme délku hrany rovnou \(a = \sqrt[3]{V}\). Vedle toho třetí odmocnina je jistě sama o sobě zajímavá funkce, jejíž funkční hodnotu je občas potřeba umět vyhodnotit.

    Buď \(c>0\). Označme hledanou třetí odmocninu symbolem \(x\), tj. \(x = \sqrt[3]{c}\) (toto je ale jen symbolický zápis, jakou hodnotu \(x\) pro zadané \(c\) má?). Ekvivalentně to znamená řešit rovnici \(x^3 = c\) s neznámou \(c\). Označíme-li \(f(x) \ceq x^3 - c\), je námi hledané číslo \(x\) řešením rovnice \begin{equation*} f(x) = 0.\end{equation*} Tuto úlohu bychom se mohli pokusit řešit nám již známou metodou půlení intervalu (jaké dva počáteční body byste zvolili?). Nyní si však ukážeme další způsob, tzv. Newtonovu metodu.

    Myšlenka Newtonovy metody spočívá v konstrukci posloupnosti \((x_n)_{n=1}^\infty\) aproximující řešení rovnice \(f(x) = 0\). Konstrukce posloupnosti je následující:

    1. Je dáno \(x_n\).
    2. Sestroj tečnu funkce \(f\) v bodě \(x_n\): \(\displaystyle\color{red} y = f(x_n) + f'(x_n) \cdot (x-x_n)\).
    3. Průsečík této tečny s osou \(x\) nechť je další člen posloupnosti, tj. \(\displaystyle x_{n+1} \ceq x_n - \frac{f(x_n)}{f'(x_n)}\).
    4. Opakuj s \(x_{n+1}\) místo \(x_{n}\).
    Graficky je tento proces znázorněn na obrázku 6.24.

    Obrázek 6.24: Dvě iterace Newtonovy metody.

    Z předchozího obrázku se může zdát, že vše je jasné. Ihned se však nabízí následující otázky:

    • Jak zvolit první člen posloupnosti? Závisí výsledek metody na této volbě?
    • Má rovnice \(f(x) = 0\) vůbec řešení?
    • Konverguje takto zkonstruovaná posloupnost \((x_n)_{n=1}^\infty\)?
    • Co když \(f'(x_n) = 0\) pro nějaké \(n\in\mathbb{N}\)?

    Odpovědí na tyto otázky se v obecném případě nebudeme zabývat. Vraťme se k našemu konkrétnímu případu s třetí odmocninou, kde uvidíme jak na některé z nich odpovědět.

    Shrňme si dosavadní výsledky. Je dáno \(c>0\) a funkce \(f(x) = x^3 - c\). Newtonova metoda nám dává rekurentní vztah \begin{equation*} x_{n+1} \ceq x_n - \frac{f(x_n)}{f'(x_n)} = x_n - \frac{x_n^3 - c}{3x_n^2} = \frac{2}{3} x_n +\frac{c}{3x_n^2}.\end{equation*} V našem případě si lze snadno všimnout, že:

    • Funkce \(f\) je prostá, \(f\big((0,+\infty)\big) = (-c,+\infty)\) a tudíž existuje právě jedno kladné řešení rovnice \(f(x) = 0\). (Tj. vyšetřili jsme průběh funkce \(f\) a zjistili jsme, že rovnice má právě jedno řešení.)
    • Konverguje-li posloupnost \((x_n)_{n=1}^\infty\) ke konečné kladné limitě \(a\), tedy platí \(a = \lim_{n\to\infty} x_{n}\) a současně \(a = \lim_{n\to\infty} x_{n+1} = \lim_{n\to\infty} \left( \frac{2}{3} x_n + \frac{c}{3x_n^2} \right) = \frac{2}{3} a + \frac{c}{3a^2}\). Tudíž \(a\) je hledané řešení, \(a^3 = c\), nebo-li \(f(a) = 0\).

    Nyní si tedy zbývá rozmyslet, jestli naše posloupnost \((x_n)_{n=1}^\infty\) skutečně konverguje.

    Věta 6.73

    Buď \(c>0\) a \((x_n)_{n=1}^\infty\) posloupnost kladných reálných čísel splňující rekurentní vztah \begin{equation*} x_{n+1} = \frac{2}{3} x_n + \frac{c}{3x_n^2}, \quad \text{pro všechna} \ n\in\mathbb{N}.\end{equation*} Potom tato posloupnost konverguje ke konečné kladné limitě.

    Důkaz :

    Položme \(g(x) \ceq \frac{2}{3} x + \frac{c}{3x^2}\) pro \(x>0\). Vyšetřením průběhu zjistíme, že \(g(x) \geq \sqrt[3]{c}\), kde rovnost nastává právě tehdy, když \(x = \sqrt[3]{c}\). Tudíž:

    • Pokud \(x_1 = \sqrt[3]{c}\), potom \(x_n = \sqrt[3]{c}\) pro všechna \(n\in\mathbb{N}\).
    • Pokud \(x_1 > \sqrt[3]{c}\), potom \(x_n > \sqrt[3]{c}\) pro libovolné \(n\in\mathbb{N}\). Navíc posloupnost \((x_n)_{n=1}^\infty\) je klesající: \(x_{n+1} - x_n = \frac{c- x_n^3}{3x_n^2} < 0\), a zdola omezená číslem \(\sqrt[3]{c}\). Tudíž je konvergentní s konečnou limitou.
    • Pokud \(0 < x_1 < \sqrt[3]{c}\), pak \(x_2 > \sqrt[3]{c}\) a můžeme použít předchozí bod.

    \(\square\)

    Nyní víme, že posloupnost konverguje nezávisle na volbě první aproximace. To je dobré, ale k praktickému použití nedostatečné. Kdy máme iteraci zastavit? Je potřeba odhadnout chybu mezi členy posloupnosti a skutečnou (neznámou) hodnotou hledané třetí odmocniny.

    Důsledek 6.74 (Odhad chyby)

    Buď \((x_n)_{n=1}^\infty\) posloupnost popsaná v předešlé větě. Potom platí \begin{equation*} 0 \leq x_{n+1} - \sqrt[3]{c} \leq 2 (x_n - x_{n+1}), \quad \text{pro} \ n = 2,3\ldots.\end{equation*}

    Důkaz :

    Z předešlé věty víme, že pro \(n=2,3,\ldots\) jistě platí \(\sqrt[3]{c} \leq x_{n+1} \leq x_n\). Potom pro tato \(n\) platí i \begin{equation*} 0 \leq x_{n+1} - \sqrt[3]{c} = -2 x_{n+1} + 3x_{n+1} - \sqrt[3]{c} = -2x_{n+1} + 2x_n + \underbrace{\frac{c}{x_n^2} - \sqrt[3]{c}}_{\leq 0} \leq 2 (x_n - x_{n+1}).\end{equation*}

    \(\square\)

    Poznámka 6.75

    Toto je pro praktické účely velmi důležitý výsledek. Pomocí dvou naposledy vypočtených členů posloupnosti můžeme odhadnout chybu mezi posledním členem a skutečnou hodnotou \(\sqrt[3]{c}\) (tu neznáme!) a tím dodržet požadovanou přesnost.

    Shrňme si vlastnosti Newtonovy metody aplikované na problém hledání třetí odmocniny. Posloupnost \((x_n)_{n=1}^\infty\) zadaná rekurentně vztahem \begin{equation*} x_{n+1} = \frac{2}{3} x_n + \frac{c}{3x_n^2}, \quad n\in\mathbb{N},\end{equation*} konverguje pro libovolně zvolené \(x_1 > 0\) k číslu \(\sqrt[3]{c}\). Chybu mezi \(x_n\) a skutečnou hodnotou \(\sqrt[3]{c}\) lze odhadnout pomocí posledních dvou vypočtených členů: \begin{equation*} 0 < x_{n+1} - \sqrt[3]{c} < 2(x_n - x_{n+1}), \quad n=2,3,\ldots.\end{equation*} Tato informace nám umožňuje výpočet zastavit po dosažení požadované přesnosti.

    Člen posloupnosti Hodnota
    \(x_1\) \(7{,}0\)
    \(x_2\) \(4{,}71428571428571428571428571428571429\)
    \(x_3\) \(3{,}24784642966461148279330097511915694\)
    \(x_4\) \(2{,}38643130490037593935668895758001112\)
    \(x_5\) \(2{,}00066641679591817635777458039226767\)
    \(x_6\) \(1{,}{\color{red}91}672239561208699369932626267864600\)
    \(x_7\) \(1{,}{\color{red}91293}867672049370288664833049651171\)
    \(x_8\) \(1{,}{\color{red}912931182}80174664702280424145842154\)
    \(x_9\) \(1{,}{\color{red}912931182772389101199}56738659641893\)
    \(x_{10}\) \(1{,}{\color{red}912931182772389101199116839548760}30\)
    \(\sqrt[3]{7}\) \(1{,}91293118277238910119911683954876028\)

    Tabulka 6.2: Výpočet třetí odmocniny ze sedmi pomocí Newtonovy metody. Poslední řádek obsahuje přesnou hodnotu zaokrouhlenou na 36 desetinných míst.

    Jako ukázku použití metody uvádíme tabulku 6.2 s výpočtem třetí odmocniny z čísla \(7\). Jako první iteraci volíme číslo \(7\) samotné. To není optimální volba.

    Na výpočtu v tabulce 6.2 lze pozorovat, že od 6. iterace se počet správných cifer přibližně zdvojnásobuje. Tento efekt nazýváme kvadratickou konvergencí a přesně ho pro naši posloupnost formulujeme níže.

    Věta 6.76

    Je-li \(c > 1\) a \(x_1 > \sqrt[3]{c}\), pak pro každé \(n\in\mathbb{N}\) platí \begin{equation*} x_{n+1} - \sqrt[3]{c} \leq \Big( x_n - \sqrt[3]{c} \Big)^2.\end{equation*}

    Důkaz :

    Vynecháváme.

    \(\square\)

    Je-li tedy chyba \(n\)-tého členu například \(10^{{\color{red}-5}}\), pak chyba dalšího členu je již pouze \(10^{{\color{red}-10}}\)!

    6.13.1 Newtonova metoda: záludnosti

    Rekurentní posloupnost pocházející z Newtonovy metody se pro „špatně“ zvolenou počáteční podmínku může chovat neočekávaně. Například může oscilovat (tj. posloupnost vůbec nebude mít limitu), nebo může divergovat do nekonečna.

    Příklad 6.77

    Zkoumejte chování Newtonovy metody aplikované na \(p(x) = x^5 - x^4 - x + 2\) s počátečním bodem \(x_1 = 2\). Rekurentní vzorec Newtonovy metody v tomto případě zní \begin{equation*} x_{n+1} = x_n - \frac{x_n^5 - x_n^4 - x_n + 2}{5x_n^4 - 4x_n^3 - 1}.\end{equation*} Na obrázku uvádíme prvních několik členů této rekurentní posloupnosti

    Obrázek 6.25: Patologické chování posloupnosti aproximací generovaných Newtonovou metodou. Problém zřejmě spočívá ve špatné volbě počáteční aproximace.