NEWTNOVA METODA


Pri newtnovi metodi izberemo začetni približek x0, nadomestimo nelinearno funkcijo f(x) s tangento v točki (x0,f(x0)) in poiščemo kje tangenta seka os x. To je novi približek korena x1. Postavimo tangento v točki (x1,f(x1)) in postopek nadaljujemo.





Algoritem Newtnove metode:

1.izračunamo f'(x).

2.postavimo indeks i=0,izberemo začetni približek x0, izberemo dopustno relativno napako ε, določimo maksimalno število iteracij (ponovitev).

3.izračunamo nov približek xi+1 po formuli

4.če je izvedemo predpisano maksimalno število iteracij se program ustavi, računanje prekinemo. Pomeni, da xi+1 ni primeren približek rešitve enačbe.

5.če je , povečamo indeks i in se vrnemo na drugi korak. Sicer pomeni, da je xi+1,dober približek rešitve enačbe α. Ponavljanje zaključimo.


FUNCTION F(X)
F=X-EXP(-X)+0.3*SIN(X)
RETURN
END


FUNCTION FD(X)
FD=1+EXP(-X)+0.3*COS(X)
RETURN
END

WRITE(*,*)'Podaj zacetni priblizek:'
READ(*,*)X0
WRITE(*,*)'Podaj zahtevano natancnost:'
READ(*,*)ES
WRITE(*,*)'Podaj maksimalno stevilo iteracij:'
READ(*,*)MAXIT
ITER=0
EP=1.1*ES

DO WHILE(EP.GT.ES.AND.ITER.LT.MAXIT)
WRITE (*,10)ITER,X0
ITER=ITER+1
X1=X0-F(X0)/FD(X0)
IF(X1.NE.0.0)THEN
EP=ABS((X1-X0)/X1)
ENDIF
X0=X1
ENDDO


WRITE(*,*)'Koren=',X0
WRITE(*,*)' Dosezena natancnost=',EP
WRITE(*,*)' Stevilo iteracij=',ITER
10 FORMAT(I5,F14.6)
END

Nazaj