Sunteți pe pagina 1din 4

© Carmen-Sanda Georgescu, Tudor Petrovici, Radu Popa

Metode numerice. Fisa nr. 14:


CALCULUL NUMERIC AL VALORILOR SI VECTORILOR PROPRII

9 . VALORI SI VECTORI PROPRII


Fie A∈Cn x n. Un numar λ∈C se numeste valoare proprie a matricii A daca exista un
vector nenul x∈Cn, x≠0, astfel incat
Ax= λx (14.1)
Vectorul x se numeste vector propriu al lui A asociat valorii proprii λ. Orice matrice
patratica A∈Rn x n are exact n valori proprii λk, k=1,2, . . . ,n si λk∈C. Folosind relatia
(14.1) rezulta ca valorile proprii ale matricii A sunt radacinile polinomului
caracteristic al matricii A si anume det(λIn-A)=0 (det(λIn-A) reprezinta determinantul
matricii (λIn-A) , In este matricea unitate iar det(λIn-A)= PA(λ) este polinomul
caracteristic al matricii A).
PA(λ)=a1λn+ a2λn-1+ a3λn-2+ . . . anλ+ an+1 (14.2)
Daca λk ,k=1,1, . . . ,n, este o valoare proprie atunci orice solutie nenula xk a ecuatiei
(A- λkIn)xk=0 (14.3)
este vector propriu.
Se defineste de asemenea spectrul radial ρ(A) al matricii A ca ρ(A)=max(|λk|),
k=1,2, . . . ,n

9.1. LOCALIZAREA VALORILOR PROPRII


Localizarea valorilor proprii se poate face cu ajutorul algoritmului care rezulta din
teorema lui Gersgorin si anume: daca A∈Cn x n atunci fiecare valoare proprie a sa se
n n
gaseste in cel putin un disc cu centrul in akk si raza rk= ∑ | a kj | sau rj= ∑ | akj | (14.4)
j =1 k =1
j ≠k k≠ j

unde k,j=1,2, . . . ,n
Exemplul 1. Fie matricea A=[0 1 1;1 0 1;1 1 0]. Sa se stabileasca domeniul in care
sunt localizate valorile proprii ale matricii.
Rezolvare: Folosind formulele (14.4) rezulta r1=2, r2=3, r3=2 . Rezulta ca valorile
proprii ale matricii A se gasesc in reuninunea domeniilor circulare
{z||z-1|≤2} ∪ {z||z|≤3} ∪ {z||z|≤2}
9.2. METODE DE CALCUL PENTRU VALORILE PROPRII
Pe langa metoda analitica , metodele numerice de determinare a vectorilor si valorilor
proprii sunt de doua feluri: metode directe si metode indirecte (iterative si partial
iterative); pentru matrici hermitiene exista metode specifice.
REZOLVAREA ECUATIEI CARACTERISTICE SI OBTINEREA VECTORILOR PROPRII
9.2.1.⇒ METODA ANALITICA
Exemplul 2. Fie matricea A=[0 1 1;1 0 1;1 1 0]. Sa se determine valorile si vetorii
proprii asociati matricii A. Sa se verifice teorema lui Gersgorin.
Rezolvare: Polinomul caracteristic al matricii A este PA(λ)= λ3-3*λ+2. Din PA(λ)=0
rezulta valorile proprii λ1=2, λ2=-1, λ3=-1. Folosind relatia (14.3) calculam vectorii
proprii
Pentru λ2=λ3=-1 se obtine pentru vectorii proprii x2= x3= (x1, x2, x3)T , sistemul liniar
omogen
x1+x2+x3=O
x1+x2+x3=O
x1+x2+x3=O
care inafara solutiei banale are si solutiile x2= x3=(α, β, -(α+β))T unde α, β∈ R-{0}
Pentru λ1=2 se obtine pentru vectorul propriu x1=(x1, x2, x3)T ,sistemul liniar omogen
-2*x1+x2+x3=O
x1-2*x2+x3=O
x1+x2-2*x3=O
care inafara solutiei banale are si solutiile x1=(γ, γ, γ)T unde γ ∈ R-{0}
Daca se considera α=β=γ=1 si se normalizeaza vectorii x1, x2, x3 se obtin vectorii
proprii x2=[0.40825 0.40825 -0.81650]T, x3=[ 0.70711 -0.70711 0.00000]T,
x1=[0.57735 0.57735 0.57735]T (baza oronormala a spatiului vectorial R3/R in care
matricea A capata forma diagonala)
Verificarea ceruta rezulta din Exemplul 1
⇒ Metoda numerica in Octave/Matlab. In Octave, calculul polinomului caracteristic al
matricii A se face folosind functia poly(A), calculul valorilor proprii si a vectorilor
proprii se face folosind functia eig(A). Astfel
octave#1> A=[0 1 1;1 0 1;1 1 0];p=poly(A), valori_proprii=roots(p)
octave#2> [V,lambda]=eig(a) # Returneaza rezultatele
p = 1.00000 0.00000 -3.00000 -2.00000
lambda = 2.00000 -1.00000 -1.00000
V=
0.40825 0.70711 0.57735
0.40825 -0.70711 0.57735
-0.81650 0.00000 0.57735
lambda=
-1.00000 0.00000 0.00000
0.00000 -1.00000 0.00000
0.00000 0.00000 2.00000
9.2.2.⇒ METODE DIRECTE. Dintre metodele directe vom mentiona metoda Lavrentiev-
Fadeev si metoda Krilov. Se prezinta metoda Lavrentiev-Fadeev
► Metoda Lavrentiev-Fadeev
Algoritm:
nxn
1. Fie o matrice A∈R Se determina coeficientii ak ,k=1,2, . . ., n+1 ai ecuatiei caracteristice (14.2) astfel:
(1)
Pas_1: Se considera a1=1 si se initiaza primul pas de iteratie considerand matricea ajutatoare C =A si
n
apoi a 2 = − ∑ c kk(1) .
k =1
(k) (k) (k-1)
Pas_k=2,3, . . .Pentru pasii k=2,3, … ,n , matricea ajutatoare C se obtine astfel C =A*( C +ak*I) iar
n
1
coeficientii folosind formula a k +1 = − ∑
k k =1
c kk( k )
2. Se calculeaza valorile proprii prin rezolvarea ecuatiei caracteristice PA(λ)=0
3. Se determina vectorii proprii pentru valorile proprii gasite
Exemplul 3. Sa se aplice metoda Lavrentiev-Fadeev pentru problema de la exemplul 2.
Pas_1: Se considera a1=1 si matricea ajutatoare C(1)=A. Rezulta a2=0
Pas_2: Se calculeaza C(2)=A*( C(1)+0*I3)= [0 1 1;1 0 1;1 1 0]* [0 1 1;1 0 1;1 1 0]=[2 1 1;1 2 1;1 1 2].
Rezulta a3=-3
Pas_3: Se calculeaza C(3)=A*( C(2)-3*I3)= [0 1 1;1 0 1;1 1 0]* [-1 1 1;1 -1 1;1 1 -1]=[2 0 0;0 2 0;0 0 2].
Rezulta a4=-2
Pas_3: Rezulta ecuatia caracteristica PA(λ)= λ3-3* λ-2
Pas_4: Rezulta ecuatia caracteristica λ3-3* λ-2=0 care are valorile proprii λ1=2, λ2=-1, λ3=-1
Pas_5: Calculul vectorilor proprii. Pentru valoarea proprie λ1=2 se obtine pentru vectorul propriu x1
conform relatiei (14.3) sistemul
-2*x1+x2+x3=O
x1-2*x2+x3=O
x1+x2-2*x3=O
Daca se considera x3=1, rezulta x2=x2=1. Daca facem normalizarea vectorului x1 se obtine
vectorul propriu x1 =[0.57735 0.57735 0.57735]T. Se procedeaza la fel pentru valorile proprii
λ2=λ3=-1
9.2.3.⇒ METODE ITERATIVE. Dintre metodele iterative vom mentiona metoda lui
Rutishauser (factorizarea LR) si metoda bazata pe factorizarea QR. Se prezinta metoda
Rutishauser
► Metoda lui Rutishauser (bazata pe factorizarea LR Doolittle)
Algoritm:
nxn
1. Fie o matrice A∈R
(0) (1) (1)
.Se porneste algoritmul astfel: se initializeaza A =A= L *R
(k-1) (k) (k)
2. Pentru pasii k=1,2, . . .ai pricesului iterativ se efectuiaza facrorizarea Doolittle A =L *R si rezulta
(k) (k) (k) (k) (k)
factorii L si R . La acelasi pas k se calculeaza A = R * L
3. Procesul iterativ se termina atunci cand | lij( k ) |≤ ε , i = 2,3,..., n; j = 1,2,..., i − 1 cu ε dat
4. Valorile aproximative ale valorilor proprii rezulta ca fiind λi ≈ rii( k ) ≈ a ii( k ) , i=1,2, . . .,n
Exemplul 4. Sa se aplice metoda lui Rutishauser pentru problema de la exemplul 2 cu ε=10-3
Pas_1: Se initializeaza A(0)=A= L(1)*R(1)=[1 0 0;0 1 0;1 1 1]*[1 0 1;0 1 1;0 0 -2] si se calculeaza A(1)=
R(1)*L(1)= [1 0 1;0 1 1;0 0 -2]* [1 0 0;0 1 0;1 1 1]=[2 1 1;1 2 1;-2 -2 -2]. Se testeaza |l(1)ij|> ε cu i=2,3 si
j=1,2. Algoritmul continua
Pas_2: Se calculeaza factorizarea A(1)=A= L(2)*R(2)=[1 0 0;0.5 1 0;-1 -0.66667]*[2 1 1;0 1.5 0.5;0 0 -
0.66667] si se calculeaza A(2)= R(2)*L(2)= [1.5 0.3333 1;0.25 1.16 0.5;0.6666 0.4444 -0.66667]. Se
testeaza |l(2)ij|> ε cu i=2,3 si j=1,2. Algoritmul continua
……………………..
Algoritmul se continua pana cand | lij( k ) |≤ ε , i = 2,3; j = 1,2
Observatie: In Octave/Matlab factorizarea LR se obtine aplicand functia lu
9.2.4.⇒ METODE PARTIAL ITERATIVE. In anumite probleme se cere calculul valorilor
proprii extreme. Astfel pentru calculul valorii proprii de modul maxim se foloseste metoda
lui Rayleigh iar pentru calculul valorii proprii de modul minim se foloseste metoda puterii
inverse. Se prezinta metoda lui Rayleigh
► Metoda lui Rayleigh
Algoritm:
nxn
1. Fie o matrice A∈R
1 (0)
.Se porneste algoritmul astfel: se initializeaza vectorul propriu x =x ales arbitrar
2. Se introduce un vector auxiliar y. Pentru pasii k=1,2, . . .ai pricesului iterativ se calculeaza vectorul
(k) (k-1) (k) 1
auxiliar y =A*x . La acelasi pas se calculeaza noua valoare a vectorului propriu x a lui x conform
1
formulei x (k ) = y ( k ) , unde λk = max i (| y i( k ) |), i = 1,2,..., n
λ k

3. Procesul iterativ se termina atunci cand | xi( k ) − xi( k −1) |≤ ε , i = 1,2,..., n cu ε dat
4. Valoarea aproximativa a valorii proprii cautate si a vectorului propriu corespunzator rezulta ca fiind
λ = λ( k ) si x1 = x ( k ) , i=1,2, . . .,n
Exemplul 5. Sa se aplice metoda lui Rayleigh pentru problema de la exemplul 2 cu ε=10-2
Pas_1: Se initializeaza vectorul propriu domonant in modul x1=x(0)=[1 1 0]T .
Pas_2: Se calculeaza prima aproximatie a vectorului propriu, y(1)=A* x(0)= [0 1 1;1 0 1;1 1 0]* [1 1 0]T=[1
1 2]T. Se face normalizarea referitor la valoarea maxima din y(1) si rezulta x(1)=[0.5 0.5 1]T
Pas_3: Se calculeaza a doua aproximatie a vectorului propriu, y(2)=A* x(1)= [0 1 1;1 0 1;1 1 0]* [0.5 0.5 1]T
=[1.5 1.5 1]T. Se face normalizarea referitor la valoarea maxima din y(2) si rezulta x(2)=[1 1 0.66667]T
……………………..
Algoritmul se continua pana cand | xi( k ) − xi( k −1) |≤ ε , i = 1,2,..., n
9.2.5.⇒ METODE PENTRU MATRICI HERMITIENE. Matricile hermitiene (matrici patratice
simetrice si cu elemente reale) au proprietatea ca toate valorile lor proprii sunt reale.
Pentru astfel de matrici se poate aplica oricare dintre metodele deja prezentate dar exista
si metode specifice. Dintre metodele specifice matricilor hermitiene remarcam metoda
Jacobi, metoda lui Givens si metoda lui Hauseholder. Se prezinta metoda lui Jacobi
Algoritm:
nxn
1. Fie o matrice A∈R hermitiana adica aij=aji cu i,j=1,2,…,n.Se porneste algoritmul astfel: se initializeaza
(0)
A =A
(k) (k) T (k-1) (k) (k)
2. Pentru pasii k=1,2, . . .ai pricesului iterativ se determina A =(S ) *A * S unde S se alege astfel incat
(k)
sa determine anularea elementului nediagonal maxim in modul al matricii A .
3. Procesul iterativ se termina atunci cand | aij( k ) |≤ ε , i = 2,3,..., n; j = 1,2,..., i − 1 cu ε dat
4. Valorile aproximative ale valorilor proprii rezulta ca fiind A (k ) = Λ unde Λ este o matrice diagonala ,
avand pe diagonala valorile proprii ale matricii A
APLICATII

Problema 1. Se da matricea A=[7 4 -1;4 7 -1;-4 -4 4]


Sa se calculeze polinomul caracteristic, valorile proprii si vectorii proprii pentru matricea A prin metoda
analitica si prin metoda directa Lavrentiev-Fadeev. Sa se compare rezultatele cu rezultatele obtinute
folosind functiile Octave poly(A) si eig(A)
Problema 2. Sa se rezolve sistemul de ecuatii diferentiale
dx/dt=y+z
dy/dt=x+z
dz/dt=x+y
folosind metoda cu valorile si vectorii proprii
Rezolvare: Cu ajutorul valorilor si vectorilor proprii solutia sistemului se scrie sub forma
X = C1v 1e λ1t + C 2 v 2 e λ2t + C 3 v 3 e λ3t unde v1, v2, v3 sunt vectorii proprii corespunzatori valorilor
proprii λ1, λ2, λ3 pentru matricea asociata sistemului A=[0 1 1;1 0 1;1 1 0]