Da lahko začnemo izvajati sekantno metodo, potrebujemo dva začetna približka za ničlo -
označimo ju kot x0 in x1. Pogosto ju izberemo tako, da je predznak funkcije f v točki x0 različen kot v točki x1,
a ni nujno. Nadaljevanje postopka je zelo podobno kot pri metodi regula falsi, le da ničla ne leži
nujno na intervalu med obema približkoma.
Funkcijo f najprej aproksimirmo s sekanto. Sekanta v tem primeru pomeni premico, ki poteka skozi točki T0(x0, f(x0)) in T1(x1, f(x1)).
Sklepamo, da se sekanta ne razlikuje dosti od grafa funkcije,
zato mora biti tudi ničla sekante dobra aproksimacija za ničlo funkcije.
Ničlo sekante torej izberemo za naslednji približek x2.
Iz grafa zgoraj razberemo, da sta si trikotnika, ki ju določajo točke x0, x2, x1 in
vrednosti funkcije v teh točkah, podobna. Zato recimo velja:
(f(x1) - f(x0))/(x1 - x0)
= f(x0)/(x0 - x2)
Od koder izpeljemo novo mejo x2:
x2 = x0 - f(x0)(x1 - x0)/(f(x1) - f(x0))
Postopek potem ponavljamo: iz x1 in x2 izračunamo x3, iz x2 in x3 izračunamo x4 itn.
Če je funkcija primerno lepa in če sta približka x0 in x1 dovolj dobro izbrana, zaporedje xn konvergira k ničli funkcije f.
Za izračun naslednjega približka xn+1 na podlagi približkov xn in xn-1 uporabimo naslednjo iteracijsko formulo (n teče od 1, 2, 3 ...):
Začetni interval x0 in x1 je lahko izven ničle funkcije!
Sekantna metoda je lahko dober nadomestek za tangentno metodo v primerih, ko odvoda funkcije ne moremo izračunati, oziroma v primerih, ko je odvod zelo zapleten.
Sekantna metoda je uporabna tudi za iskanje ničel sode stopnje. Je sicer zelo hitra metoda,
malo iteracij napram bisekciji. Lahko se zacikla, zaradi lokalnih ekstremov lahko
sekanta postane zelo položna in se tako interval iskanja popolnoma spremeni.
Uporabite lahko še ostale metode iskanje ničel, recimo:
V polje vnesi funkcijo, ki ji iščemo ničle in začetne meje intervala x0 in x1,
kjer pričakujemo ničlo (ničla je pri sekanti lahko tudi izven začetnih meja!).
* 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.