Documente Academic
Documente Profesional
Documente Cultură
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
x1
x2
..
.
xn
x1
x2
..
.
xn
det(A E) = 0
Ecuatia caracteristic
a (secular
a):
a11
a12
a21
a22
..
..
.
.
an1
an2
=0
ann
...
a1n
a2n
..
.
(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.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.
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 ,
1
s
2
a11 a22
a11 a22
tan =
+ 1
2a21
2a21
Se determina cos = (1 + tan )1/2 si sin = tan cos .
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
..
..
..
..
.
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
0
0
0
aij = a0ji = aji (cos2 sin2 ) + (ajj aii ) sin cos .
4
ajj aii
cot 1 = 0
aji
Se determina:
tan =
aii ajj
2aji
1
,
cos = p
1 + tan2
aii ajj
2aj i
+ 1
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
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.
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/