Število x0 naj bo približek za ničlo funkcije f.
V točki x0 postavimo tangento na graf funkcije f in pogledamo, kje je ničla tangente.
Ker je tangenta dobra aproksimacija za funkcijo, sklepamo, da je ničla tangente dober približek za ničlo funkcije f. Ničlo tangente vzamemo torej za naslednji približek x1.
Postopek nadaljujemo na enak način in tako iz x1 dobimo x2, itn.
Dobljeno zaporedje približkov praviloma hitro konvergira k ničli funkcije f.
Praktična izvedba
Iz slike se razbere da je odvod v točki x0 enak:
f '(x0)= Δy/Δx = f(x0)/( (x0) - (x1) ),
od koder sledi:
x1 = x0 - f(x0)/f '(x0)
Iteracijska formula, po kateri iz približka xn izračunamo
naslednji približek xn+1, je torej zelo preprosta:
xn+1 = xn - f(xn)/f '(xn)
V formuli nastopata vrednost funkcije f in vrednost odvoda f' (tj.
vrednost smernega koeficienta tangente).
Začetni točka x0 odvoda je večja ali manjša od ničle!
Izkaže se, da je Newtonova metoda uspešna za iskanje ničel prve stopnje.
Pri takih ničlah zaporedje približkov vedno vodi k ničli, če je le začetni
približek primerno izbran. V ničlah višje stopnje je tangenta vodoravna,
kar otežuje (ali celo onemogoča) uporabo Newtonove metode.
Newtonovo metodo se najpogosteje uporablja pri iskanju ničel polinomov,
vendar pa ni omejena samo na polinome: uporabimo jo lahko tudi na drugih
odvedljivih funkcijah. Uporabna je celo za iskanje ničel v kompleksnem,
če izberemo primeren (nerealnen) začetni približek.
Lahko se zacikla, oddalji od iskane ničle zaradi lokalnih ekstremov.
Lahko divergira, če je začetni približek slab.
Uporabite lahko še ostale metode iskanje ničel, recimo:
V polje vnesi funkcijo f ( in njen odvod f ' ), ki ji iščemo ničle
in začetno točko odvoda x0,
kjer pričakujemo ničlo.
* Potek funkcije lahko preveriš
z naslednjim orodjem
okni_grafi.html.
Nekatere funkcije v js:
cos(x)
acos(x)
sin(x)
asin(x)
tan(x)
atan(x)
1/tan(x) = ctg(x)
PI*(1/2)-atan(x)
(exp(x)-exp(-x))/2 = sh(x)
(exp(x)+exp(-x))/2 = ch(x)
(exp(x)-exp(-x))/(exp(x)+exp(-x)) = th(x)
(exp(x)+exp(-x))/(exp(x)-exp(-x)) = cth(x)
2/(exp(x)+exp(-x))/2 = sch(x)
2/(exp(x)-exp(-x))/2 = csch(x)
abs(x)
sqrt(x)
round(x)
log(x)
exp(x)
5*random()
5*sin(tan(x/5))
5*cos(tan(x/10))
sqrt(9-x*x*9/25)
sqrt((x*x*9/25)-9)
7*cos((x/5)*sin(x))*cos(sin(x/5))/cos(sin(x/3))*cos(sin(x/3)) = kon. cos
7*sin((x/5)*sin(x))*sin(sin(x/5))/sin(sin(x/3))*sin(sin(x/3)) = kon. sin
sqrt(2*2/( (1+0.85*cos(x))*(1+0.85*cos(x)) ) -2*2*cos(x)*cos(x)/( (1+0.85*cos(x))*(1+0.85*cos(x)) ) )
-(1/3)*x-2
1/x
1/(x*x)
-30/(x*x)
(x*x)
-x*x-2*x+5
5*abs(sin(x*x/20))
2*x*x*x+x*x-4*x+3
nthroot(x,3) = x1/3 abs(nthroot((x-1),3)-1)
pow(2,x) = 2 na x
pow(x,3) = x na 3
8*pow(10,-x*x/70)*cos(x)
12
- za Gaussa daj recimo obliko 5*exp(-5*x*x/100) ali kako drugo zvonasto obliko, rec. 150*pow(10,-5*x*x/100000)
!!! n-ti koren iz x se zapiše kot nthroot(x,n),
primer za tretji koren, rec iz števila (-8): nthroot(-8,3) = -2
(nthroot je dodana funkcija,
saj vgrajena js funkcija pow(-8,1/3) vrne vrednost NaN).
Nazaj na domačo stran.