13
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 d l x x < , tako da je: 0 ) ( ) ( < d l x f x f . Kako može izgledati f na intervalu [ ] d l x x , ? 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: l x d x 2 d l s x x x + = 1

1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 2: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 3: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 4: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 5: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 6: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 7: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 8: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 9: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 10: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 11: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 12: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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

Page 13: 1. METODE RJEŠAVANJA NELINEARNE JEDNADŽBE S …gf.sum.ba/anton/primat/per1.pdfU oba slučaja dobijemo novi interval upola manji od prethodnog u kome je . Ako nastavimo postupak položaj

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