You are on page 1of 17
[ Cap.5 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius _ 5. Rezolvarea sistemelor de ecuatii neliniare Pentru rezolvarea sistemelor de ecuatii neliniare in marea majoritate a cazurilor se utilizeazé metode iterative de rezolvare, cu exceptia unor cazuri particulare cand existé metode exacte de rezolvare. Pentru rezolvarea sistemelor de ecuatii neliniare se utilizeaza metode care reprezinté 0 extindere in spatiu n dimensional a. metodelor folosite la rezolvarea ecuatillor neliniare cu o singura variabila. 4.1 Metode iteratiilor simple(Jacobi) Daca se considera sistemul de ecuatji: F(X)=0F:D>R" DER" unde, ~{X} = {x,,x,...x,} vectorul necunoscutelor F(X) = (A(X), £,(4)...f,(4)). vectorul functillor (AG te ty Far ¥a¥ao%y Fri &isXr%yshon kn) Fal% X25 Xa Fs-% qe) =O Pentru rezolvarea sistemului de ecuatii neliniare, sistemul este adus la forma neceara pentru iterare x = G(x). Pentru rezolvarea sistemului de ecuatii neliniar se utilizeaz’ urmatoarea relatie iterativa: ft aga a = ga xx.) Px a?) Cap.5 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius x) G(r) Sirul valorilor x i =1..n este convergent ima)" = ‘in domeniul D daca: -functile g,(x,,x5.,...%,) = 1. Sunt continui si derivabile in domeniul D j=1..n apartin domeniului D -toate valorile sirului de iterare sAsl j=tnsau >| Ae, SASLi=lan .,..@, yatunci, eroarea estimatd la Dacé solutia sistemului de ecuatii este a, iteratia k este: YFeLn unde, M =max(ay,0,..04,)+ Pentru oprirea ciclului de iterati se utilizeaz4 conditia de stop globalé, ca numarul de iteratii s8 nu depaseascé numarul de iterati maxim stabilit. Ciclul iterativ mai poate fi intrerupt chiar daci nu s-a atins numarul maxim de iteratii, dar sunt indeplinite una sau ambele conditi. xP se, i= Lun i/fG?.a,.29)) se, f= 1m Valorile «,,c, fiind valori prestabilite. Exemplui Sa se rezolve sistemul de ecuatii neliniare: Ajo) = 23 +20, 2, 42=0 fx(%,,X) = x, + x} -18x, +2=0 Pentru a aplica metoda iteratiilor Jacobi sistemul este scris sub forma: “(a Cay! (Ga) 75 [_Cap.5 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius Utilizand metoda iteratillor Jacobi se obtin urmatoarele valori pentru necunoscutele x, si x, la fiecare iteratie. Tteratia Valoarea lui x1 Valoarea x2 Diferenta maxima dintre vectori solutie pentru doua iteratii succesive 1 ~1.30000000000000 1.7777777777778. 4.30000000000000 2 | 0.09873888888889 0.35103642737388 1.42674135040390 3 ).08249631072037 0.11899977249738 3203665487649 4 1.09402 193936024 0.10662160214526 (237817035212 Ss -0.09462736160752 0.10595500848427 0.00066659366099 6 0846598830885 | —0.10592011880345 (0.00003488968082 7 ~0.09466158409633 0.10591824678247 0.00000187202098 Vectorul solutiilor initiale utilizat xi=[3,3], numarul maxim de iteratii 30, iar functille Matlab utilizate sunt: function G1=G1(x) G1=[-(1/20)*x(1)3+(1/20)*x(2)-(2/20) ((1/18)*x(1)+(1/18)*x(2)*3+(2/18))];, Jacobi('G1',[3 3 J',0.0000001, 0.0000001,30) Exemplu2 Sd se rezolve sistemul de ecuatii neliniare: AQ .%2.%) = a + 60x, + x} -160= 0 Fo(%.%).%5) = 4 — 30x, +x} -90=0 +22 + 60x, +110=0 Sistemul de ecuatii este adus sub urmatoare forma: Vo (1)... (160 aw) (o}*(a) -(}s-(2) Gos? (30 yale leo) 60 Utilizand metoda iteratiilor Jacobi rezulté urmatoarele valori pentru x, x, gi x, la fiecare iteratie. 76 Cap.5 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius Iteratia | Valoarea lui x1 Valoarea lui x2 Valoarea lui x3 | Diferenta maxima dintre vectori solutie pentru doua iteratii succesive _| 2.13333333333333 | -1.93333333333333_| -1.83333333333333 | 5.93333333333333 2.53479629629630 | -2.73625925925926 | -1.81977777777778 | _ 0.80292592592593, 2.50438694292981 | -2.67544055252629 | -1.85103204116941 | 0.06081870673297 | 2.50502877371078 | -2.67672421408823 | -1.84810046983641 | 0.00293157133300 | 2.50515592493786 | -2.67697851654238 | -1.84816138935279 | 0.00025430245415 2.50514155451091 | -2.67694977568848_| -1.84817346282964 | 0.00002874085391 Mor en) es) 2.50514201071925 | -2.67695068810517_| -1.84817209822369 | 0.00000136460595 Vectorul solutiilor initiale a fost xi=[4 4 4], numarul maxim de iteratii 30, iar functiile Matlab utilizate sunt: function G2=G2(x) G2=[-(1/60)*x(1)*2-(1/60)*x(3)*2+(160/60) (1/30)*x(1)24+(1/30)*%(3)2-(90/30) (1/60)*x(1)*2-(1/60)*x(2)%2-(110/60)];, jacobi('G2',[4 4 4 ]',0.0000001, 0.0000001,30) Rezolvarea exemplelor prezentate a fost realizaté cu functia Matlab jacob/(G,xioll, tol2, maxiterati) care rezolva sisteme de ecuatti neliniare prin metoda iteratiilor. ‘%eRezolvarea unui sistem de ecuatitneliniar °%6F(X)=0; unde X este un vector cu n componente ‘%Dupa aducerea sistemului la forma de piterare X=G(X); G functia vectoriala G(X)cu %en componente;xi-vectorul solutilor initiale S6tolt toleranta=x(kk)-x(k);tol2toleranta=G(kk) x(k) Semaxiterati-numarul maxim de iteratii function jacobi(G,xi,tolltol2,maxiterati) Initializarea contor de iteratiiiter=1 si vectonului xk=xiziter= necunsocutelor xk=xi while(iter<=maxiterati) Ciclu cu test de stop global iterR" DCR" [ AQ tet P(X 5% 5% 55%, Suis ¥ae¥so¥p%,) =O unde, = {A} = {3 .2..%,) Vectorul necunoscutelor F(X) = (A). £,.00.F,(X)),vectorul functillor Vectorul functillor (x) este format din functiie /, i=1..» care sunt derivabile si au derivate de ordinul intai continue pe D. Daca se presupune ca matricea functionalé Jacobian are determinantul diferit de zero in punctul «= (a,,01,,4,..2,) 7=1..n atuncl intr-o vecinatate V a solutie «, determinantul Jacobianului este nenul. menes) F(X) Cum determinantul matricei functionale este diferit de zero intr-o vecinatate V a solutiel «, rezult8 ca exist inversa matricei functionale Jacobian J(X)'. 78 Cap.5 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius Daci se dezvolt’ in serie Taylor functile ;i-1.n fm jurul punctului XK = fx{, 20,0 x0.) gi neglifand termeni de ordin superior rezult’: HX) HY LP AP2P)= HEP 2290) BOD 9) a0), FAD (0 _ yoy Sole? 222) = fa? x.) BLED 09 — 4), BCD (40 _ 4,4 FLO 0 _ yoy PD eh) = Lua 2) 4 SSC a eae a) — 8 frat? 2 32) = f(a? 29) Fea cy © - x) +H © _ 0) Sea? 22.) = fa, x ay LD ego 4) 4 ToD (09 _ yO 2 =x) 2a?) = Sy sD Sea D4 Sa — ah 7 Sub forma matriceala se obtine : f Ho ox, S(2.92)) (5.2.2) | aptn 2x” AEP PP) | | AEM 2.0) | ae xP —x? : + [fore x® Sra 2.20)) | Le xe fi x, x, O_O l FAP | ae ly xp aa Ox, FX) F(X) os i‘ (0) (0) y(0): 2) fa) | atin acy | [5.22 al et ag Moe, | |G P.22 29) 4 = + . re 2h) |i) B00 Gas} | J, x22) a (0) ox, 7 GO gO 6 Xn x AX) a0) Fa xD Xn) ex, ox, 79 Cap.5 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius Formula de recurenta in cazul metodei Newton-Raphson devine : XX) LX) REY) Prin dezvoltarea in serie Taylor a functiilor /, i =1..n care reprezinta hipersuprafete in spatiu n dimensional, ele sunt aproximate prin hiperplane care sunt tangente la aceste hipersuprafete in punctul_ x" = ¢x(*, x! x! ,.x®"}, Prin intersectia acestor hiperplane se determina o aproximare x = {x(°,x\°,x\.x}a punctului in care se intersecteazi aceste hipersuprafete Drept criteru de stop a procesului iterativ se utilizeaz’ pe lang’ conditia de stop global’ (numarul maxim de iterati impus), una sau ambele conditii de mai jos: «, daca |x |>1i=1.n Exemplui Sd se rezolve sistemul de ecuatii neliniare: Fi(%.%,) = 49 + 4x3 -16=0 (42) = a, 2a; Matricea Jacobian pentru sistemul de ecuatii este : HR A, ox, 2 VG. l= Prin aplicarea metodei Newton-Raphson se obtin urmatoarele valori pentru variabilele x, Six, [a fiecare iteratie. Iteratia | Valoarea lui xi Valoarea x2 Diferenta maxima dintre vectori solutie —s pentru doua iteratii succesive 1 | 19.70731707317074 | 20.12317073170732 20.29268292682927 2 9.76414145766900 | 10.18289007458780 9.94317561550174 3 27 5.21841610300787 _ 4.96447397157994 4 .46311244107170 | 2.77511626832261 2.44329083468525 5 3.13605674841387 | 1.67007393216690 1.10504233615571. 80 Cap.6 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius 6 3.12312590236819 | 1.30255008664273_| (0,36752384552418 Z 3.12310562566752_| _1.25069645093057 0,05185363571215 8 3.12310562561766 | _1.24962153000971 (0.00107492092086 Vectorul solutiilor initiale a fost xi=[40,40], numérul maxim de iteratji 60, iar functille Matlab utilizate sunt: function N1=N1(x) NA=[(x(1)*24 4%x(2)*2-16) ((1)-24«(2)2)]; function JN1=JN1(x) JNA=[2*x(1) 8°%x(2) 1 -4*x(2)]; end newton(’Nt","IN1',[40 40],0.000001, 0.000001,60) Exemplu 2 SA se rezolve sistemul de ecuatii neliniare: A(Q%%%) =x +x] +x) -0.5=0 2x} -0. Pal%s¥po% Ale Matricea Jacobian a sistemului este: 2x, 0 2x, (Q).42.4, = 2x, 2x, -6 Utilizand metoda Newton-Raphson rezulté urmatoarele valori pentru x, x, si x, la fiecare iteratie. Iteratia | Valoarea lui xi Valoarea lui x2 Valoarea lui x3 Diferenta maxima dintre vectori solutie pentru doua iterati | | — _ suceesive i 9,09545454545454 | 0.70000000000000 | 2.93181818181818 | 8.09545454545454 2 | 4.77861470257557 | 0.63571428571429 | 0.76667537443309_| 4.31683984287898 3 72.43810604524760 | 0.63246388443018 | 0.14439671880763 _| 2.34050865732796 81 Cap.5 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius J 4 1.23893155994827_| 0.63245553208883 | 0.08282199400716 | 1.19917448529933 5 0.65709593646382_| 0.63245553203368 | 0.08220706282695 _| 0.58183562348445 6 0,39949804091743 | 0.63245553203368 | 0.08220700148449 _| 0.25759789554639 7 0.31644797684509_| 0.63245553203368 | 0.08220700148449 _| 0.08305006407234 8 (0.30554995624280_| 0.63245553203368 | 0.08220700148449 _| 0.01089802060229 9 | (0.30535560692181 | 0.63245553203368 _ | 0.08220700148449 | 0.00019434932099 10 0.30535554507317_| 0.63245553203368 | 0.08220700148449 _ | 0.00000006184864 Vectorul solutiilor initiale a fost xi=[4 4 4] num&rul maxim de iteratji 30, iar functiile Matlab sunt: function N2=N2(x) N2=[(K(1)92+ x(2)*24x(3)°2-0.5) (x(1)°24x(3)92-0.1) (x(1)924x(2)92-6*%(3))]; function JN2=JN2(x) IN2=[2*x(1) 24x(2) 24x(3) 2%x(1)_0 2*x(3) 2x(1) 242) -6 J; newton('N2','JN2',[1 1 8],0.00000001, 0.00000001,60) Rezolvarea exemplelor prezentate a fost realizaté cu functia construit in Matlab newton(G,xi toll, tol2,maxiterati) care permite rezolvarea sistemelor de ecuatii neliniare prin metoda Newton-Raphson. 9%Rezolvarea unui sistem de ecuati neliniar °%F(X)=0; unde X este un vectorul necunoscutelor bRelatia de iterare. xkk=xk+([JN(xk)]\(N(xk)) éxik noul vector al necunoscutelor iar xk este. Savectorul necunoscutelor la pasul anterior 9%[N] matricea jacobian, iar (N) vector care contine % componentele functiel vectoriale F(X) éxi-vectorul initial al necunoscutelor Semaxiterati-numarul maxim de iteratii function newton(N,JN,xi,toll,tol2,maxiterati) xkexijiter=1; Initialzarea contor de iteratiiter=1 si vectorului while(iter<=maxiterati) necunsocutelor xk=i pas=-feval(IN xk) \feval(N,xk); CCiclu cu test de stop global iter1) end dif2=max(abs(feval(N,xk))); dif2=max(abs(feval(N,xk))) if (difL<=tol1 )& (dif2<=tol2) Daca (difi M(X)..M(X) >M(X) cea ce inseamn apropierea de punctul in care functia () are valoare minima. Fig.4.1 Formula de iterare in metoda pasilor descendenti are urmatoarea forma: x = x) yg (xe) unde, X = {x,,x,,,...15,} este vectorul variabilelor 84 vmcxy={ Cap.5 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius aM(x) M(x) ex, Dacé la evaluarea functiel W(X) in punctul x) = px decat valoarea functiel 47() in punctul_ x iterare devine: M(x) &, x” au) este gradientul functiel (x) (0...) este mai mare >} atunci formula de x) oswa(x*) Injumétatirea vectorului gradient se face pana c&nd valoarea functiei /(X) in punctul x devine mai mic’ decat valoarea functjei in punctul x*- Exemplu 1: Sa se determine solutille sistemului de ecuatii neliniare AQ %) F(X ,%, Functia care se minimizeaza este: Gradientul functiei 7, (x,,x,)este : M,(x,,x5) = (x7 +43 -3) + (x, 3x, +1)? emennad| 25 4x} —3)2x, +2(x, +3x) +1) } 2) | a(x? + a3 —3)24, + 25, 3x, HD Aplicand metoda pasilor descendenti se obtin urmatoarele valori pentru x, si x, la fiecare iteratie. Tteratia | Valoarea lui xi Valoarea x2 Diferenta maxima dintre vector’ solutie pentru doua iteratii succesive 1 1.75000000000000 (0.75000000000000 __-1.35937500000000 2 1.41406250000000 (0,82031250000000 -0.53116188943386 3 1.53570342063904 0.86990046501160 -0.09073668035517 4 1,50075876535276 0.81711726922270 | __-0.00987858148858 S 1,52461401521855 0.85199590490612 .00532892899633 85 Cap.5_Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius 6 1,50934658599879 (0.82950735173405 -0.00194346502721 7 1,51949388973733 (0.84432390470901 0092097805870 8 1,51291844500476 (0.83467986246382 -0.00036864795480 9 1.51725029294397 (0.84101163270915 -0.00016496289458 10 1.51442716859650 0.83687674758625 -0.00006865541698 it 1.51628009883727 | _0.83958680327855 -0.00002996759563 2. 1.51506955957724 0.83781471996454 -0.00001268014183 Vectorul solutilor initiale a fost xi=[1,1], numarul maxim de iteratii 20, iar functiile in Matlab sunt: function Mi=M1(x) M1=(x(1)92-4x(2)92-3)924(X(1)-3%(2)+1)°2; function DM1=DM1(x) DM1=(-1)*[2*(X(1)*2-+X(2)92-3)*2*x(1)+2"(x(1)-3*x(2)+1) 2A(K(1)9244(2)92-3)*24x(2)-6*((L)-3*X(2) HD) gradient(‘M1',DM1',{1 1 J,0.00001,20) Exemplu 2: Sa se determine solutille sistemului de ecuatii neliniare: A(X 0%) =H, +x, $y = Fa C0¥ 29%) = Fa(%io¥26%3) Functia care trebuie minimizata este: MCX, %25%5) = (+ 2)? + 4 By ay 4) FO a a DP Gradientul functiei 7, (x,,x,,x,)este : 2x, +x, + 5-2) +m +34; +, —4) + 20a? +x, +4, —1)24, VM (x .%3.%5)=4 20x, +x, +x, —2)+2(x, + 3x, +4, —4)3-+ A(x? +x, #5 1) 2x, +x, +5 —2)+ Waxy, +34, +45 4) + 20? +x, + 124, Aplicand metoda pasilor descendenti_se obtin urmatoarele valori pentru x,,.x,i x, la fiecare iteratie Vectorul solutilor initiale a fost xi=[1 1 1], numarul maxim de iteratii 30, iar functia M2(x) scrisa in Matlab este: [Tterat | Valoarea lui xi | Valoarea lui x2 Valoarea lui x3 Diferenta maxima dintre | ia vectori_solutie pentru } 86 [ Cap.5 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius ] doua iteratii succesive -0.87500000000000 | 0.06250000000000 |“ -0.87500000000000 | -88.10839843750000 0.41113281250000_| 2.53515625000000 | 0.41113281250000 | -19.93523518094662 -0.50454692402855 | 0.47092604637146 | -0.50454692402855 | -5.58018635963942 0.25974850523030_| 2.13030775700258 | 0.25974850523030 | -8.69001468347973 cn] follies -0.27252552069557 | 0.79614376440139 | -0.27252552069557 | -2.97342008601196 32 | 0,36339724751416 | 1.10668461535522 | _0.36339724751416 | _-0.00163014881706 33__| 0.34466941536840 | 1.06358163185241 | 0.34466941536840_| -0.00128143791658 34 | 0.36459238350443 | 1.10178822121435 | _0.36459238350443 | -0.00120949080939 35__| 0.34789208222625 | 1.06400513201283 | _0.34789208222625 | -0.00096084787211 36 | 0.36532425727683 | 1.09784876805001 | 0.36532425727683 | -0.00090716942147 function M2=M2(x) M2=(x(1)-+Xx(2)+X(3)-2)°2-+(x(1)+3*X(2)+x(3)-4) 92 +(x(1) 92 +x(2)+x(3)92-1)2; function DM2=DM2(x) DM2=(-1)*[2*(x( 1) +x(2)+x(3)-2)+2*(x(1)+3*x(2)+x(3)-4)+2*(x(1)92-4x(2)+x(3)92-1)*2(1) 2*(K(L)4x(2)+x(3)-2)+2*(x(1)+3%c(2)4(3)-4) #3424 (X(1)24x(2)4X(3)2-1) 2*(x(1)+x(2)+x(3)-2)+2*(x(1)+3*X(2) +x(3)-4)+2*(x(1)°24X(2)+x(3)92-1)*2*x(3)]; gradient(’M2",'0M2' [2 2 2 ],0.0008,40) In continuare se v-a prezenta un program in Matlab sub forma unei functii care permite calculul solutiilor unui sistem neliniar prin metoda iteratiilor. ‘hRezolvarea unui sistem de ecuatiineliniar F(X)=0 Seprin determinarea minimului functiei M(X); ‘Secate se obtine prin insumarea patratelor S%functillr F(X) care alactuiesc Sesistemul de ecuatii de ecuati netiniare F(X)=0 Xi-vectorul initial ala solutilor 24DM este vectorul gradient ;M este vectorul Sefunctilor F(X) ;toltoleranta=fkk-fk, diferenta Sedintre doua vaiori succesive ale functiel care este Seminimizata;maxit-numarul maxim de iteratt function gradient(M,OM,xitomaxiterat) Initializarea contor de iterati iter=1 si vectorului necunsocutelor xk=i Ciclu cu test fa inceput de stop global iter= 0) Ciclu interior cu test la inceput (dist >= 0) %Daca dis>0 deplasarea de-a lungul normale’ la suprafata de nivel este jumatate din emarimea gradientului grad=grad/2; Atat timp cat (dist >= 0) grad=grad/2 if(norm(grad)<0.0000001) ‘%Daca norma gradientul este mai mica Daca (norm(grad)<0.0000001 ) ciclul se opreste fdecat 0.000000! se termina procesul 87 [ Cap.5 Rezolvarea sistemelor de ecuatii neliniare-Conf.dr.ing. Botis Marius Spiterativ ;s-a atins minimul break; else xkk=xk+grad/2; Relata iterativa xkk=x(k)+ grad Terminarea ciclului interior if abs(dist)

You might also like