Laborator 6 - Calcul Numeric PDF
Laborator 6 - Calcul Numeric PDF
Laborator 6 - Calcul Numeric PDF
Manipularea matricelor
Analiza matriceală
• det - Calculează determinantul unei matrice;
• inv - Calculează inversa unei matrice;
• rank - Calculează rangul unei matrice;
• trace - Calculează urma unei matrice;
• cond, condest, rcond - Estimează numărul de condiționare al matricei;
• norm - Calculează norma unui vector sau a unei matrice; Se apelează cu una dintre sintaxele:
• norm(X) - returnează cea mai mare valoare singulară a lui X;
• norm(X,1) - returnează norma 1 a lui X (cea mai mare sumă a elementelor de pe
coloană);
• norm(X,inf ) - returnează norma infinită a lul X (cea mai mare sumă a elementelor de pe
linie;
• norm(X,-inf ) - returnează valoarea minimă în modul.
Valori și vectori proprii
În determinarea soluțiilor nebanale ale ecuației:
Ax = λx
unde: A - este o matrice pătratică de ordinul n;
x - este vector coloană de ordinul n;
λ - este un scalar.
valorile x, respectiv λ , care satisfac ecuația de mai sus se numesc vectori proprii, respectiv valori
proprii.
Funcția eig calculează valorile și vectorii proprii ai unei matrice pătrate. Se apelează cu una dintre
sintaxele:
• V=eig(A)-returnează un vector care conține valorile proprii ale matricei A;
• [V,D]=eig(A)-returnează o matrice diagonală D care conține valorile proprii ale matricei A și o
matrice V ale cărei coloane sunt vectorii proprii corespunzători valorilor proprii.
Factorizarea Cholesky
Factorizarea Cholesky se calculează cu funcția MATLAB chol și se apelează cu una dintre
sintaxele:
• R=chol(A)
• [R,p]=chol(X)
unde: A - este o matrice pozitiv definită; R - este o matrice superior triunghiulară, astfel încât R’*R=A;
p - este un scalar de test, egal cu zero dacă matricea a este pozitiv definită și un întreg pozitiv în caz
contrar.
Factorizare LU (lower-upper)
Prin factorizarea LU, o matrice pătratică este descompusă sub forma produsului a două matrice
triunghiulare: una inferior triunghiulară, cu elemente 1 pe diagonala principală (matricea L) și cealaltă
superior triunghiulară (matricea U). În Matlab, factorizarea LU este utilizată pentru obținerea inversei
unei matrice cu funcția ’inv’ și pentru calculul determinantului cu funcția ’det’.
Factorizarea LU a unei matrice se face cu funcția lu și se apelează cu una dintre sintaxele:
• [L,U]=lu(X) - returnează o matrice superior triunghiulară U şi o matrice inferior triunghiulară
permutată L, astfel încât X=L*U;
• [L,U,P]=lu(X) - returnează o matrice superior triunghiulară în U,inferior triunghiulară în L şi
permutare matriceală în P, astfel încât L*U=P*X.
Factorizarea QR
Factorizarea QR este o descompunere a unei matrice ca produs al unei matrice ortonormale, Q,
cu o matrice superior triunghiulară, R.
Descompunerea ortogonal-triunghiulară (factorizarea QR) se realizează cu funcția qr și se
apelează cu una dintre sintaxele:
• [Q,R]=qr(X) - returnează matricea triunghiular superioară R de aceeași dimensiune cu X și
matricea Q, astfel încât X=Q*R;
• [Q,R,E]=qr(X) - returnează matricea permutată E a matricei superior triunghiulare R, cu
elementele diagonalei descrescătoare și matricea Q, astfel încât X*E=Q*R. triu(qr(X))=R.
Exemplu: Se consideră matricea pătratică de ordinul 3:
( )
13 −10 12
A= −11 14 10
0 12 −13
Să se determine:
a) valorile proprii ale matricei A;
b) pentru fiecare valoare proprie a lui A câte un vector propriu unitar;
c) valorile singulare ale matricei A;
d) numărul de condiționare în raport cu inversarea al matricei A.
Soluție: Se execută următoarea secvență de program Matlab:
clear, clc
A=[13 -10 12; -11 14 10; 0 12 -13];
Observații:
1. Funcția Matlab num2str convertește un număr în șirul de caractere format din cifrele și punctul
zecimal al numărului respectiv.
2. Apelul disp(blanks(n)’) unde n este un număr natural nenul, determină afișarea a n linii goale.
Soluțiile ecuației: x1=3, x2=-1 şi x3=1. Se observă că această ecuație are doar soluții reale.
Soluțiile ecuației algebrice: sol = 2. Adică, ecuația are o singură soluție reală, și anume: x = 2.
Exemplu 3: Să se determine soluțiile real strict pozitive (Re xi>0) ale ecuației algebrice:
−45x2+x7+11x3+x6+4x4−50x−2x5=0
Soluție: Se execută următoarea secvență de program Matlab (de exemplu, fișier M):
% vectorul coeficienților ecuației
c=[1 1 -2 4 11 -45 -50 0];
% rezolvarea ecuatiei in C
rad=roots(c);
Exerciții rezolvate:
A=[2;4;7;3;5;1;0];
disp(A);
disp('Afisare de la 3-5:');
disp(A(3:5));
disp('Afisare 2,4,6:');
disp(A(2));
disp(A(4));
disp(A(6));
2. Fie matricea
( )
1 2 3 4 5 6
2 3 4 5 6 1
A= 3 4 5 6 1 2
4 5 6 1 2 3
5 6 1 2 3 4
A=[1 2 3 4 5 6; 2 3 4 5 6 1; 3 4 5 6 1 2; 4 5 6 1 2 3; 5 6 1 2 3 4];
disp('Linia a 2-a');
disp(A(2,1:6));
disp('Coloana a 3-a');
disp(A(1:5,3));
disp('Submatricea formata din liniile 1-2 si coloanele 4-6');
disp(A(1:2,4:6));
disp('Submatricea formata din liniile 1-2 si coloanele 2,4,6');
disp(A(1:2,[2,4,6]));
3. Fie matricea:
1 4 7 10
𝐴 = (2 5 8 11)
3 6 9 12
1 2 3
1 4
𝐴=( )și 𝐵 = (4 5 6)
3 4
7 8 9
Calculați inversa matricei A și urma matricei B. Aplicați funcțiile norm, norm(X,1), norm(X, inf ),
norm(X, -inf ) matricei B. Calculați rangul matricei B.
A=[1 4;3 4]
B=[1 2 3;4 5 6;7 8 9]
C=det(A);
disp('Determinentaul matricii A este: ');
disp(C);
D=det(B);
disp('Determinentaul matricii B este: ');
disp(D);
%inversa matricii A
disp('inversa matricii A=');
E=inv(A);
disp(E);
% Transpusa matricii B
disp('inversa matricii B=');
F=trace(B);
disp(F);
% norma matricii B
disp(K);
5. Se consideră matricile
1 2 3
𝐴 = (4 5 6)
1 2 3
7 8 0
𝐵 = (4 5 6)
7 8 0
A=[1 2 3;4 5 6; 7 8 0]
B=[1 2 3; 4 5 6;7 8 0]
% Factorizare LU (lower-upper)
disp('Factorizarea LU: ');
disp('Metoda I');
disp('Pentru A:');
[L,U]=lu(A);
disp(U);
disp('Pentru B:');
[L,U]=lu(B);
disp(U);
disp('Metoda a II-a');
disp('Pentru A:');
[L,U,P]=lu(A);
disp(U);
disp('Pentru B:');
[L,U,P]=lu(B);
disp(U);
% Factorizare QR
disp('Factorizarea QR: ');
disp('Metoda I');
disp('Pentru A:');
[Q,R]=qr(A);
disp(R);
disp('Pentru B:');
[Q,R]=qr(B);
disp(R);
disp('Metoda a II-a');
disp('Pentru A:');
[Q,R,E]=qr(A);
disp(R);
disp('Pentru B:');
[Q,R,E]=qr(B);
disp(R);
% Pseudo-inversa matricii A
M=pinv(A);
disp('Pesudo-inversa amtricii A: ');
disp(M);
% Pseudo-inversa matricii B
N=pinv(B);
disp('Pesudo-inversa amtricii B: ');
disp(N);
% Solutiile ecuatiei
A=[1 2 4 2 0]; % vectorul coeficientilor
disp('Solutiile ecuatiei algebrice 2: ');
rad=roots(A);
sol=[];
for i=1:length(rad)
if imag(rad(i))==0 & rad(i)<=1
sol=[sol rad(i)];
end
end
disp(sol);
−2 1 0
𝐵 = ( 1 −2 1 )
0 1 −2
1 5
2. Să se descompună în valori singulare matricea A= 4 3 , folosind ambele apeluri ale functiei svd.
9 1 −1 0
1 9 0 −1
𝐴=( )
−1 0 9 1
0 −1 1 9
4. Să se rezolve ecuația algebrică:
x3−2x2−3x+10=0, x ∈C