Sunteți pe pagina 1din 12

Facultatea de Energetica

Laboratorul nr.2
Sisteme de Programare pentru Modelare si Simulare
Adrian Stan

10

2 REZOLVAREA SISTEMELOR DE ECUAII LINIARE

1. Descrierea matriceal a sistemelor de ecuaii Fie urmtorul sistem de trei ecuaii cu trei necunoscute: { Acesta poate fi scris matriceal sub una din formele : sau n prima form, adic :

A este matricea coeficienilor necunoscutelor, cu dimensiunea 3x3. Coeficienii: aceleiai necunoscute sunt pe aceeai coloan; X este matricea necunoscutelor, cu dimensiunea 3x1; B este matricea termenilor liberi cu dimensiunea 3x1;

n cazul sistemului dat ca exemplu: [ ] [ ] [ ]

n a doua form de scriere matriceal, adic YC=D: C este matricea coeficienilor necunoscutelor, cu dimensiunea 3x3. Coeficienii aceleiai necunoscute sunt pe aceeai linie; matricea C este transpus matricei A; Y este matricea necunoscutelor, cu dimensinea 1x3; matricea Y este transpusa matricei X. D este matricea termenilor liberi, cu dimensiunea 1x3; matricea D este transpusa matricei B.

Pentru sistemul de mai sus, rezult: [ [ [ ] ] ]

Transpunerea matricelor Operaia de transpunere a unei matrice este simbolizat cu operatorul apostrof. Cu instruciunea: Z=Y' liniile matricei Y devin coloanele matricei transpuse Z. Acest lucru face ca pentru o matrice Y cu dimensiunea m x n s se obin o matrice Z cu dimensiunea n x m. Dac elementele matricei Y sunt numere reale, operaia de transpunere face ca: Dac elementele matricei Y sunt numere complexe, operaia de transpunere returneaz conjugata transpusei. Exemplu: S se determine transpusa matricei Cu secvena MATLAB: >> Z=[1 1+i;i 3-2*i]; >> Z1=Z' se obin rezultatele: Z1 = 1.0000 0 - 1.0000i [ ]

1.0000 - 1.0000i 3.0000 + 2.0000i

3 2. Rezolvarea sistemelor prin mprirea matricelor Una dintre metodele de rezolvare a sistemelor de N ecuaii cu N necunoscu const n mprirea matricelor. Astfel, rezolvarea ecuaiei matriceale AX=B presupune mprirea la stnga a matricelor: Pentru exemplul din subcapitolul 1 se utilizeaz secvena MATLAB: [ [ ] ]

se obine rezultatul: [ care este echivalent cu : Dac sistemul de ecuaii este descris cu ecuaia matriceal mprirea la dreapta: Pentru exemplul dat, folosind secvena MATLAB: [ [ ] ] , rezolvarea acestuia presupune ]

se obine rezultatul: [ ] 3. Rezolvarea sistemelor prin folosirea matricei inverse Dac sistemul a fost descris cu ecuaia matriceal: prin multiplicare la stnga cu (matricea invers a lui A), se obine :

deoarece,

, unde I este matricea unitate, rezult :

n MATLAB, ultima relaie se exprim sub forma: ( ) inv fiind funcia MATLAB de calcul a matricei inverse. Pentru exemplul din subcapitolul 1, soluia se obine cu secvena: [ [ ( ) se obine rezultatul: X= -2.0000 5.0000 -6.0000 ] ]

4 Dac sistemul este descris cu ecuaia matriceal: prin multiplicare la dreapta cu rezultnd: n MATLAB, ultima relaie se exprim sub forma : ( ) Cu secvena MATLAB: [ [ ( ) se obine rezultatul: [ ] ] ] (matricea invers a lui C), se obine :

CALCULE NUMERICE CU POLINOAME

Funciile MATLAB pentru calcule cu polinoame sunt: conv deconv poly polyval polyder polyfit residue roots Calculeaz produsul a dou polinoame; Calculeaz catul i restul mpririi a dou polinoame; Calculeaz coeficienii unui polinom cu rdcinile date; Evalueaz un polinom la valorile precizate ale variabilei; Calculeaz derivata polinoamelor; Aproximeaz un set de date cu un polinom de grad n; Descompune n fracii simple raportul a dou polinoame; Calculeaz rdcinile unui polinom.

Polinomul este o funcie cu o singur variabil, care poate fi exprimat sub urmtoarea form general: ( ) unde x este variabila, iar sunt coeficienii polinomului. Gradul polinomului este egal cu cea mai mare valoare a exponentului. n sintaxa MATLAB polinoamele sunt reprezentate cu un vector linie care conine coeficienii n ordinea descresctoare a puterilor variabilei. Coeficienii polinomului au indicii de la 1 la N+1. Spre exemplu, reprezentarea n MATLAB a polinomului: ( ) este dat de vectorul: [ ] 1. Evaluarea polinoamelor n MATLAB exist mai multe metode pentru evaluarea polinoamelor. Vor fi exemplificate, cu polinomul: ( )

5 Cea mai simpl metod este evaluarea cu scalari, adic pentru o singur valoare a variabilei. Se efectueaz operaiile cu scalari, ca n exemplul: x=1; f=3*x^4-x^3+x-1 obinndu-se rezultatul: f= 2 A doua metod const n evaluarea polinomului n mai multe puncte. n acest caz se efectueaz operaii cu tablouri. Programul se execut mai rapid dect ansamblul calculelor pentru fiecare valoare scalar n parte. Sintaxa evalurii presupune n acest caz plasarea unui punct naintea operatorilor nmulire, mprire sau ridicare la putere. Dimensiunea matricei n care se returneaz valorile polinomului este identic cu cea a matricei care conine punctele n care se face evaluarea. Evaluarea polinomului f(x) n punctele -2, 0 1, 2.5 3, se face cu secvena MATLAB: [ obinndu-se rezultatul: [ ] A treia metod de evaluare a polinoamelor const n utilizarea funciei polyval; se apeleaz cu sintaxa: ( ) Funcia polyval evalueaz polinomul definit de vectorul p, al coeficienilor polinomului, n punctul s. Daca s este vector sau matrice, polinomul este evaluat pentru fiecare dintre elementele acestuia. Pentru evaluarea polinomului luat ca exemplu, n punctele -2, 0 1, 2.5 31 secvena MATLAB este urmtoarea: [ [ ( [ ) ] ] ] ]

iar rezultatul obinut este: Pentru evaluarea unui polinom pe un interval, se genereaz n primul rnd un vector al punctelor de evaluare, cu sau fr pas constant, i apoi se procedeaz ca mai sus. Evaluarea polinomului ( ), definit anterior, n 300 puncte pe intervalul [0, 5], se poate face cu secvena MATLAB: [ ( ) ]

2. Calculul rdcinilor n acest subcapitol sunt prezentate funciile MATLAB pentru calculul rdcinilor unui poiinom sau pentru calculul coeficienilor unui poiinom atunci cnd se cunosc rdcinile acestuia. Dac funcia f(x) este un poiinom de gradul N, atunci f(x)=O are N rdcini, care pot fi reale sau complexe. n cazul n care coeficienii polinomului sunt numere reale, rdcinile complexe sunt n perechi complex conjugate. Funcia MATLAB roots determin rdcinile polinoamelor; se apeleaz cu sintaxa: r=roots(c) Funcia MATLAB poly determin coeficienii unui poiinom ale crui rdcini sunt cunoscute; se apeleaz cu sintaxa:

6 c=poly(r) n ambele cazuri: c - este un vector linie, puterilor variabilei; care conine coeficienii polinomului, n ordine descresctoare a

r - este un vector coloan care conine rdcinile polinomului. Funciile roots i poly sunt funcii reciproce, realiznd trecerea de la coeficieni la rdcini sau de la rdcini la coeficieni. Exemplu. Determinai rdcinile polinomului: secvena MATLAB: [ ( ) se obine rezultatul: r= -2.0000 2.0000 + 1.0000i 2.0000 - 1.0000i Cu secvena MATLAB: c= [ 1, -2, -3, 10]; %coeficienii r=[ 2+i 2-i -2]; %rdcinile ] i efectuai verificarea rezultatului. Cu

v=polyval(c,r) se obine rezultatul v= 0 0 0

Exemplu S se determine coeficienii polinomului care are rdcinile r=[-1,1,3]. Cu secvena MATLAB: c=poly([-1, 1, 3]') se retumeaz vectorul: c=[1 ( ) -3 -1 3]

care reprezint polinomul:

7 EXERCIII

1. Determinai inversa matricei C= 3.0000 -2.0000 5.3000 -2.1000 1.0000 1.0000 4.0000 -6.0000 4.5000 6.0000 3.0000 6.0000 -7.3000 -9.0000 3.4000 -2.0000 -3.0000 1.0000 -4.0000 6.0000 1.0000 -4.0000 -6.5000 1.0000 i determinantul acesteia. Soluie Sintaxa MATLAB:
%Inversa matricei C Inversa=inv(C); disp('Inversa=');disp(Inversa) %Determinantul matricei coeficientilor sistemului Determinant=det(C); disp('Determinant=');disp(Determinant)

Rezultatul: Inversa= 0.1987 0.0490 0.0297 -0.0989 0.0683 -0.0402 0.0335 0.0346 -0.0464 -0.1097 0.0568 -0.0022 -0.0260 0.0075 -0.0752 0.0097 0.0710 -0.0604 -0.0384 0.0043 0.0432 0.0808 -0.0087 0.0837 -0.0167 Determinant= 3.5907e+004

2. Dac C reprezint matricea coeficienilor necunoscutelor unui sistem de 5 ecuaii cu 5 necunoscute, iar vectorul termenilor liberi corespunztori acestui sistem este V 28,3 36,2 24,5 16,2 4,3 s se determine rdcinile sistemului. Solutie Sintaxa MATLAB:
%Radacinile sistemului de 5 ecuatii %Vectorul termenilor liberi V V=[28.3 -36.2 24.5 16.2 4.3]'; disp('V=');disp(V) Radacini=Inversa*V;

8
disp('Radacini=');disp(Radacini)

Rezultatul: V= 28.3000 -36.2000 24.5000 16.2000 4.3000

Radacini= 3.2683 -2.7268 0.8461 -4.3758 -0.6322 3. Considernd c vectorul VV= 16.0000 22.2500 28.5000 34.7500 41.0000 reprezint coeficienii unui polinom de gradul 4 dat, s se determine rdcinile acestui polinom. Solutie Sintaxa MATLAB:
cc=compan(VV); disp('compan(VV)=');disp(cc) r=eig(cc) rr=eig(compan(VV)); disp('radacinile polinomului=');disp(rr)

Rezultatul: compan(VV)= -1.3906 -1.7813 -2.1719 -2.5625 1.0000 0 0 0 0 0 0

0 1.0000 0 r= 0.3423 + 1.2100i 0.3423 - 1.2100i -1.0376 + 0.7376i -1.0376 - 0.7376i

0 1.0000

9 radacinile polinomului= 0.3423 + 1.2100i 0.3423 - 1.2100i -1.0376 + 0.7376i -1.0376 - 0.7376i eig - calculeaz valorile i vectorii proprii ai unei matrice ptrate compan - calculeaz companionul matriceal

5. Moduri de evaluare a unei expresii Sintaxa MATLAB:


disp('Moduri de evaluare a unei expresii'); xx=3.5; yyy='xx.^3-5.*xx.^2+10.*xx-6';% polinomul anterior z=eval(yyy); zz=['z=',num2str(z)]; disp(zz); zzz=polinomul1(xx);%functia Matlab care contine polinomul %anterior zzzz=['zzz=',num2str(zzz)]; disp(zzzz); v=feval('polinomul1',3);%evaluare in x=3 vv=['v=',num2str(v)]; disp(vv);

Rezultatul: Moduri de evaluare a unei expresii z=10.625 zzz=10.625 v=6 Radacina reala a unei ecuatii u=1 Radacinile polinomului= 2.0000 + 1.4142i 2.0000 - 1.4142i 1.0000

10 6. Rdcinile unui polinom Sintaxa MATLAB:


%RADACINA REALA A UNEI ECUATII, CU FUNCTIA fzero %Ecuatia xx.^3-5.*xx.^2+10.*xx-6=0 (polinomul anterior) disp('Radacina reala a unei ecuatii'); u=fzero('polinomul1',2);%cea mai apropiata radacina de 2 uu=['u=',num2str(u)]; disp(uu);

%RADACINA UNUI POLINOM, CU FUNCTIA roots c=[1,-5,10,-6]; %coeficientii polinomului dat anterior radacini_polinom=roots(c); disp('Radacinile polinomului='); disp(radacini_polinom);

%RADACINILE UNUI POLINOM,CU COMPANIONUL MATRICEAL c=[1,-5,10,-6]; %coeficientii polinomului dat anterior bb=compan(c); disp('Companionul polinomului='); disp(bb); r=eig(bb); rr=eig(compan(c)); disp('Radacinile polinomului='); disp(r);

Rezultatul: Radacina reala a unei ecuatii u=1 Radacinile polinomului= 2.0000 + 1.4142i 2.0000 - 1.4142i 1.0000

Companionul polinomului= 5 -10 1 0 0 1 6 0 0

11

Radacinile polinomului= 2.0000 + 1.4142i 2.0000 - 1.4142i 1.0000

7. Sisteme de ecuaii liniare Sintaxa MATLAB:


%SISTEME DE ECUATII LINIARE A=[-12 1 -8;1 -6 4;-2 -1 10]; %matricea coeficientilor B=[-80 13 90]'; %matricea(vectorul) termenilor liberi determinant=det(A); AA=inv(A); X=AA*B; d=['Determinantul=',num2str(determinant)]; disp(d); disp('Inversa lui A='); disp(AA); disp('Solutia sistemului prin folosirea inversei lui A='); disp(X);

XX=A\B; disp('Solutia sistemului prin impartirea la stanga='); disp(XX);

Rezultatul: Determinantul=758 Inversa lui A= -0.0739 -0.0026 -0.0580 -0.0237 -0.1794 0.0528 -0.0172 -0.0185 0.0937

Solutia sistemului prin folosirea inversei lui A= 0.6517 4.3166 9.5620

12 Solutia sistemului prin impartirea la stanga= 0.6517 4.3166 9.5620

EXERCIII DE FCUT ACAS

S se rezolve urmtoarele exerciii, folosind toate metodele exemplificate n acest laborator: {

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