Kořen čísla je jednou z hlavních operací matematiky. Umožňuje najít číslo, které při vztažení na daný stupeň dává původní číslo. V programovacím jazyce Python se pro výpočet kořene čísla obvykle používá modul math, v některých případech to však nemusí být žádoucí. Pokud například pracujete s omezeními a nemůžete používat knihovny třetích stran, nebo pokud vás jen zajímá, jak to udělat ručně.
Hledání kořene čísla lze provést iterační metodou nebo binárním vyhledáváním. V tomto článku se podíváme na iterační metodu, která je srozumitelnější.
Iterační metoda spočívá v postupném přibližování hodnoty kořene čísla prostřednictvím několika iterací. Je založen na principu postupného upřesňování aproximace až do dosažení požadované přesnosti. Pro výpočet kořene čísla bez použití modulu math použijeme tuto metodu.
Pro začátek je vybrána aproximace pro kořen čísla. Poté se provádějí iterace, z nichž každá vypočítá novou aproximaci na základě předchozího a původního čísla. Tento proces pokračuje, dokud rozdíl mezi současným a předchozím přiblížením nebude menší než požadovaná přesnost. Nakonec získáme hodnotu kořene čísla s nastavenou přesností.
Algoritmy pro hledání kořene čísla
1. Metoda bisekce
Metoda bisekce neboli dělení úsečky na polovinu je založena na principu binárního vyhledávání a umožňuje najít kořen rovnice. Tato metoda využívá iterační proces tím, že rozdělí původní interval na dvě stejné části a zkontroluje, který z nich má kořen. Proces se pak opakuje pro vybranou polovinu intervalu, dokud není dosaženo požadované přesnosti.
2. Newtonova metoda
Newtonova metoda, známá také jako metoda tečen nebo Newton-Rafsonova metoda, využívá iterační proces k blízkému nalezení kořenů rovnice. Tato metoda je založena na principu tečny, která protíná graf funkce a umožňuje najít přesnější hodnoty při každé iteraci. Pokud je dosaženo požadované přesnosti, metoda přestane fungovat.
3. Metoda dělení délky na polovinu s lineární interpolací
Metoda dělení délky na polovinu s lineární interpolací je založena na analogii s metodou bisekce, ale používá lineární interpolaci k blízkému nalezení kořene. Tato metoda rozdělí interval na dvě stejné části a vypočítá hodnotu funkce v bodech dělení. Poté se provede lineární interpolace mezi těmito body, aby se našel nový bod nejblíže kořenu. Proces se opakuje až do dosažení požadované přesnosti.
4. Metoda jednoduché iterace
Metoda jednoduché iterace neboli iterativní aproximace používá iterační proces k nalezení kořenů rovnice. Tato metoda představuje rovnici jako iterační formu a provádí sekvenční iterace, dokud nedosáhne požadované přesnosti. Metoda jednoduché iterace vyžaduje výběr správné iterační formy k dosažení konvergence.
Každá z těchto metod má své výhody a nevýhody a výběr konkrétní metody závisí na úkolu, požadavcích na přesnost a časových limitech. Použití matematické knihovny math v Pythonu také poskytuje hotové funkce pro výpočet kořenů čísel, ale znalost algoritmů pro hledání kořene bez použití této knihovny může být užitečná pro pochopení a řešení složitých matematických problémů.
Newton-Rafsonův Algoritmus
Pro použití Newton-Rafsonova algoritmu je nezbytná funkce, pro kterou hledáme kořen, stejně jako jeho derivát. Počáteční přiblížení hodnoty kořene je také důležitým prvkem této metody.
Newton-Rafsonův algoritmus funguje následovně:
- Vybíráme počáteční přiblížení x0 pro kořen funkce.
- Vypočítáme hodnotu funkce v bodě x0 a význam jeho derivace v tomto bodě.
- Pomocí vzorce x1 = x0 - f(x0)/f'(x0) nacházíme nové přiblížení x1 pro kořen funkce.
- Opakujeme kroky 2-3, dokud nedosáhneme požadované přesnosti nebo nepřekročíme maximální počet iterací.
Newton-Rafsonův algoritmus konverguje ke kořenu funkce dostatečně rychle a lze jej použít k nalezení kořene lineárních i nelineárních funkcí. Tato metoda však ne vždy zaručí nalezení kořene a může vést k iteračnímu procesu, který nesedí nebo se fixuje. Proto je důležité sledovat přesnost a počet iterací při použití této metody.