Sunteți pe pagina 1din 4

Departamentul A.I.A.

Matematici Asistate de Calculator

Anexa A6 Elemente despre rezolvarea sistemelor de ecuaii neliniare n Matlab. Elemente despre aproximarea numeric a funciilor n Matlab
1. Rezolvarea sistemelor de ecuaii neliniare Fie sistemul de ecuaii neliniare (vezi anexa B6):

f1(x1,x2,K,x n )= c1 f (x ,x ,K,x )= c 2 1 2 n 2 LLLLLLLL fn(x1,x2,K,x n )= cn


Pentru a rezolva acest sistem cu ajutorul mediului Matlab, el trebuie adus la forma canonic:

g1(x1,x2,K,x n )= 0 g (x ,x ,K,x )= 0 2 1 2 n L L L L L L L L g n(x1,x2,K,x n )= 0


unde gi=fici, i=1,2,...,n. Un sistem de ecuaii neliniare poate fi rezolvat n Matlab pe cale numeric sau pe cale simbolic. a. Rezolvarea numeric a sistemelor de ecuaii neliniare Pentru rezolvarea sitemelor de ecuaii neliniare pe cale numeric se parcurg etapele de separare i rezolvare aproximativ menionate n anexa B6. n ceea ce privete etapa localizrii, n cazul sistemelor de ecuaii neliniare cu dou necunoscute:

g1(x1,x2)= 0 g2(x1,x2)= 0
se poate folosi metoda grafic. n acest scop se reprezint grafic n plan mulimea punctelor care satisfac ecuaia g1(x1,x2)= 0 i mulimea punctelor care satisfac ecuaia g2(x1,x2)= 0 . Coordonatele punctelor de intersecie ale celor dou grafice reprezint soluiile sistemului de ecuaii. Citirea acestora de pe grafic se poate face cu funcia Matlab ginput prezentat n anexa A5. Deoarece citirea de pe grafic se face cu o anumit eroare, coordonatele citite de pe grafic vor constitui valorile n vecintatea crora sunt localizate soluiile i vor fi utilizate n a doua etap ca valori de pornire n determinarea soluiei.

A6-1

Departamentul A.I.A.

Matematici Asistate de Calculator

Cea de-a doua etap are ca scop calculul soluiei / soluiilor din domeniul de interes cu o precizie apriori fixat. Pentru calculul soluiilor este necesar definirea n prealabil ntr-un fiier-funcie a funciilor gi ca i componente ale unei funcii vectoriale. Pentru calculul fiecrei soluii a sistemului de ecuaii neliniare, n vecintatea unui punct rezultat prin separare, se folosete funcia Matlab fsolve din toolbox-ul de optimizare (Optimization Toolbox). Aceast funcie are mai multe sintaxe de apel, analog funciei Matlab fzero (vezi anexa A5): dac intereseaz doar determinarea soluiei, se folosete una din sintaxele de apel:

x = fsolve(nume_fisier,x0) x = fsolve(nume_fisier,x0,optiuni) dac n afar de determinarea soluiei intereseaz, din considerente de precizie, i evaluarea funciilor gi pentru soluia gsit, se apeleaz funcia cu una din sintaxele:

[x,fval]= fsolve(nume_fisier,x0) [x,fval]= fsolve(nume_fisier,x0,optiuni) dac intereseaz i modul n care s-a ajuns la oprirea executrii metodei numerice (rezolvare cu respectarea condiiilor impuse, oprire prin atingerea numrului maxim de iteraii, ), se folosete una din sintaxele de apel:

[x,fval,exitflag]= fsolve(nume_fisier,x0) [x,fval,exitflag]= fsolve(nume_fisier,x0,optiuni) dac intereseaz i anumite date suplimentare, precum numrul de iteraii efectuate, se apeleaz funcia cu una din sintaxele:

[x,fval,exitflag,output]= fsolve(nume_fisier,x0) [x,fval,exitflag,output]= fsolve(nume_fisier,x0,optiuni) unde: nume_fisier reprezint un ir de caractere care conine numele fiierului-funcie n care au fost definite funciile gi ca i componente ale unei funcii vectoriale; x0 reprezint vectorul valorilor aproximative ale soluiei cutate; optiuni reprezint o structur care conine opiuni de optimizare a calculrii soluiei; este un argument opional; opiunile de optimizare pot fi schimbate folosind funcia Matlab optimset (vezi anexa A5); x reprezint soluia calculat cu o precizie apriori fixat, sub forma unui vector; fval reprezint valorile funciilor gi pentru soluia calculat x; exitflag reprezint o valoare de control, care preciziaz motivul opririi algoritmului; de exemplu, valoarea 1 are semnificaia c algoritmul a ajuns la o soluie n condiiile impuse; output reprezint o structur care conine mai multe informaii, printre care i numrul de iteraii (iterations), numrul de evaluri (funcCount) efectuate i algoritmii utilizai pentru determinarea soluiei (algorithm).

A6-2

Departamentul A.I.A.

Matematici Asistate de Calculator

b. Rezolvarea simbolic a sistemelor de ecuaii neliniare Pentru rezolvarea pe cale simbolic a sistemelor de ecuaii neliniare, se utilizeaz funcia Matlab solve din Symbolic Math Toolbox, avnd sintaxele: s=solve(eq_1,eq_2,...,eq_n) s=solve(eq_1,eq_2,...,eq_n,var_1,var_2,...,var_n) unde: eq_i reprezint expresia membrului stng al ecuaiei i a sistemului, scris ntre apostrofuri; var_1,var_2,...,var_n apostrofuri; reprezint necunoscutele sistemului, scrise ntre

s este o structur, avnd ca membri vectori de valori; fiecare vector corespunde unei necunoscute, avnd aceeai denumire cu aceasta, i conine valorile obinute pentru acea necunoscut n cazul fiecrei soluii gsite.

Avantajul rezolvrii unui sistem de ecuaii neliniare pe cale simbolic const n faptul c nu trebuie indicat nici un set de valori de pornire n calculul soluiei, iar valoarea soluiei este determinat cu exactitate. Dezavantajul const n faptul c puine sisteme pot fi rezolvate pe aceast cale.

2. Aproximarea numeric a funciilor Fie f o funcie precizat printr-un set de n puncte (xi,yi=f(xi)), i=1,2,...,n. a. Interpolare liniar. Interpolare cu polinom Hermite. Interpolare cu funcii spline Pentru aproximarea numeric a funciei f de o variabil real prin interpolare liniar, interpolare cu polinom Hermite sau interpolare cu funcii spline, Matlab pune la dispoziia utilizatorului funcia interp1 cu urmtoarea sintax de apel: vy=interp1(x,y,vx,'metoda') unde: x este vectorul punctelor {xi}; y este vectorul punctelor {yi}; vx este vectorul punctelor n care se dorete aproximarea funciei f; vy este vectorul obinut prin aproximarea funciei f n punctele vx; metoda reprezint un ir de caractere prin care se precizeaz metoda de interpolare dorit: o linear pentru interpolare liniar (este metoda implicit); o cubic sau pchip pentru interpolare cu polinom Hermite cubic pe poriuni; o spline pentru interpolare spline cubic.

A6-3

Departamentul A.I.A.

Matematici Asistate de Calculator

Interpolarea cu funcii spline se mai poate realiza i cu funcia Matlab spline. Sintaxa de apel a funciei spline este: vy=spline(x,y,vx) n care parametri x,y,vx i vy au aceleai semnificaii ca i n cazul funciei interp1. Observaie: De fapt, methoda 'spline' a funciei interp1 apeleaz fr implicarea utilizatorului funcia Matlab spline pentru realizarea interpolrii. b. Aproximare cu metoda celor mai mici ptrate Aproximarea funciei f cu metoda celor mai mici ptrate se realizeaz n Matlab prin parcurgerea urmtoarelor dou etape: 1. Determinarea polinomului de interpolare folosind funcia Matlab polyfit, care are sintaxa: P=polyfit(x,y,m) unde: x este vectorul punctelor {xi}; y este vectorul punctelor {yi}; m este gradul polinomului de aproximare, 0 m n-1; P este vectorul coeficienilor polinomului de interpolare, coeficienii fiind n ordinea descresctoare a puterilor nedeterminatei polinomului.

2. Calculul valorilor polinomului de aproximare n punctele dorite, utiliznd funcia Matlab polyval, care are sintaxa: vy=polyval(P,vx) unde: vx este vectorul punctelor n care se dorete aproximarea funciei f; P este vectorul coeficienilor polinomului de interpolare, obinut n prima etap; vy este vectorul obinut prin aproximarea funciei f n punctele vx cu valorile polinomului P.

A6-4

S-ar putea să vă placă și