MCIMLucrarea 13 |
Descompunerea si factorizare matricelor |
Functiile MATLAB folosite pentru descompunerea si factorizarea matricelor sunt:
chol calculeaza factorizarea Cholesky;
lu calculeaza descompunerea LU (lower-upper) a matricei;
qr efectueaza descompunerea ortogonal-triunghiulara a matricei;
qz calculeaza descompunerea QZ a matricei;
pinv calculeaza pseudoinversarea matricei;
rref reduce matricele la forma triunghiulara.
1.Valori si vectori proprii
Īn determinarea solutiilor nebanale ale ecuatiei:
unde: A - este o matrice patratica de ordinul n;
x - este vector coloana de ordinul n;
- este un scalar.
valorile x, respectiv , care satisfac ecuatia de mai sus se numesc vectori proprii, respectiv valori proprii.
Functia eig calculeaza valorile si vectorii proprii ai unei matrice patrate; se apeleaza cu una dintre sintaxele:
V=eig(A) V=eig(A,B)
[V,D]=eig(A) [V,D]=eig(A,B) [V,D]=eig(A,'nobalance')
Exemplul 1.1. Valorile si vectorii proprii ai matricei A=.
Cu secventa MATLAB:
A=[-2 1 0;1 -2 1;0 1 -2];
[V,D]=eig(A)
se obtin rezultatele:
V= D=
2.Calculul valorilor singulare
Functia svd returneaza valorile singulare ale unei matrice. Calculul acestor valori este un mijloc sigur de determinarea a rangului unei matrice de forma generala. Functia svd se apeleaza cu una dintre sintaxele:
d=svd(X) - returneaza un vector care contine valorile singulare;
[U,S,V]=svd(X) - returneaza o matrice diagonala S cu aceleasi dimensiuni ca X, avānd elementele diagonale nenegative (care sunt si valorile singulare ) īn ordine descrescatoare si matricele U si V care satisfac relatia: X=U*S*V'
[U,S,V]=svd(X,0) - efectueaza un calcul mai rapid al valorilor singulare.
Exemplul 2.1. Sa se descompuna īn valori singulare matricea A=.
Cu secventa MATLAB:
A=[1 5;4 3];
d=svd(A)
[U,S,V]=svd(A)
se obtin rezultatele:
d= U=
954/143 3177/4435 464/665
3435/1348 464/665 -3177/4435
S= V=
954/143 0 521/991 -3725/4379
0 3435/1348 3725/4379 521/991
3.Factorizarea Cholesky
Factorizarea Cholesky se calculeaza cu functia MATLAB chol;se apeleaza cu una dintre sintaxele:
R=chol(A) [R,p]=chol(X)
unde:
A - este o matrice pozitiv definita;
R - este o matrice superior triunghiulara, astfel īncāt R'*R=A;
p - este un scalar de test,egal cu zero daca matricea a este pozitiv definita si un īntreg pozitiv īn caz contrar.
Exemplul 3.1. Calculati factorul Cholesky al matricei:
A= .
Cu secventa MATLAB:
A=[9 1 -1 0;1 9 0 -1;-1 0 9 1;0 -1 1 9];
[R,p]=chol(A)
se obtine rezultatul:
R=
p=0 (matricea pozitiv definita)
4.Factorizare LU (lower-upper)
Factorizarea LU a unei matrice se face cu functia lu; se apeleaza cu una dintre sintaxele:
[L,U]=lu(X) -returneaza o matrice superior triunghiulara U si o matrice inferior triunghiulara permutata L, astfel īncāt X=L*U;
[L,U,P]=lu(X) -returneaza o matrice superior triunghiulara īn U,inferior triunghiulara īn L si permutare matriceala īn P,astfel īncāt L*U=P*X.
Exemplul 4.1. Sa se factorizeze LU matricea A=.
Cu secventa MATLAB:
A=[1 2 3;4 5 6;7 8 0];
[L,U]=lu(A)
se obtin rezultatele:
L= U=
L este o permutare a matricei inferior triunghiulare, iar U este o matrice superior triunghiulara. Secventa MATLAB:
[L,U,P]=lu(A)
returneaza urmatoarele rezultate:
L= U= P=
5.Factorizarea QR
Factorizarea QR este o descompunere a unei matrice ca produs al unei matrice ortonormale, Q, cu o matrice superior triunghiulara, R.
Descompunerea ortogonal-triunghiulara (factorizarea QR) se realizeaza cu functia qr; se apeleaza cu una dintre sintaxele:
[Q,R]=qr(X) - returneaza matricea triunghiular superioara R de aceeasi dimensiune cu X si matricea Q,astfel īncāt X=Q*R;
[Q,R,E]=qr(X) - returneaza matricea permutata E a matricei superior triunghiulare R, cu elementele diagonalei descrescatoare si matricea Q, astfel īncāt X*E=Q*R. triu(qr(X))=R.
Exemplul 5.1. Sa se determine descompunerea QR a matricei A= .
Cu secventa MATLAB:
A=[1 2 3;4 5 6;7 8 0];
[Q,R]=qr(A) se obtin rezultatele:
Q= R=
|