Jít k navigaci - Jít k vyhledávání


Newtonova (Babylonská) metoda hledání odmocniny

17. 06. 10 - 09:00. Napsal Jiří Chytil. Přečteno 17681x.

Tato metoda byla objevena, jak již název napovídá, velmi, velmi dávno a pokud někdy budete nutně potřebovat spočítat odmocninu a zrovna nebudete mít po ruce kalkulačku nebo počítač, a ani kamaráda, který umí všechny odmocniny z hlavy, stačí mít kousek papíru, čím psát a v hlavě tento postup.

468x60.gif Doporučujeme virtuálního opertátora GoMobil.cz | Reklamní sdělení

Máme tedy zadáno, že hledáme odmocninu z čísla x, kde x je nezáporné číslo.

x=sqrt(a)

Drobnou úpravou dostaneme:

f(x)=x^2-a=0

Použijeme vzoreček pro Newtonovu metodu tečen:

x_(i+1)=f(x_i)/f´(x_i)

Dosazením a úpravou dostaneme:

x_(i+1)=1/2*(x_i+a/x_1)

Metoda je rekurzivní a provádí se tak dlouho, dokud nedosáhneme uspokojivých výsledků. Počet provedení pro stejnou požadovanou přesnost závisí také na velikosti čísla, jehož odmocninu chceme počítat, a přesnosti odhadu.

Odhadovanou veličinou je x0. Zde se může řešení ještě výrazně lišit. Můžeme číslo x0 nechat vždy rovno 1. Potom se ale s rostoucí velikostí čísla, jehož odmocninu počítáme, zvyšuje množství cyklů, které jsme nuceni provést. Je tedy vhodnější odhadovat velikost výsledku. Osobně považuji za vyhovující udělat odhad nebo přesný výpočet (třeba do tabulky) jen pro 3 čísla na dekádu, tedy vždy pro:

1,2,5,10,20,50,100,200,500,1000,?

Otestovat si tuto metodu můžete v Excelovském souboru

Metodu lze použít také pro třetí odmocninu:

třetí odmocnina

Pro odmocninu n-tého řádu platí:

n-tá odmocnina

Další metoda, kterou můžeme využít pro nalezení odmocniny, je například metoda regula falsi (metoda sečen) nebo metoda bisekce (půlení intervalu). To jsou stejně jako Newtonova metoda sečen numerické metody. Máme-li ale k dispozici logaritmy, můžeme použít následující vzorec:

pomocí přirozeného logaritmu

Pro vyzkoušení v programu MATLAB:


function y=newton(a,n,x,err)
xold=x;
dif=err*2;
while dif>err
    x=1/n*(((n-1)*x)+(a/x^(n-1)));
    dif=abs(xold-x);
    xold=x;
end
y=x;

Kód: MATLAB - m-file: newton.m
  • a ... číslo, jehož odmocninu hledáme
  • n ... n-tá odmocnina
  • x ... počáteční odhad
  • err ... přesnost


Autor
Jiří Chytil

Jiří Chytil27 let

Šéfredaktor 8bitu.cz. V současné době je studentem doktroského studia na Ústavu teoretické a experimantální elektroniky na Fakultě elektrotechniky a komunikačních technologií VUT v Brně. Mezi jeho koníčky patří elektrotechnika, bastlení, programování a hudba.


Novinky Další novinky

[25. 06.]  A tentokráte vás zdravím z města New York.
Včera Zdravim vas z Bostonu vazeni ctenari.
[10. 03.]  Tak jsem pro Vás připravil novou anketu. A snažím se pokračovat na projektu jehož výsledky bych zde rád zveřejnil, ale poněkud mě brzdí diplomová práce a práce.
[30. 01.]  Omlouvám se za nečinnost způsobenou značným nedostatkem času. Nevím, ale jestli se mi to podaří změnit. To víte, člověk stárne a jeho čas je potřeba jinde než na internetu.
[07. 03.]  Po dlouhé době jsme pro vás přichystali novou anketu - najdete ji níže v pravém panelu.

Reklama

Sádrokartony Karel Richter - sádrokartony a suché stavby Brno

Okruháři.cz

Virtuální operátor GoMobil - levné volání

Programujte.com

Léčivé obrazy - enkaustika Lenka Blažíková

Keramika Věra Coufalová - užitková keramika

Anketa

Jaký další modul byste ocenili v softwaru DSE?

RC články - pasivní

RC články - aktivní

Normované filtry

Syntetické indukčnosti

Materiálové tabulky

COM terminál

Design pro 555

Výpočet transformátoru

Výpočet uPásku

Výpočet štěrbinového vedení

Návrh Step-Up měniče

Návrh invertujícího měniče

Transfigurace trojúhelník-hvězda

Předřadník a bočník