Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S JEDNOM NEPOZNANICOM
1.1 METODA BISEKCIJE 1.1.1 METODA Nakon početnog istraživanja funkcije poznati su nam dl xx < , tako da je:
0)()( <⋅ dl xfxf . Kako može izgledati f na intervalu [ ] dl xx , ?
Ako je funkcija neprekinuta mora presjeći x-os barem jednom, odnosno postoji barem jedan realni korijen između i . Kako mu se približiti? Raspolovimo interval: lx dx
2dl
sxxx +
=
1
Ako je , tada je traženi korijen 0)( =sxf sx sxx =0 , a ako ne gdje je ? 0x Ako je , tada je . 0)()( <⋅ sl xfxf [ ]sl xxx ,0 ∈Ako je , tada je . 0)()( <⋅ ds xfxf [ ]ds xxx ,0 ∈U oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj korijena je bolje poznat.
0x
Ime metode :
bisection method = binary choping = interval halving = Bolzano’s method 1.1.2 KONVERGENCIJA Ako je funkcija neprekinuta, konvergencija metode je sigurna. Brzina konvergencije: gornja ocjena greške u i-tom koraku je očito:
)()( id
ili xx −=ε ,
pa je:
21i
iεε =+ .
Tako ako želimo naći s točnošću 0x ε moramo učiniti n koraka, tj.
02
2
1 21......
21
21 εεεεε ⋅
==⋅
=⋅== −−
n
nnn
( 0ε - početna greška), odnosno:
εε 0
2log=n .
1.1.3 SVOJSTVA 1) Ako funkcija ima prekid na može biti [ dl xx , ] 0)()( <⋅ dl xfxf i bez korijena u tom intervalu, pa metoda neće konvergirati.
2
2) Kada konvergira, konvergira dosta sporo, tj. ima bržih metoda. 1.1.4 PSEUDOKOD Da bi se zaštitili od moguće divergencije na funkcijama s prekidom, najbolje je kao kriterij zaustavljanja uzeti ( ) <∈sxf i ograničiti broj iteracija. iter=0 DO iter=iter+1 xs=(xl+xd)/2 err=|f(xs)| IF (err>ε) IF ( f(xl) · f(xs) < 0 ) xd=xs ELSE xl=xs ENDIF ENDIF WHILE (err>ε) and (der<maxit)
3
1.2 NEWTONOVA METODA 1.2.1 METODA Ako možemo izračunati vrijednosti funkcije i vrijednosti derivacije funkcije i ako znamo neki koji je blizu traženog korijena, možemo nelinearnu funkciju u okolini točke zamijeniti pravcem najsličnijim toj funkciji – tangentom!
f ix( ))if (,i xfx
Mjesto gdje ta tangenta siječe x-os lako izračunamo:
( ) ( )( )ii
iiiii
i
xfxfxxxf
xxxf
'')(
11
−=⇒=− +
+
Newton-Raphsonova formula
Ponovimo isti postupak više puta:
4
Ako smo krenuli “dovoljno blizu” korijenu i ako je funkcija na tom dijelu “dovoljno dobra” metoda će konvergirati! Ime metode:
Newtonova metoda = Newton-Raphsonova metoda = metoda tangente 1.2.2 KONVERGENCIJA Pretpostavimo da je dva puta derivabilna tako da u okolini vrijedi Taylorova formula: f ix
( ) ( ) ( )( ) ( ) ( 2
2"' iiii xxfxxxfxfxf −+−+= )ξ uz
( )>∈<
−+=1,0ϑϑξ ii xxx
Posebno za traženi korijen : 0x
( ) ( )( ) ( ) ( )200 2"'0 iiii xxfxxxfxf −+−+=ξ ,
dok iz Newton-Raphsonove formule slijedi: ( ) ( )( )iiii xxxfxf −+= +1'0 ,
oduzimanjem ovih jednakosti dobivamo:
( )( ) ( ) ( )2010 2"'0 iii xxfxxxf −+−= +ξ
odnosno: ( )( )
21 '2
"i
ii xf
f εξε⋅
−=+
te je konvergencija kvadratična! 1.2.3 SVOJSTVA Metoda ima slabu globalnu konvergenciju: ako nismo dovoljno blizu korijenu metoda će vrlo lako divergirati – problem je u horizontalnim i kvazi-horizontalnim tangentama!
5
No kada smo dovoljno blizu korijenu kvadratična konvergencija metode znači da se broj točnih znamenki udvostručava sa svakim korakom! Zato je ovo i najkorištenija od svih metoda za traženje korijena. 1.2.3 PSEUDOKOD Da bi se zaštitili od divergencije kod ove metode osim ograničenja broja iteracija i uzimanja za kriterij zaustavljanja ( ) <∈2xf treba paziti i na horizontalne tangente! iter=0 DO iter=iter+1 df=f’(x1) IF (|df|>TINY ) x2=x1 - f(x1)/df err=|f(x2)| IF ( err>ε ) x1=x2 ENDIF ENDIF WHILE (|df|>TINY ) and ( err>ε ) and ( iter>maxit )
6
1.3 METODA SEKANTE 1.3.1 METODA Pretpostavimo da su nam poznate dvije točke i koje su blizu traženog korijena, tada možemo funkciju zamijeniti pravcem kroz točke
1x 2xf ( ))1(f,1 xx i ( ))(, 22 xfx tj. sekantom.
Mjesto gdje sekanta siječe x-os lako izračunamo:
)()()()()()(
21
21123
32
2
13
1
xfxfxxxfxx
xxxf
xxxf
−−⋅
−=⇒−
=−
Da li je bliže korijenu? 3xU iterativnom postupku ideju sekante možemo koristiti na dva načina: 1) Ako su i dva uzastopna približna rješenja uzmimo za iduće: 1−ix ix
)()()()(
1
11
ii
iiiii xfxf
xxxfxx−
−⋅−=
−
−+
7
Ime metode: metoda sekante
2) Ako su i takvi da je lx dx 0)()( <⋅ dl xfxf umjesto da dijelimo interval [ u sredini dijelimo ga tamo gdje sekanta siječe x-os tj. u:
]dl xx ,
)()()()(
dl
dldds xfxf
xxxfxx−
−⋅−=
i zatim nastavljamo kao u metodi bisekcije tj.: ako je sdsl xxxfxf =⇒<⋅ 0)()( ,a ako je slsd xxxfxf =⇒<⋅ 0)()( .Ime metode:
false position method=regula falsi=linear interpolation method
1.3.2 KONVERGENCIJA 1) Metoda sekante: može se pokazati da je:
618,11 ii c εε ⋅=+ (1.618 = “golden ratio”)
2) Regula falsi metoda: budući da je bolja od metode bisekcije ima barem linearnu, a često i superlinearnu konvergenciju.
8
1.3.3 SVOJSTVA 1) Metoda senkante: evaluacija je u nekim slučajevima nemoguća, pa je tada od Newton-
Raphsonove bolja ova metoda. To se međutim plaća sporijom konvergencijom (s reda 2 padamo na red 1,618). Metoda može divergirati iz sličnih razloga (tj. zbog lokalnog ponašanja) baš kao i Newton-Raphsonova matoda.
'f
2) Regula falsi metoda: ako je bliže 0 nego vjerojatnije je da je bliže nego ,
to metoda bisekcije ne uzima u obzir, a regula falsi metoda da! Zato je ova metoda bolja od metode bisekcije tj. brže konvergira, a isto kao i metoda bisekcije ne može divergirati za
neprekidne.
)( lxf )( dxf 0x lx rx
f
9
3) Usporedba metode sekante i regula falsi metoda: kada konvergira metoda sekante konvergira brže, ali može divergirati dok se to sa regula falsi metodom ne može dogoditi! Ima funkcija na kojima su obje metode spore i čak slabije od metode bisekcije:
1.3.4 PSEUDOKOD 1) Metoda sekante iter=0 DO iter=iter+1 d=f(x1)-f(x2) IF (|d|>TINY) x3=x2-f(x2)⋅(x1-x2)/d err=|f(x3)| IF (err > ε) x1=x2 x2=x3 ENDIF ENDIF WHILE (|d|>TINY) and (err > ε) and (iter<maxit)
10
2) Regula falsi metoda iter=0 DO iter=iter+1 d=f(xl)-f(xd) IF (|d|>TINY) xs=xd-f(xd)⋅(xl-xd)/d err=|f(xs)| IF (err > ε) IF (f(xl)⋅f(xs)<0) xd=xs ELSE xl=xs ENDIF ENDIF ENDIF WHILE (|d| > TINY ) and (err > ε) and (iter<maxit)
11
1.4 METODA FIKSNE TOČKE 1.4.1 METODA Ako je korijen jednadžbe: 0x
0)( =xf i ako definiramo:
xxfxg += )()( onda za vrijedi: 0x
)( 00 xgx = tj. je fiksna točka funkcije 0x g . Tada ako je blizu onda je ix 0x ( )ii xgx ≈ pa je možda:
)(1 ii xgx =+ još bliže ! 0x
12
Ime metode: iteracijska metoda = metoda fiksne točke
1.4.2 KONVERGENCIJA Izračunajmo red konvergencije:
( ) ( )0011 xgxgxx iii −=−= ++ε = (teorem srednje vrijednosti) = ( ) ( ) ( ) ii gxxg εξξ ⋅=−⋅ '' 0 Prema tome, ako je 1' <g , metoda konvergira i to linearno, a ako je 1' ≤g metoda divergira! Uočimo još da ako je , se monotono mijenja, a ako je 0'>g ix 0'<g , oscilira. ix
1.4.3 SVOJSTVA Može se primijeniti samo ako se zna da u blizini traženog korijena xxfxg += )()( ima 1' <g , tada je konvergencija sigurna, ali je najviše linearna. 1.4.4 PSEUDOKOD Ograničenje 1' <g nećemo provjeravati! iter=0 DO iter=iter+1 x2=f(x1)+x1 err=|f(x2)| IF ( err>ε ) x1=x2 ENDIF WHILE ( err>ε ) and ( iter<maxit )
1.5 OSTALE METODE Van Wijngaarden-Dekker-Brentova metoda: Lokalno zamjenjuje se funkcija kvadratnom parabolom i traži njen presjek sa x-osi (superlinearna konvergencija!) i samo ako ta točka ispada iz intervala u kome tražimo korijen korak se zamjenjuje običnom bisekcijom => super-strategija preporučljiva za sve za koje ne možemo računati . f 'f
13