Sunteți pe pagina 1din 6

9

PROBLEME DE VALORI S
I VECTORI PROPRII

8.1 Introducere
Problema de valori proprii a unui operator liniar A:
Ax = x
x vector propriu, valoare proprie.
n reprezentarea unei baze din <n problema matriciala cu A = [aij ]nn , x = [xi ]n :
A x = x, sau (A E) x = 0

a11 a12 a1n


a21 a22 a2n
..
.. . .
..
.
.
.
.
an1 an2 ann

x1
x2
..
.
xn

x1
x2
..
.
xn

det(A E) determinant caracteristic (secular).


Sistem liniar omogen solutii netriviale daca si numai daca:

det(A E) = 0
Ecuatia caracteristic
a (secular
a):

a11
a12

a21
a22

..
..

.
.

an1
an2

=0

ann

...

a1n
a2n
..
.

n radacini reale sau complexe 1 , 2 , ..., n . spectrul matricii A.


= j n ecuatia de valori proprii solutia x(j) vectorul propriu corespunzator.

8.2 Diagonalizarea matricilor prin transformari similare


Fie X matricea avnd pe coloane vectorii proprii x(j) matrice modal
a.
Cele n ecuatii de valori proprii sub forma matriciala ecuatie modal
a:
AX=X
unde

(1)

(2)

x1 x1
(1) (2)
x
x2
X= 2

(1)
(2)
xn xn

(n)
x1
(n)
x2
,

(n)
xn

1 0
0 2
=

0 0

0
0

Teorema 9.1 Daca matricea modala


X corespunzatoare unei matrici A este formata din
n coloane liniar independente (vectorii proprii ai matricii A sunt liniar independenti),
atunci exista X1 si ecuatia modala
se scrie sub forma
X1 A X = .
Matricile asociate aceluiasi operator relativ la doua baze diferite matrici similare.
Teorema 9.2 Doua matrici cu elemente reale, A, B Mnn
si nu< , sunt similare daca
mai daca exista o matrice nesingulara S Mnn
,
astfel
ca
<
B = S1 A S,
operatie care se numeste transformare similara a matricii A.

Teorema 9.3 Doua matrici similare au aceleasi valori proprii. Vectorii proprii corespunzatori rezulta unii din altii cu ajutorul matricii transformarii.
Ecuatia modala X1 A X = A si sunt similare.
Matricile similare cu o matrice diagonala se numesc matrici diagonalizabile.
Importanta procesului de diagonalizare
Daca se poate gasi o transformare care diagonalizeaza matricea:
valorile proprii se afla pe diagonala principala a matricii transformate
vectorii proprii corespunzatori sunt coloanele matricii transformarii.

8.3 Metoda lui Jacobi


Probleme de valori si vectori proprii pentru matrici reale simetrice.
Vectorii proprii reali si ortogonali diagonalizare cu ajutorul unei matrici ortogonale:
R RT = RT R = E sau R1 = RT
Diagonalizarea prin transformarea de similitudine:
RT A R =
Ideea:
Transformari similare ortogonale succesive anuleaza cte doua elemente simetrice.
Transformarile distrug zerourile anterioare, dar diagonalizeaza treptat matricea.
Produsul transformarilor matricea modala pe coloane vectorii proprii.
Cazul 22 transformare ortogonala matrice de rotatie plan
a:

cos sin
R=
sin cos
Rotire de unghi a sistemului vectorilor de baza.
rezulta din conditia ca R sa diagonalizeze matricea A.
Transformarea ortogonal
a:
Elementele:

A0 = RT A R
0
a11 = a11 cos2 + 2a21 sin cos + a22 sin2
a0 = a11 sin2 2a21 sin cos + a22 cos2
22
a021 = a21 (cos2 sin2 ) + (a22 a11 ) sin cos = a012 ,

Transformarea conserva caracterul simetric al matricii.

Conditia de anulare a elementelor nediagonale ale matricii A0 :


a22 a11
cot 1 = 0
cot2 +
a21
Rezolvare n raport cu cot :

1
s
2
a11 a22
a11 a22
tan =

+ 1
2a21
2a21
Se determina cos = (1 + tan )1/2 si sin = tan cos .

Valorile si vectorii proprii:


1 = a011 , x(1)
2 = a022 , x(2)

cos
=
sin
sin
=
cos

Diagonalizare exact
a printr-o singura transformare ortogonala.
3

Cazul n n

R(i, j) =

..
..
1
.
.
cos sin
..
..
...
.
.
sin cos
..
..
0
.
.
coloana i
coloana j

linia i


linia j
1

Transformarea ortogonal
a anuleaza elementele extradiagonale a0ij si a0ji :
A0 = RT (i, j) A R(i, j)
Singurele elemente diferite de ale matricii A pe liniile si coloanele i si j.
Rescriem:
= A R(i, j),
A

Detaliat:

a1i
..
.

a1j
..
.

a
ki
..
.

a
kj
..
.

a
ni

a
nj

A0 = RT (i, j) A

a1i
..
.

a1j
..
.

aki
..
.

akj
..
.

ani

anj

..
..
1
.
.
0

cos sin

..
..
...


.
.

sin

cos

..
..
0
.
.
1

Elementele relevante de pe coloanele i si j:

aki = aki cos + akj sin , k = 1, 2, ..., n


akj = aki sin + akj cos .

..
..
..
..
.
1
.
.
.
0

0
0
0
ai1 aik ain cos sin ai1 aik ain

..
..
..
..
...
=

.
.
.
.

a0 a0 a0 sin cos a
jk ajn

j1 a
j1
jn
jk
..
..
..
..
.
0
.
.
1
.
Elementele relevante de pe liniile i si j:
0
aik = aik cos + a
jk sin ,
0
ajk = aik sin + a
jk cos .

k = 1, 2, ..., n

Elementele modificate ale matricii A0


0
aik = a0ki = aik cos + ajk sin , k = 1, 2, ..., n

0
0

ajk = akj = aik sin + ajk cos , k 6= i, j


a0ii = aii cos2 + 2aji sin cos + ajj sin2

a0jj = aii sin2 2aji sin cos + ajj cos2

0
aij = a0ji = aji (cos2 sin2 ) + (ajj aii ) sin cos .
4

Conditia de anulare a elementelor nediagonale ale matricii A0 :


cot2 +

ajj aii
cot 1 = 0
aji

Rezolvare n raport cu cot :

Se determina:

tan =

aii ajj

2aji

1
,
cos = p
1 + tan2

aii ajj
2aj i

+ 1

sin = cos tan

S
ir de matrici similare avnd acelasi sistem de valori proprii:
A0 = A,

Al = RTl Al1 Rl ,

l = 0, 1, 2, . . .

S
ir de matrici ortogonale
X0 R0 E,

Xl = R0 R1 Rl ,

l = 0, 1, 2, . . .

S
irul de matrici similare:
A0 = A,

Al = XTl A Xl ,

l = 0, 1, 2, . . .

La limita:
lim Al = ,

lim Xl = X

Relatie de recurenta
:
Xl = Xl1 Rl (i, j)
Elementele modificate ale matricii Xl :
0
xki = xki cos + xkj sin ,
x0kj = xki sin + xkj cos .

k = 1, 2, ..., n,

Criteriu de convergenta
:
max |a0ij |
i6=j

Diagonala lui Al valorile proprii, coloanele lui Xl vectorii proprii.


Stabilitatea metodei rotatie a vectorilor de baza de unghi minim ( /4).
Maximizarea valorii absolute a numitorului expresiei tan :

1
s


2
aii ajj aii ajj
aii ajj
+
tan = sign
+ 1

2aji
2aji
2aji
5

/*=========================================================================*/
int Jacobi(float **a, float **x, float d[], int n)
/*--------------------------------------------------------------------------Rezolva problema de valori si vectori proprii pt. o matrice reala simetrica
a - matricea reala simetrica (jumatatea inferioara este distrusa)
x - matricea modala: coloanele sunt vectorii proprii (iesire)
d - tabloul valorilor proprii
n - ordinul matricii a
Returneaza indicele de eroare: 0 - executie normala
1 - nr. maxim de iteratii depasit
---------------------------------------------------------------------------*/
{
const float eps = 1e-30;
/* criteriu de precizie */
const int itmax = 50;
/* nr. maxim de iteratii */
float aii, aji, ajj, amax, c, s, t;
int i, it, j, k;
for (i=1; i<=n; i++) {
for (j=1; j<=n; j++) x[i][j] = 0.0;
x[i][i] = 1.0;
d[i] = a[i][i];
}

/*
/*
/*
/*

initializeaza matricea
modala x cu matricea E
si valorile proprii d
cu elementele diag.

for (it=1; it<=itmax; it++) {


amax = 0.0;
for (j=2; j<=n; j++)
for (i=1; i<=(j-1); i++) {
/* salveaza elementele diag.
aii = d[i]; ajj = d[j]; aji = fabs(a[j][i]);
if (amax < aji) amax = aji;
/* elem. extradiag. maxim
if (aji > eps) {
/* efectueaza rotatia
c = 0.5*(aii-ajj)/a[j][i];
t = 1.0/(fabs(c) + sqrt(1.0+c*c));
/* tangenta
if (c < 0.0) t = -t;
/* semnul corect
c = 1.0/sqrt(1.0+t*t); s = c*t;
/* cos, sin
for (k=1; k<=(i-1); k++) {
/* 1 <= k < i
t
= a[i][k]*c + a[j][k]*s;
a[j][k] = a[j][k]*c - a[i][k]*s; a[i][k] = t;
}
for (k=(i+1); k<=(j-1); k++) {
/* i < k < j
t
= a[k][i]*c + a[j][k]*s;
a[j][k] = a[j][k]*c - a[k][i]*s; a[k][i] = t;
}
for (k=(j+1); k<=n; k++) {
/* j < k <= n
t
= a[k][i]*c + a[k][j]*s;
a[k][j] = a[k][j]*c - a[k][i]*s; a[k][i] = t;
}
for (k=1; k<=n; k++) {
/* matricea modala
t
= x[k][i]*c + x[k][j]*s;
x[k][j] = x[k][j]*c - x[k][i]*s; x[k][i] = t;
}
t = 2 * s * c * a[j][i];
/* actualizeaza
d[i] = aii*c*c + ajj*s*s + t;
/* elementele
d[j] = aii*s*s + ajj*c*c - t;
/* diagonale si
a[j][i] = 0.0;
/* extradiagonale
}
}
if (amax<=eps) return 0;
/* testeaza convergenta
}
printf("Jacobi: nr. maxim de iteratii depasit !\n");
return 1;
}

*/
*/
*/
*/

*/
*/
*/
*/
*/
*/
*/

*/

*/

*/

*/
*/
*/
*/
*/