Metoda tečen

Jeden krok metody tečen při hledání řešení f ( x ) = 0 {\displaystyle f(x)=0} . x n {\displaystyle x_{n}} představuje původní odhad, v bodě f ( x n ) {\displaystyle f(x_{n})} je sestrojena tečna ke křivce f ( x ) {\displaystyle f(x)} . V místě, kde tečna protíná osu x {\displaystyle x} , se nachází nový odhad x n + 1 {\displaystyle x_{n+1}} .

Metoda tečen je iterační numerická metoda užívaná v numerické matematice k nalezení kořenů funkce nebo k řešení soustavy nelineárních algebraických rovnic. Nazývá se také Newtonova metoda (nebo Newton-Raphsonova metoda) a metodou tečen je označována, protože přesnější řešení rovnice f(x) = 0 je hledáno ve směru tečny funkce f(x).

Popis algoritmu

Newtonova metoda tečen slouží k nalezení řešení rovnice f ( x ) = 0 {\displaystyle f(x)=0} za předpokladu, že známe derivaci funkce f ( x ) {\displaystyle f'(x)} , tedy směrnici tečny. Pro jednoduchost dále předpokládejme, že x {\displaystyle x} i f ( x ) {\displaystyle f(x)} jsou skaláry.

Animovaná ukázka hledání řešení f ( x ) = 0 {\displaystyle f(x)=0} .

Dalším nezbytným předpokladem je znalost počáteční hodnoty x 0 {\displaystyle x_{0}} , v jejíž blízkosti hledáme řešení. Pokud se funkce f ( x ) {\displaystyle f(x)} chová rozumně (je spojitá, hladká a monotónní v intervalu, ve kterém hledáme řešení), lze očekávat řešení v místě, kde tečna sestrojená z bodu f ( x 0 ) {\displaystyle f(x_{0})} protíná osu x {\displaystyle x} . (Směrnice této tečny je f ( x 0 ) {\displaystyle f'(x_{0})} .) Tento průsečík označíme x 1 {\displaystyle x_{1}} a vypočteme jej podle následujícího vztahu.

x 1 = x 0 f ( x 0 ) f ( x 0 ) {\displaystyle x_{1}=x_{0}-{\frac {f(x_{0})}{f'(x_{0})}}}

Za splnění výše uvedených předpokladů by měla hodnota f ( x 1 ) {\displaystyle f(x_{1})} být blíže nule než původní f ( x 0 ) {\displaystyle f(x_{0})} . Stejný postup můžeme opakovat a najít tak ještě přesnější hodnotu x k {\displaystyle x_{k}} .

x k + 1 = x k f ( x k ) f ( x k ) {\displaystyle x_{k+1}=x_{k}-{\frac {f(x_{k})}{f'(x_{k})}}}

Iteraci provádíme tak dlouho, dokud hodnota f ( x 0 ) {\displaystyle f(x_{0})} neleží dostatečně blízko nuly. Pokud metoda konverguje a pokud kořen není násobný, je konvergence velice rychlá. S každou iterací se přibližně zdvojnásobí počet desetinných míst, která jsou správně (přesněji, konvergence je kvadratická). Častým kriteriem pro ukončení výpočtu proto bývá okamžik, kdy vzdálenost dvou po sobě jdoucích iterací je dostatečně malá.[zdroj?]

Odvození iteračního vzorce

Víme, že rovnice tečny tk funkce f(x) v libovolném bodě xk je dána vzorcem, jelikož derivace je směrnicí tečny (koeficient lineárního členu):

t k : y = f ( x k ) x + b {\displaystyle t_{k}:y=f'(x_{k})\cdot x+b}

Zároveň také víme, že tečna tk prochází bodem [ x k , f ( x k ) ] {\displaystyle \left[x_{k},f(x_{k})\right]} . Po dosazení:

f ( x k ) = f ( x k ) x k + b {\displaystyle f(x_{k})=f'(x_{k})\cdot x_{k}+b}

b = f ( x k ) f ( x k ) x k {\displaystyle b=f(x_{k})-f'(x_{k})\cdot x_{k}}

Hledáme bod [ x k + 1 , 0 ] {\displaystyle \left[x_{k+1},0\right]} , což je průnik tečny tk v bodě xk s osou x, a zároveň dosadíme vyjádřené b:

0 = f ( x k ) x k + 1 + f ( x k ) f ( x k ) x k {\displaystyle 0=f'(x_{k})\cdot x_{k+1}+f(x_{k})-f'(x_{k})\cdot x_{k}}

f ( x k ) x k + 1 = f ( x k ) x k f ( x k ) {\displaystyle f'(x_{k})\cdot x_{k+1}=f'(x_{k})\cdot x_{k}-f(x_{k})}

Odtud již plyne:

x k + 1 = x k f ( x k ) f ( x k ) {\displaystyle x_{k+1}=x_{k}-{\frac {f(x_{k})}{f'(x_{k})}}}

Příklad: Výpočet druhé odmocniny

Úkolem je vypočítat druhou odmocninu kladného reálného čísla a.

x = a {\displaystyle x={\sqrt {a}}}

Problém lze definovat také jako nalezení kořenu funkce f ( x ) = x 2 a {\displaystyle f(x)=x^{2}-a} , neboli řešení rovnice f ( x ) = 0 {\displaystyle f(x)=0} .

Vypočteme derivaci f ( x ) {\displaystyle f'(x)} .

f ( x ) = 2 x {\displaystyle f'(x)=2x}

Dosadíme do obecného vzorce a upravíme.

x k + 1 = x k f ( x k ) f ( x k ) = x k x k 2 a 2 x k {\displaystyle x_{k+1}=x_{k}-{\frac {f(x_{k})}{f'(x_{k})}}=x_{k}-{\frac {x_{k}^{2}-a}{2x_{k}}}}
x k + 1 = 1 2 ( x k + a x k ) {\displaystyle x_{k+1}={\frac {1}{2}}\left(x_{k}+{\frac {a}{x_{k}}}\right)}

Získáváme tak rekurentní rovnici, u které jako počáteční podmínku můžeme zvolit x 0 = a {\displaystyle x_{0}=a} .

Ukázka výpočtu x = 9 {\displaystyle x={\sqrt {9}}} , neboli x 2 9 = 0 {\displaystyle x^{2}-9=0} , metodou tečen.

Výpočet 9 {\displaystyle {\sqrt {9}}} (druhé odmocniny z devíti) bude podle výše uvedeného algoritmu probíhat následovně.

a  = 9
x0 = 9
x1 = 5
x2 = 3.4
x3 = 3.02352941176471
x4 = 3.00009155413138
x5 = 3.00000000139698
x6 = 3.00000000000000
x7 = 3.00000000000000

Je vidět, že po několika málo krocích se hodnota x k {\displaystyle x_{k}} nemění a ustálí se (konverguje) na hodnotě 3, což odpovídá správnému výsledku.

Poznámky

Aproximace derivace

Pokud známe pouze funkci f(x) a neznáme její derivaci f'(x), můžeme se pokusit derivaci nahradit numerickou derivací. Případně je možné řešit úlohu metodou sečen, která znalost derivace nevyžaduje.

Vektory

Je-li funkce f(x) skalární funkcí vektorového argumentu („z vektoru vypočte skalár“), je nutné hledat xk+1 proti směru gradientu. Předpis pro iteraci lze potom napsat následovně.

x k + 1 = x k Δ x k {\displaystyle \mathbf {x} _{k+1}=\mathbf {x} _{k}-\Delta \mathbf {x} _{k}}
Δ x = [ f ( x ) f x 1 , , f ( x ) f x n ] T {\displaystyle \Delta \mathbf {x} =\left[{\begin{matrix}{\frac {f(\mathbf {x} )}{\frac {\partial f}{\partial x_{1}}}},\ldots ,{\frac {f(\mathbf {x} )}{\frac {\partial f}{\partial x_{n}}}}\end{matrix}}\right]^{T}}

Pokud je funkce f(x) vektorovou funkcí vektorového argumentu („z vektoru vypočte vektor“), lze předpis pro iteraci napsat následovně.

x k + 1 = x k J ( x k ) 1 f ( x k ) {\displaystyle \mathbf {x} _{k+1}=\mathbf {x} _{k}-\mathbf {J} (\mathbf {x} _{k})^{-1}\mathbf {f} (\mathbf {x} _{k})}

Matice J je takzvaná Jacobiho matice obsahující parciální derivace.

J ( x ) = f i x j = [ f 1 x 1 f 1 x 2 f 1 x n f 2 x 1 f 2 x 2 f 2 x n f n x 1 f n x 2 f n x n ] {\displaystyle \mathbf {J} (\mathbf {x} )={\frac {\partial f_{i}}{\partial x_{j}}}=\left[{\begin{matrix}{\frac {\partial f_{1}}{\partial x_{1}}}&{\frac {\partial f_{1}}{\partial x_{2}}}&\ldots &{\frac {\partial f_{1}}{\partial x_{n}}}\\{\frac {\partial f_{2}}{\partial x_{1}}}&{\frac {\partial f_{2}}{\partial x_{2}}}&\ldots &{\frac {\partial f_{2}}{\partial x_{n}}}\\\vdots &\vdots &\ddots &\vdots \\{\frac {\partial f_{n}}{\partial x_{1}}}&{\frac {\partial f_{n}}{\partial x_{2}}}&\ldots &{\frac {\partial f_{n}}{\partial x_{n}}}\end{matrix}}\right]}

Související články

Externí odkazy


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Metoda_tečen
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.