Sustavi nelinearnih jednadžbi 1 1 Newtonova metoda Rješavanje sustava nelinearnih jednadžbi Promatramo sustava nelinearnih jednadžbi f i x 1,x 2,...,x n )=0, i =1,...,n, 1) odnosno fx) =0, gdjejef : R n R n, fx) =f 1 x),...,f n x)) T, x =x 1,...,x n ) T. Najpoznatija metoda za rješavanje sustava nelinearnih jednadžbi je tzv. Newtonova metoda. 1 Najprije izaberimo početnu aprosimaciju x 0) =x 0) 1,x0) 2,...,x0) n ) T i svau od funcija f i razvijemo u Taylorov red u oolini x 0), te linearnu aprosimaciju označimo s f i : f i x) =f i x 0) )+ Sada umjesto sustava 1) rješavamo sustav n j=1 f i x 0) ) x j x j x 0) j ), i =1,...,n. 2) f i x) =0, i =1,...,n, što možemo pisati u matričnom obliu na sljedeći način J 0) s 0) = fx 0) ), 3) J 0) = f 1x 0) ) f 1x 0) ) x n x 1..... f nx 0) ) x 1 f nx 0) ) x n, s0) = x 1 x 0) 1. x n x 0) n, fx0) )= f 1 x 0) ). f n x 0) ). Matricu J nazivamo Jacobijeva matrica ili Jacobijan sustava. Nova aprosimacija rješenja tada je Općenito, dobivamo iterativni postupa gdje je vetor smjera retanja s ) rješenje sustava x 1) = x 0) + s 0). x +1) = x ) + s ), =0, 1,... 4) J ) s = fx ) ). 5) Primijetite da se iterativni postupa 4) 5) uz pretpostavu regularnosti Jacobijana J ) može zapisati u obliu x +1) = x ) J )) 1 fx ) ), =0, 1,..., 6) što podsjeća na Newtonovu metodu tangenti za rjeˇsavanje jednadžbe fx) =0,f : R R. iterativni proces 6) rijeto se oristi jer je postupa 4) 5) numeriči stabilniji. 1 U literaturi ova metoda često se može naći pod nazivom: Newton-Raphson method Inače,
2 Sustavi nelinearnih jednadžbi Ao početnu aprosimaciju x 0) izaberemo dovoljno blizu rješenja x i ao je u svaoj iteraciji Jacobijan J nesingularan, onda Newtonova metoda 4) vrlo brzo vadratičnom brzinom) onvergira prema rješenju sustava jednadžbi 1) više detalja vidi u [4] ili [8]). To zapravo znači da u prasi nemamo garancije da će Newtonova metoda uvije onvergirati, ali ao smo u stanju početnu aprosimaciju željenog rješenja dobro procijenit, ova metoda će nas vrlo brzo dovesti do pravog rješenja. Primjer 1 Treba riješiti sustav jednadžbi: x 2 x 1 1) 1 = 0 x 2 1 x2 2 1 = 0 Geometrijsi, to znači da treba pronači sjecišta odgovarajućih rivulja čiji su grafovi priazani na Slici 1. 2 1.5 1 0.5-3 -2-1 -0.5 1 2 3-1 -1.5-2 Slia 1. x 2 x 1 1) 1=0, x 2 1 x 2 2 1=0 Ovu sliu lao se može nacrtati u Mathematici. Najprije treba pozvati Mathematic-pacage: In[1]:= << Graphics ImplicitPlot a zatim sljedećom naredbom dobivamo Sliu 1: In[2]:=ImplicitPlot[{x2x1-1) - 1 == 0, x1^2 - x2^2-1 == 0}, {x1, -3, 3}, PlotStyle -> {GrayLevel[0], Dashing[{.02}]}, PlotRange -> {-2, 2}, AspectRatio ->.7] Uovomslučaju imamo: fx 1,x 2 )= [ ] [ ] x2 x 1 1) 1 x2 x x 2 1 x2 2 1, Jx 1,x 2 )= 1 1. 2x 1 2x 2 Funciju f i njen Jacobijan J definirat ćemo na sljedeći način: In[3]:= Clear[f, J, x1, x2]; n = 2; f[x_] := {x[2]x[1] - 1) - 1, x[1]^2 - x[2]^2-1}; f[x] /. {x[1] -> x1, x[2] -> x2} J[x_] := Table[D[f[x][[i]], x[j]], {i, n}, {j, n}] J[x] /. {x[1] -> x1, x[2] -> x2} Počevši primjerice s početnom aprosimacijom x 0) =2, 1) T orištenjem jednostavnog programa In[9]:= w = Table[x[i] -> x0[[i]], {i, n}]; a = H[x] /. w ; b = -f[x] /. w; Print["x0=", N[x0], " f0= ", -N[b]] s0 = LinearSolve[a, b]; x1 = x0 + s0; x0 = x1;
Sustavi nelinearnih jednadžbi 3 dobivamo f 0) =0, 2) T.Ponavljajući ovaj ratni program dobivamo vrijednosti priazane u Tablici 1. x ) 1 x ) 2 fx ) 1,x) 2 )T x ) 1 x ) 2 fx ) 1,x) 2 )T 0 2 1 0, 2) -1 -.5 0,.25) 1 1.66667 1.33333-0.111111, 0.) -1.11111-0.472222 0.003, -0.012) 2 1.71795 1.39744-0.003, 0.001) -1.10692-0.474621-0.00001, 0.00001) 3 1.71667 1.39534 2.7 6, 2.7 6 ) Tablica 1 Taoder za x 0) = 1,.5) T dobivamo f 0) =0,.25) T, te u u samo dva oraa rješenje priazano u Tablici 1. U ovom slučaju zadovoljit ćemo se riterijem da iterativni proces zaustavimo ad vrijenost svih funcija f i postanu manje od neog unaprijed zadanog broja ε>0, tj. ada za nei bude ispunjeno fx ) ) =max f i x ) ) <ε. i Sada ćemo sagraditi Mathematica-modul SNJ oji će rješavati sustav od n nelinearnih jednadžbi s n nepoznanica: In[14]:= SNJ[n_, x0_, eps_, it_, f_] := Module[{a, b, s0, = 0}, w = Table[x[i] -> x0[[i]], {i, n}]; J[x_] := Table[D[f[x][[i]], x[j]], {i, n}, {j, n}]; a = J[x] /. w ; b = -f[x] /. w; xs = x0; Print["x0=", N[x0], " f0=", -N[b]]; While[ = + 1; Max[Abs[b]] > eps && < it, s0 = LinearSolve[a, b]; xn = xs + s0; xs = xn; w = Table[x[i] -> xs[[i]], {i, n}]; a = J[x] /. w ; b = -f[x] /. w; Print["x",, "=", N[xn], " f=", -N[b]]; ] ] Modulu SNJ predajemo sljedeće podate: n broj jedndžbi odnosno nepoznanica) x0 vetor početne aprosimacije eps zahtijevana točnost it masimalno dozvoljen broj iteracija f funcija f : R n R n Iterativni proces teče i printaju se medurezultati izračunavanja tao dugo do je fx ) ) >epsi masimalno dozvoljen broj iteracija <it. Zadata 1 Naći rješenja sustava nelinearnih jednadžbi 3x 2 1 + 3 2 x2 2 + x 2 3 5 = 0 6x 1 x 2 x 3 x 1 +5x 2 +3x 3 = 0 5x 1 x 3 x 2 x 3 1 = 0 Rješenje: x 1 =1.2844570503, x 2 =0.1297565120, x 3 =0.1589186226.
4 Sustavi nelinearnih jednadžbi Zadata 2 Naći rješenja sustava nelinearnih jednadžbi Rješenje: x 1 =0.441615, x 2 =0.780995 2x 2 1 + x2 2 1 = 0 x 3 1 +6x 2 1x 2 1 = 0 Zadata 3 Naći rješenja sustava nelinearnih jednadžbi Rješenje: x 1 =0.646061, x 2 =0.913292. 2x 1 x 2 6ln x 3 = 0 15x 1 10x 2 60ln x 2 6 = 0 Zadata 4 Naći rješenja sustava nelinearnih jednadžbi Rješenje: x 1 =3.86863, x 2 =2.99575. x 1 +3log 10 x 1 x 2 2 = 0 2x 2 1 x 1x 2 5x 1 +1 = 0 Zadata 5 Za različite vrijednosti od n naći rješenja sustava nelinearnih jednadžbi vidi??) Rješenje: x 1 =0,, 0) T, x 2 =10,, 10) T. f i x i x2 i+1 10 = 0, i =1,...,n 1 f n x n x2 1 10 = 0 Zadata 6 Sljedeći sustav jednadžbi javlja se od problema modeliranja tranzistora vidi taoder [9]). 1 x 1 x 2 )x 3 expx5 g 1 g 3 x 3 7 g 5 x 3 8 )) 1) g 5 + g 4 x 2 = 0, =1, 2, 3, 4 1 x 1 x 2 )x 4 expx6 g 1 g 2 g 3 x 3 7 )) 1) g 5 x 1 + g 4 = 0, =1, 2, 3, 4 x 1 x 3 x 2 x 4 = 0, gdje su g i,j elementi matrice Rješenje: G =.485.752.869.982.369 1.254.703 1.455 5.2095 10.0677 22.9274 20.2153 23.3037 101.779 111.461 191.267 28.5132 111.8467 134.3834 211.4823 x 1 =.9,.449987, 1.00001, 2.00007, 7.99997, 7.99969, 5.00003,.999988, 2.00005) T x 2 =.898510,.973968, 11.6486, 10.7462, 3.25083, 6.71055, 8.764, 1.25133,.525131) T. Zadata 7 U [14] naveden je sljedeći primjer sustava nelinearnih jednadžbi f 1 = arctanx 1 )+2x 1 x 2 =0 f 2 = 2x 1 + x 2 =0, oji ima jedinstveno rješenje 0, 0) T.Poažiteda Newtonova metoda za proizvoljni x 0) 2 onvergira prema rješenju ao je x 0) 1 < 1.391 i divergira ao je x0) 1 > 1.392. Uputa: Razmotrite omjer xn+1) 1.Poslužite se grafičim priazom. x n) 1.
Sustavi nelinearnih jednadžbi 5 Zadata 8 U [5] navedeni su sljedeći test problemi s poˇxetnom aprosimacijom x 0) irješenjem x a) K.M. Brown 1969) n =5, x 0) =.5,...,.5) T, x =1,...,1) T. f i = n +1)+2x i + n x j, 1 i n 1 f n = 1+ n x j =0 j=1 j i b) K.M. Brown 1969) n =2, x 0) =.1, 2) T, x =1.06735,.139228) T. f 1 = x 2 1 x 2 1=0 f 2 = x 1 2) 2 +x 2.5) 2 1=0 c) R. Fletcher 1965) n =2...,9, x 0) j = j/n +1), 1 j n; su permutacije apscisa Čebiševljeve vadraturne formule reda n. x j f i = 1 0 T i ζ)dζ 1 n n T i x j ), gdje je T i i-ti Čebiševljev polinom transformiran na interval [0, 1], tj. T 0 ζ) 1, T 1 ζ) =2ζ 1, T i+1 ζ) =22ζ 1)T i ζ) T i 1 ζ), zai 1. j=1 Primijetite da vrijedi: 1 0 { 0, i neparan T i ζ)dζ = i paran 1 i 2 1, d) K. M. Brown, S. D. Conte 1967) n =2, x 0) =.6, 3) T, x =.5,π) T. f 1 = 1 2 sinx 1x 2 ) x2 4π x1 2 =0 f 2 = 1 1 4π ) e 2x1 e ) + ex2 π 2ex 1 =0 e) K. M. Brown, W. B. Gearhart 1971) n =3, x 0) =1,.7, 5) T, x =0, 2, 6) T. f 1 = x 2 1 +2x 2 2 4=0 f 2 = x 2 1 + x2 2 + x 3 8=0 f 3 = x 1 1) 2 +2x 2 2) 2 +x 3 5) 2 4=0 f) C. G. Broyden 1965) n =5, 10, x 0) = 1,..., 1) T. f 1 =.5x 1 3)x 1 +2x 2 1 f i = x i 1 +.5x i 3)x i +2x i+1 1 2 i n 1 f n = x n 1 +.5x n 3)x n 1 Za n =5, x =.968, 1.18696, 1.14848,.958989,.594159) T Za n =10, x = 1.03011, 1.310444, 1.37992, 1.39071, 1.37963, 1.34993, 1.29066, 1.17748,.967501,.596526) T
6 Sustavi nelinearnih jednadžbi 2 Quasi Newtonova metoda Vrlo važno mjesto medu metodama za rješavanje sustava nelinearnih jednadžbi zauzimaju tzv. Quasi- Newtonove metode, ojejeuveobroyden 1965), a oje su nastale ao generalizacija metode seanti. Kao što je poazano u t. 1 aprosimaciju funcije f u oolini toče x 0 možemo zapisati ao fx) = fx 0 )+Jx 0 )x x 0 ). Ao s B označimo aprosimaciju Jacobijana J utoči x 0, onda ima smisla postaviti zahtjev da B zadovoljava jednadžbu fx) =fx 0 )+ Bx x 0 ), što uz oznae: s := x x 0, y := fx) fx 0 )možemo pisati Bs = y 7) Ao je B poznata aprosimacija od J, Broydenova pretpostava je da se B razliuje od B samo u smjeru s, tj.dase B ne razliuje od B na ortogonalnom omplementu od s, tj. Bz = Bz, ao je z,s) =0. 8) Lao se može poazati da B definiran s B = B + y Bs)sT s, s) 9) zadovoljava 7) i 8), te da se B dobiva od B dodavanjem matrice orecije) ranga 1. Na taj način dobivamo diretnu Broydenovu metodu gdje se matrice B R n n generiraju reurzivnom formulom gdje je x +1 = x B 1 fx ), =0, 1,..., 10) B +1 = B + y B s )s T s,s ), =0, 1,..., 11) y = fx +1 fx ), s = x +1 x. 12) Izradit ćemo Mathematica program za diretnu Broydenovu metodu i testirati ga na Primjeru 1, str.2. Najprije definirajmo funciju f, broj jednadžbi n, početnu aprosimaciju x 0,točnost eps, masimalno dozvoljen broj iteracija it itejediničnu matricu B 0 reda n ao početnui aprosimaciju jacobijana, a brojač iteracija postsvimo na 0. In[1]:= f[x_]:= {x[2]x[1] - 1) - 1, x[1]^2 - x[2]^2-1}; n = 2; = 0; x0 = {2., 2.}; eps =.00005; it = 100; B0 = IdentityMatrix[n]; Print["x0=", x0, " f0=", f[x]/.table[x[i]->x0[[i]], {i,n}]] Naon toga oristeći algoritam opisan s 10) 12) napišimo program za diretnu Broydenovu metodu
Sustavi nelinearnih jednadžbi 7 In[2]:= While[ = + 1; w0 = Table[x[i] -> x0[[i]], {i, n}]; s0 = -Inverse[B0].f[x] /. w0; x1 = x0 + s0; w1 = Table[x[i] -> x1[[i]], {i, n}]; f1 = f[x] /. w1; f0 = f[x] /. w0; y = f1 - f0; Max[Abs[f1]] > eps && < it, Print["x",, "=", x1, " f",, "=", f1] If[Apply[Plus, s0 Inverse[B0].y] == 0, B1 = B0, v = s0/apply[plus, s0 s0]]; vv = y - B0.s0; B1 = B0 + Table[vv[[i]] v[[j]], {i, n}, {j, n}]; x0 = x1; B0 = B1 ] Računanje inverzne matrice B 1 jednadžbi može se izbjeći tao da umjesto 10) rješavamo sustav linearnih B s = fx ). Drugi način da bi izbjegli računanje inverzne matrice B 1 je primjena Sherman Morrisonove leme 2 Korištenjem Sherman Morrisonove leme iz 11) izračunat ćemo B 1 +1.Uzoznae u = y B s s,s ), v = s, dobivamo σ =1+ s,b 1 ) y B s = s,b 1 s,s ) y ), s,s ) B 1 +1 = B 1 s,s ) s,b 1 y ) B 1 y B s s,s ) s T B 1 = B 1 Prema tome ao označimo: H := B 1, onda je H +1 := B 1 +1 definiran s + s B 1 y )s T B 1 s,b 1 y ) H +1 = H + s H y )s T H, uz uvjet s,h y ) 0, 13) s,h y ) čime je definiran inverzni Broydenova metoda x +1 = x H fx ), =0, 1,..., 14) Ao najprije definiramo potrebne parametre slično ao i od diretne Broydenove metode In[1]:= f[x_]:= {x[2]x[1] - 1) - 1, x[1]^2 - x[2]^2-1}; n = 2; = 0; x0 = {2., 2.}; eps =.00005; it = 100; H0 = IdentityMatrix[n]; Print["x0=", x0, " f0=", f[x]/.table[x[i]->x0[[i]], {i,n}]] onda oristeći algoritam opisan s 13) 14) možemo napisati program za invrznu Broydenovu metodu 2 Lema Sherman-Morrison 1949)). Nea su u, v R n ineajea R n n regularna matrica. Tada je matrica A + uv T regularna onda i samo onda ao je σ =1+v, A 1 u) 0. Aojeσ 0, onda vrijedi A + uv T ) 1 = A 1 1/σ)A 1 uv T A 1.
8 Sustavi nelinearnih jednadžbi In[2]:= While[ = + 1; w0 = Table[x[i] -> x0[[i]], {i, n}]; s0 = -H0.f[x] /. w0; x1 = x0 + s0; w1 = Table[x[i] -> x1[[i]], {i, n}]; f1 = f[x] /. w1; f0 = f[x] /. w0; y = f1 - f0; Max[Abs[f1]] > eps && < it, Print["x",, "=", x1, " f",, "=", f1] If[y == Table[0, {i, n}], H1 = H0, v = Transpose[H0].s0)/Apply[Plus, H0.y) s0]]; vv = s0 - H0.y; H1 = H0 + Table[vv[[i]] v[[j]], {i,n}, {j,n}]; x0 = x1; H0 = H1 ] Naravno, rezultati izvodenja Broydenove diretne i inverzne metode moraju biti isti. U Tablici 2 priazano je prvih 8 iteracija na Primjer 1.. x 1 x 2 f 0 2 2 1 1 1 3 9 2 0.666667 0 1 3 1.41165 0.847744.65 4 4.18449 5.07559 15.16 5 1.537 1.00531.46 6 1.60838 1.13469.31 7 1.75064 1.45862.095 8 1.71616 1.38812.018 Tablica 2 Broydenova metoda Broydenova metoda je sporija od Newtonove, ali su njene prednosti u tome što nije potrebno izračunavati Jacobijan funcije f. Zadata 9 Doažite Sherman Morrisonovu lemu. Zadata 10 Usporedite Newtonovu metodu s Broydenovom diretnom i inverznom metodom tao da pratite potrebno vrijeme računanja za ranije navedene primjere. Za n =2nacrtajte grafove funcija f 1,f 2,teucrtajtetoče oje pretstavljaju pojedine iteracije. Navest ćemo još dvije najpoznatije quasi-newtonove metode ranga 2 vid primjerice [3], [4], [6]): a) Davidon-Fletcher-Powell DFP) metoda x +1 = x H fx ), =0, 1,..., H +1 = H + s s T y, s ) H y y T H, =0, 1,..., y, H y ) b) Broyden-Fletcher-Goldfarb-Schano BFGS) metoda H +1 = I x +1 = x H fx ), =0, 1,..., s y T ) H I y, s ) y s T ) + s s T, =0, 1,..., y, s ) y, s )
Sustavi nelinearnih jednadžbi 9 Više tetalja o ovim metodama, o uvjetima i brzini onvergencije, te njihovim svojstvima može se vidjeti u niže navedenoj literaturi, a posebno u [3], [6] Zadata 11 Izradite programe za DFP i BFGS metode. Testirajte ove metode s drugim na ranije danim primjerima. Literatura [1] G. Dahlquist, A. Björc Numerische Methoden, R. Oldenbourg Verlag, München, Wien, 1972. postoji i englesi prijevod) [2] E. W. Cheney, Introduction to Approximation Theory, AMS Chelsea Publishing, 1998. [3] J.E.Dennis Jr., J.J.Moré Quasi Newton methods, motivation and theory, SIAMReview191977), 46 89. [4] J. E. Dennis, R. B. Schnabel, Numerical Methods for Unconstrained Optimization and Nonlinear Equations, SIAM, Philadelphia, 1996. [5] D. M. Gay, R. B. Schnabel, Solving system of nonlinear equations by Broyden s method with projected updates, in: Nonlinear Programming 3, edited by O. L. Mangasarian, R. R. Meyer, S. M. Robinson, Academic Press, New Yor, 1978, 245 281. [6] C. T. Kelley, Iterative Methods for Optimization, SIAM, Philadelphia, 1999. [7] D. Kincaid,W. Cheney, Numerical Analysis, Broos/Cole Publishing Company, New Yor, 1996. [8] J. M. Ortega,W. C. Rheinboldt, Iterative Solution of Nonlinear Equations in Several Variables, Academic Press, New Yor, 1970. postoji i rusi prijevod) [9] W. L. Price, A weighted simplex procedure for the solution of simultaneous non-linear equations, J.Inst.Maths.Applics. 241979), 1 8. [10] W. H. Press, B. P. Flannery, S. A. Teuolsy, W. T. Vetterling, Numerical Recipes, Cambridge University Press, Cambridge, 1989. [11] H. R. Schwarz, Numerische Mathemati, Teubner, Stuttgart, 1986. [12] R. Scitovsi, Numeriča matematia, Odjel za matematiu, Sveučilište u Osijeu, Osije, 2000 [13] H. Späth, Numeri, Vieweg, 1994. [14] L. Wegge, On a discrete version of the Newton Raphson method, SIAM J.Numer.Anal. 31966), 134 142.