Sunteți pe pagina 1din 18

PARTEA A V-A

VECTORI I VALORI PROPRII. APLICAII




1. INTRODUCERE. DEFINIII

Definiia 1. Fie e A C
nxn
o matrice ptratic. Numrul e C se numete valoare
proprie a lui A dac exist e x C
n
vector nenul astfel nct
(1) x Ax = .
Vectorul x se numete vector propriu asociat valorii proprii (acesta nu este unic, n
sensul c unei valori proprii i corespund o infinitatea de vectori x cu proprietatea (1)).
Mulimea valorilor proprii asociate matricei A este notat ( ) A o i se numete
spectrul lui A.

Definiia 2. Fie e A C
nxn
o matrice ptratic i e C o valoare proprie a matricei A.
Vectorii x i y se numesc vector propriu la dreapta (drept), respectiv vector propriu la stnga
(stng) asociai valorii proprii dac
(2) x Ax = i
H H
y A y = ,
unde, pentru ( ) e =
T
n
y y y y ,..., ,
2 1
C
n
, ( )
n
T H
y y y y y ,..., ,
2 1
= = i, pentru
e =
=
=
m j
n i
j i
b B
,. , ., 1
,..., 1
,
C
nxm
, B B
H
= , adic ( )
i j j i
H
b B
, ,
= , pentru m i ,..., 1 = i n j ,..., 1 = .

Fie e C valoare proprie a matricei e A C
nxn
. Atunci este soluie a ecuaiei
caracteristice
(3) ( ) ( ) 0 det = =
n A
I A p
unde ( )
A
p este polinom de grad n n i se numete polinom caracteristic. Pe baza relaiei
(3) rezult n particular c A are n valori proprii, nu neaprat distincte.

Proprieti
1. Fie e C valoare proprie a matricei e A C
nxn
i x un vector propriu asociat lui .
Atunci
x x
Ax x
H
H
=
2. ( ) ( ) { }
n
n
i
i
A A o ,..., , , det
2 1
1
= =
I
=

3. ( ) ( ) { }
n
n
i
i
A A tr o ,..., , ,
2 1
1
= =

=

4. ( ) ( )
T
A A o o = , ( ) ( )
H
A A o o =

Pe baza proprietii (2) rezult c A este singular dac i numai dac cel puin o
valoare proprie este nul.

Definiia 3. Fie e A C
nxn
o matrice ptratic. Raza spectrului matricei A este definit
prin,
(4) ( )
( )
p
o A
A
e
= max
2. ANALIZA STABILITII PROBLEMEI CALCULULUI VALORILOR
PROPRII ALE UNEI MATRICE

Estimarea a priori
Fie e A C
nxn
o matrice diagonalizabil i | |
n
x x x X ,..., ,
2 1
= matrice avnd coloanele
un set de vectori proprii asociai valorilor proprii ale matricei A. Rezult,
n i s s 1 ,
i i i
x Ax =
X AX A =
{ }
n
diag AX X ,..., ,
2 1
1
= = A

(A este diagonalizabil).
Fie e E C
nxn
matrice perturbaie a lui A.

Teorema 1. (Bauer-Fike)
Fie u o valoare proprie a matricei e + E A C
nxn
. Are loc relaia,
(5)
( )
( )
p
p
A
E X K s
e
u
o
min
unde
p
. este o p-norm pe spaiul matricelor i ( )
p
p
p
X X X K
1
= este indicatorul de
condiie a problemei determinrii valorilor proprii ale lui A.

n particular, rezult c problema determinrii valorilor proprii ale unei matrice este
bine condiionat dac A este diagonalizabil.

Estimarea a posteriori
Teorema 2.
Fie e A C
nxn
o matrice hermitian,
H
A A = i fie ( ) x ,

valorile calculate pentru o


pereche valoare proprie, vector propriu corespunztoare matricei A. Dac reziduul r este,
x x A r

= , 0 = x , atunci
(6)
( )
2
2

min
x
r
i
A
i
s
e

o


Cu alte cuvinte, pe baza relaiei (6) rezult c, pentru reziduuri mici, erorile
absolute sunt, de asemenea, mici.


3. METODA PUTERII

Metoda puterii mpreun cu metoda iteraiei inverse sunt utilizate pentru calculul
valorilor proprii extreme ale unei matrice (valoarea proprie cea mai mare n modul, respectiv
valoarea proprie cea mai mic n modul) i a cte unui vector propriu asociat.
Fie e A C
nxn
o matrice diagonalizabil i | |
n
x x x X ,..., ,
2 1
= matrice avnd coloanele
un set de vectori proprii asociai valorilor proprii ale matricei A, ( ) { }
n
A o ,..., ,
2 1
= ,
n i s s 1 ,
i i i
x Ax = i astfel nct are loc relaia
(7)
n
> > > > ...
3 2 1

unde
1
are ordinul de multiplicitate 1;
1
cu aceast proprietate se numete valoare proprie
dominant a matricei A.
Fie
( )
e
0
q C
n
vector iniial unitar (cu norma euclidian egal cu valoarea 1). Metoda
puterii presupune efectuarea setului de iteraii,
,... 2 , 1 = k
( )
( ) ( )
( )
( )
( )
( ) ( )
( )
( )

=
=
=

k
H
k k
k
k
k
k k
Aq q
z
z
q
Aq z
0
2
1
8

Pe baza relaiei (8), rezult,

( )
( )
( )
( )
( )
( )
( )
2
0
0
2
2 2
2 2
2
1
1
...
q A
q A
q A
q A
Aq
Aq
q
k
k
k
k
k
k
k
= = = =

, deci
,... 2 , 1 = k
(9)
( )
( )
( )
2
0
0
q A
q A
q
k
k
k
=
Deoarece A este matrice diagonalizabil, rezult c { }
n
x x x ,..., ,
2 1
este baz a spaiului
C
n
, deci
( )
e
0
q C
n
este exprimat n termenii vectorilor baz prin,
( )

=
=
n
i
i i
x q
1
0
o
unde e
i
o C, pentru n i s s 1 . Deoarece pentru n i s s 1 ,
i i i
x Ax = , obinem,
( )
i i i i i i
x Ax Ax A x A
2 2
= = = .
Similar, pentru ,... 2 , 1 = k , obinem (prin inducie dup k),
i
k
i i
k
x x A = .
Rezult,
( )

= = =
= = =
n
i
i
k
i i
n
i
i
k
i
n
i
i i
k k
x x A x A q A
1 1 1
0
o o o
Prin evidenierea valorii proprii dominante, obinem,
,... 2 , 1 = k
(10)
( )
|
|
.
|

\
|
|
|
.
|

\
|
+ =

=
n
i
i
k
i i k k
x x q A
2
1 1
1 1 1
0

o
o
o
Deoarece 1
1
<

i
pentru 2 > i , rezult c, pe msur ce numrul de iteraii, k, crete,
vectorul
( ) 0
q A
k
, deci
( ) k
q , are vectorul
1
x drept component principal n exprimarea n
baza { }
n
x x x ,..., ,
2 1
.
Fie
( )

=
|
|
.
|

\
|
=
n
i
i
k
i i k
x y
2
1 1

o
o
. Rezult,
( )
( )
( )
( )
( )
( )
( )
( )
2
1
1
1 1
2
1 1 1
1 1 1
sgn
k
k
k
k k
k k
k
y x
y x
y x
y x
q
+
+
=
+
+
= o
o
o


Observaii
1. Dac
1
x este un vector propriu corespunztor valorii proprii
1
, atunci i -
1
x este
un vector propriu corespunztor valorii proprii
1
. Evident, dac
1 1 1
x Ax = , atunci
( ) ( )
1 1 1
x x A = .
2. Dac
1
x este un vector propriu corespunztor valorii proprii
1
, atunci i
2
1
1
x
x

este un vector propriu corespunztor valorii proprii
1
. Evident, dac
1 1 1
x Ax = , atunci
2
1
1
1
2
1
1
x
x
x
x
A = .

Rezult c, atunci cnd k , vectorul
( )

=
|
|
.
|

\
|
=
n
i
i
k
i i k
x y
2
1 1

o
o
converge la vectorul
nul i
( ) k
q converge la un vector propriu unitar corepunztor valorii proprii
1
.

Teorema 3.
Fie e A C
nxn
o matrice diagonalizabil i | |
n
x x x X ,..., ,
2 1
= matrice avnd coloanele
un set de vectori proprii unitari asociai valorilor proprii ale matricei A,
( ) { }
n
A o ,..., ,
2 1
= , n i s s 1 ,
i i i
x Ax = i astfel nct are loc relaia (7). Dac
0
1
= o exist 0 > C astfel nct,
(11)
( )
1 ,
~
1
2
2
1
> s k C x q
k
k


unde
( )
( ) ( )
( )
( ) k
k
k
k
k k
k
y x
q A
q A q
q + = = =
1
1 1
0
1 1
2
0
~
o o


Deoarece cnd k , vectorul
( ) k
q converge la ( )
2
1
1
1 1 1
sgn
~
x
x
x
k
o = , vector propriu
unitar, ( ) 1
~ ~ ~
2
2
1 1 1
= = x x x
H
, asociat valorii proprii
1
, rezult, pe baza proprietii 1 (vezi
seciunea 1) c
( ) ( )
( )
( )
1
0 =
k
H
k k
Aq q .

Observaie. Dac e A R
nxn
este simentric i 0
1
= o se poate demonstra c
( )
( )
k
n
k
2
1
2
0
2
1 1
tan

u 0 s
unde ( )
( )
0 cos
0
1 0
= = q x
T
u .

Pentru dezvoltarea unui algoritm, iteraiile (8) sunt efectuate pn la ndeplinirea unui
criteriu de oprire, determinat pe baza valorii reziduale definite de
(12)
( ) ( ) ( ) ( ) k k k k
q Aq r 0 = , 1 > k
i, pentru 0 > c , pe baza matricei
(13)
( ) ( ) ( )
( )
H
k k k
q r E = c , cu
( )
1
2
=
k
E .
Deoarece
( ) ( ) ( ) ( )
( )
( ) ( ) k k
H
k k k k
r q q r q E = = c , 1 > k , obinem,
(14)
( )
( )
( ) ( ) ( ) ( ) ( ) ( ) ( ) k k k k k k k k
q r q r q E A 0 0 c = + = + .

Pe baza relaiei (14) obinem c
( ) k
0 este o valoare proprie a matricei perturbaie
( ) k
E A c + . Din (13) rezult
( )
2
k
r = c . Se poate arta c
(15)
( )
( )
( )

u
0
cos
2
1
k
k
r
~
unde

u este unghiul dintre vectorul propriu la stnga i vectorul propriu la dreapta asociai
valorii proprii
1
, respectiv ( )
H H H
y A y y x
1 1 1 1 1
, cos u

= = .

n practic, estimarea relaiei (15) revine la nlocuirea factorului ( )

u cos cu
( )
( )
( ) k
H
k
q w , unde
( ) k
q este o aproximare a unui vector propriu unitar asociat valorii proprii
1
, calculat prin setul de iteraii (8) i
( ) k
w este o aproximare a unui vector propriu la stnga,
unitar, asociat valorii proprii
1
,
(16)
( )
( )
( )
( )
( ) k
H
k
k
k
q w
r
2
1
~ 0

Observaii
1. Aproximarea
( ) k
w , 1 > k , este calculat prin metoda puterii aplicat astfel. Fie
( )
e
0
w C
n
vector iniial unitar. Setului de iteraii, similar (8), este definit prin,
,... 2 , 1 = k

( )
( ) ( )
( )
( )
( )
( )

|
|
.
|

\
|
=
=

H
k
k
k
H
k k
t
t
w
A w t
2
1
17

2. Dac ( )
( )
( )
( )
1
cos c u

< ~
k
H
k
q w , algoritmul pentru calculul valorii proprii
dominante i a unui vector propriu unitar asociat nu converge (valoarea proprie nu este
dominant, n sensul c nu are ordinul de multiplicitate 1)

3. Criteriul de oprire utilizat n algoritm este

( )
( )
( )
( )
( )
c 0 < ~
k
H
k
k
k
q w
r
2
1
i nu a fost depit un numr maxim de iteraii

Pe baza observaiilor de mai sus rezult urmtorul algoritm pentru calculul valorii
proprii dominante i a unui vector propriu unitar asociat

Date de intrare A, 0 z vector iniial nenul
( )
|
|
.
|

\
|
=
2
0
0
0
z
z
q , eps, eps1, maxit (numrul
maxim de iteraii)
Date de ieire
valp1 aproximarea calculat a lui
1
(dac poate fi determinat)
x1 aproximarea calculat a unui vector propriu unitar asociat lui
1
(dac
poate fi determinat)
err eroarea de aproximare dat prin relaia (13)
potcalcula 1, dac poate fi calculat o aproximare a valoarii proprii
dominante, 0 altfel
k numrul de iteraii necesare calculului cu eroarea err<eps.

) 0 (
0
z norm
z
q = ; q w = ; z=A*q;
k=0; err=eps+1;potcalcula=1;
while ((err>eps) && (k<=maxit))

=
=
break;
0; = potcalcula
else
; stheta norm(r)/co = err
1; + k = k
eps1) > (costheta if
q; * valp1 - z = r ); abs(y1'*x1 = costheta
w; = y1 ; w' = w ; t/norm(t) w w'*A; = t
q'*z; = valp1 q; = x1 q; * A = z ; z/norm(z) q

endif
endwhile
if (err>eps) potcalcula=0
endif

Observaie
Pentru masivele cu numere complexe, n MATLAB operatorul este operatorul
H
, n
timp ce . este operatorul transpus. n cazul masivelor cu numere reale se poate folosi pentru
operatorul trasnpus.

n continuare este prezentat sursa MATLAB pentru implementarea algoritmului de
mai sus, mpreun cu exemple de execuie.

function
[valp1,x1,err,k,potcalcula]=metoda_puterii_22(A,z0,eps1,eps,maxit)
q=z0/norm(z0);w=q;z=A*q;
k=0;err=eps+1;potcalcula=1;
while((err>eps)&&(k<maxit))
q=z/norm(z);z=A*q;
x1=q;valp1=q'*z;
t=w'*A;w=t/norm(t);w=w';
y1=w;
costheta=abs(y1'*x1);r=z-valp1*q;
if(costheta>eps1)
err=norm(r)/costheta;
k=k+1;
else
potcalcula=0;
break;
end;
end;
if(err>eps)potcalcula=0;
end;
if(potcalcula==1)
disp('Valoarea proprie dominanta:');disp(valp1);
disp('Un vector propriu asociat');disp(x1);
disp('Eroarea:');disp(err);
disp('Numarul de iteratii efectuate:');disp(k);
%disp('Verificare:');disp(A*x1);disp(valp1*x1);
else
disp('Nu se poate calcula!');
end;
end


%Exemple de calcul
% 1. A=[[1 3 4]
% [3 1 2]
% [4 2 1]
% ];
%z0=[1 1 1]';
%metoda_puterii_22(A,z0,0.0001,0.0000000001,500)
%Valoarea proprie dominanta:
% 7.0747
%Un vector propriu asociat
% 0.6346
% 0.5058
% 0.5844

%Eroarea:
% 5.3935e-011

%Numarul de iteratii efectuate:
% 29

% 2. A=[[15 -2 2]
% [1 10 -3]
% [-2 1 0]
% ];
%z0=[1 1 1]';
%metoda_puterii_22(A,z0,0.0001,0.0000000001,300)
%Valoarea proprie dominanta:
% 14.1026

%Un vector propriu asociat
% 0.9436
% 0.3117
% -0.1117

%Eroarea:
% 7.9153e-011

%Numarul de iteratii efectuate:
% 77

%3.A=[[10 2 3]
% [-1 2 -1]
% [0 1 3]
% ];
%z0=[1 1 1]';
%metoda_puterii_22(A,z0,0.0001,0.0000000001,200)
%Valoarea proprie dominanta:
% 9.6876

%Un vector propriu asociat
% 0.9918
% -0.1265
% -0.0189

%Eroarea:
% 3.4676e-011

%Numarul de iteratii efectuate:
% 21

%4.A=[[10 2 3]
% [-1 2 -15]
% [10 1 3]
% ];
%z0=[1 1 1]';
%metoda_puterii_22(A,z0,0.0001,0.000000000001,8000)
%Nu se poate calcula!

%5.A=[[10 2 3 8]
% [-1 2 -5 -2]
% [10 1 3 10]
% [0 2 4 1]
% ];
%z0=[1 1 1 1]';
%metoda_puterii_22(A,z0,0.0001,0.000000000001,800)
%Valoarea proprie dominanta:
% 14.0254

%Un vector propriu asociat
% 0.6274
% -0.3580
% 0.6746
% 0.1522

%Eroarea:
% 8.0362e-013

%Numarul de iteratii efectuate:
% 25



4. METODA ITERAIEI INVERSE

Fie e A C
nxn
. Metoda iteraiei inverse (sau metoda invers a puterii) rezolv problema
calculului unei valori proprii
m
i a unui vector propriu unitar asociat lui
m
, cu proprietatea
c
m
este valoarea proprie a lui A cea mai apropiat de o valoare dat e u C, ( ) A o u e .
Algoritmul revine la aplicarea metodei puterii matricei
( )
1 1
=
n
I A M u
u

n ipoteza n care
1
u
M este diagonalizabil.
Evident, dac ( ) { }
n
A o ,..., ,
2 1
= , atunci, dac A este inversabil,
( )
)
`

n
A

o
1
,...,
1
,
1
2 1
1
i ( ) { }
n
M c c c o
u
,..., ,
2 1
1
=

, unde, pentru n i ,... 2 , 1 = ,


u
c

=
i
i
1
.
Vom presupune n continuare c exist m, n ms s 1 astfel nct
(18) u u <
i m
, m i n i = s s , 1
Semnificaia relaiei (18) este aceea c valoarea proprie
m
, cea mai apropiat de
u are ordinul de multiplicitatea 1. De asemenea, pe baza relaiei (18), rezult c
i
n i
m
c c
,..., 1
max
=
= i
m
c are ordinul de multiplicitate 1.
Evident, deoarece pentru orice m i n i = s s , 1 , are loc u u <
i m
, rezult
u u
>

i m
1 1
i
i m
c c > , deci
m
c este valoarea proprie dominant a matricei
1
u
M .

Observaie Dac 0 = u , atunci
m
este valoarea proprie a lui A cu modulul cel mai
mic.

Fie
( )
e
0
q C
n
vector iniial unitar (cu norma euclidian egal cu valoarea 1). Setul de
iteraii (8) aplicate matricei
1
u
M revine la construcia secvenei,
,... 2 , 1 = k
( )
( )
( ) ( ) ( ) ( )
( )
( )
( )
( )
( ) ( )
( )
( )

=
=
= =


k
H
k k
k
k
k
k k k k
n
q M q
z
z
q
q M z q z I A
1
2
1 1 1
19
u
u
o
u


Observaie Fie | |
n
x x x X ,..., ,
2 1
= matricea cu coloane un set de vectori proprii
corespunztori valorilor proprii ale matricei
u
M . n ipoteza n care
u
M este diagonalizabil,
rezult,
(20)
)
`

= A =

n
diag X M X
c c c
u u
1
,...,
1
,
1
2 1
1

Prin aplicarea inversei n (20) obinem,

{ }
n
diag X M X c c c u
u
,..., ,
2 1
1 1 1
= A =

,
deci X este matricea cu coloane un set de vectori proprii ai lui
1
u
M , deoarece
( ) { }
n
M c c c o
u
,..., ,
2 1
1
=

. De asemenea, pe baza relaiei (20) rezult,


( )
)
`

= A =

n
n
diag X I A X
c c c
u
u
1
,...,
1
,
1
2 1
1
i
)
`

=

n
n
diag X I X AX X
c c c
u
1
,...,
1
,
1
2 1
1 1

Obinem,
)
`

+ + + =
)
`

+ =

n n
n
diag diag I AX X
c
u
c
u
c
u
c c c
u
1
,...,
1
,
1 1
,...,
1
,
1
2 1 2 1
1

Deoarece pentru n i ,... 2 , 1 = ,
u
c

=
i
i
1
, rezult n final
{ }
n
diag AX X ,..., ,
2 1
1
=

,
deci X este matricea cu coloane un set de vectori proprii ai lui A, corespunztori valorilor
proprii
n
,..., ,
2 1
i iteraiile (19) sunt echivalente cu,
( )
e
0
q C
n
vector iniial unitar
,... 2 , 1 = k
( )
( )
( ) ( )
( )
( )
( )
( ) ( )
( )
( )

=
=
=

k
H
k k
k
k
k
k k
n
Aq q
z
z
q
q z I A
o
u
2
1
21
Iteraiile (21) se numesc iteraii inverse i definesc metoda invers a puterii.

Observaie Principala diferen fa de metoda direct a puterii este c, la fiecare pas
k, trebuie rezolvat sistemul liniar
(22) ( )
( ) ( ) 1
=
k k
n
q z I A u .
Pentru rezolvarea sistemului (22), este iniiat urmtoarea procedur,
- la momentul k=0 este realizat factorizarea LU cu pivotare a matricei
( )
n
I A M u
u
= , U L PM * =
u

- la fiecare iteraie k=1,2,... sunt rezolvate cte un sistem triunghiular inferior, prin
metoda substituiei nainte, respectiv cte un sistem triunghiular superiror, prin
metoda substituiei napoi:
o U L PM * =
u
, deci
( ) ( ) 1
* * *

=
k k
q P z U L
o Rezolv
( ) ( ) 1
* *

=
k k
q P u L cu metoda substituiei nainte i obine
( ) k
u
o Rezolv
( ) ( ) k k
u z U = * prin metoda substituiei napoi i obine
( ) k
z

Dei metoda iteraiei inverse are complexitate mai mare comparativ cu metoda
puterii, prin aplicarea ei pot fi calculate aproximri ale oricrei valori proprii i a cte unui
vector propriu unitar asociat acesteia.
Similar metodei puterii, dac
( )
( )
( )
( )
k
m m
k
k
k
q M q
q
c o
u
2
0 1
~

= , unde | |
n
x x x X ,..., ,
2 1
=
matricea cu coloane un set de vectori proprii corespunztori valorilor proprii ale matricei
1
u
M (deci X este matricea cu coloane un set de vectori proprii ai lui A),
( )

=
=
n
i
i i
x q
1
0
o
e
i
o C, pentru n i s s 1 , atunci
( )
( )
( )
( )
2
1
sgn
k
m
k
m k
m m
k
y x
y x
q
+
+
= c o ,
( )

=
=
|
|
.
|

\
|
=
n
m i
i
i
k
m
i
m
i k
x y
1
c
c
o
o
.
Cnd k , vectorul
( )

=
=
|
|
.
|

\
|
=
n
m i
i
i
k
m
i
m
i k
x y
1
c
c
o
o
converge la vectorul nul i
( ) k
q converge la un vector propriu unitar corepunztor valorii proprii
m
c a lui
1
u
M , respectiv
valorii proprii
m
a lui A,
( )
( )
m
k
m m
k
k
x q c o sgn lim =

, un vector propriu unitar al lui A, corespunztor lui
m

( )
m
k
k
x q =

~
lim
( )
m
k
k
o =

lim .

De asemenea, similar relaiei (16), obinem,
(23)
( )
( )
( )
( )
( )
1 ,
2
> ~ k
q w
r
k
H
k
k
k
m
o , unde
( ) ( ) ( ) ( ) k k k k
q Aq r o = , 1 > k
( ) k
w este vectorul calculat la cea de-a k-a iteraie ca aproximare a unui vector propriu
la stnga asociat lui
m
.

Algoritmul
Date de intrare A, 0 z vector iniial nenul
( )
|
|
.
|

\
|
=
2
0
0
0
z
z
q , miu, eps, eps1, maxit
(numrul maxim de iteraii)
Date de ieire
valpm aproximarea calculat a lui
m
(dac poate fi determinat)
xm aproximarea calculat a unui vector propriu unitar asociat lui
m
(dac
poate fi determinat)
err eroarea de aproximare dat prin relaia (23)
potcalcula 1, dac poate fi calculat o aproximare a valoarii proprii
dominante, 0 altfel
k numrul de iteraii necesare calculului cu eroarea err<eps.

[n,n]=size(A); M=A-miu*In (in MATLAB In=eye(n))
[L,U,P,Ok]=GaussLU_pivotare_6(M,0.00001);
If(Ok= = 0) potcalcula=0 (nu se poate calcula inverse lui M)
else
potcalcula=1;
) 0 (
0
z norm
z
q = ; q w = ;
k=0; err=eps+1;
while ((err>eps) && (k<=maxit))

= =
= =
= =
=
= = =
= = + =
break;
0; = potcalcula
else
; stheta norm(r)/co = err
eps1) > (costheta if
q; * valpm - z = r ); abs(ym'*xm = costheta
q; xm w; = ym ; t/norm(t) w P'*t; = t
; t t u,0.0001); , _2(L' s_backward ok2] [t,
b,0.0001); , 1(U' s_forward_ ok1] [u, w; b
q'*z; = valpm q; * A = z ; z/norm(z) q
) .' ( ; z z u,0.0001); _2(U, s_backward ok2] [z,
b,0.0001); 1(L, s_forward_ ok1] [u, q; * P b 1; k k
T
T
neconjugat transpusa z z

endif
endwhile
if (err>eps) potcalcula=0
endif

Observaii

1. Datorit modalitii de rezolvare a sistemelor (22), vom presupune A cu elemente
numere reale.

2. Calculul lui
( ) k
w din (23) este similar relaiei (17), astfel. Fie
( )
e
0
w C
n
vector
iniial unitar. Setului de iteraii este definit prin,
,... 2 , 1 = k

( )
( ) ( )
( )
( )
( )
( )

|
|
.
|

\
|
=
=

H
k
k
k
H
k k
t
t
w
M w t
2
1 1
24
u

Rezult,
( )
( ) ( )
( )
( )
( )
( )

|
|
.
|

\
|
=
=

H
k
k
k
H
k k
t
t
w
w M t
2
1
25
u


Prima relaie a setului (25) poate fi transformat ntr-un sistem liniar prin aplicarea
operatorului transpus conjugat,
( )
( )
( ) 1
=
k
H
k
w M t
u
, deci
(26) ( )
( )
( )
( ) 1
=
k
H
k H
w t M
u

Deoarece U L PM * =
u
, obinem,
( )
H H H H
L U P M * =
u
i, deoarece
n
T H
I P P P P = = , rezult,
( ) P L U M
H H H
* * =
u

Pe baza relaiei (26) obinem,
(27)
( )
( )
( ) 1
* * *

=
k
H
k H H
w t P L U
Sistemul (27) este rezolvat astfel,
- Rezolv
( ) ( ) 1
*

=
k k H
w u U cu metoda substituiei nainte (daca U este superior
triunghiular, atunci
H
U este inferior triunghiular) i obine
( ) k
u
- Rezolv
( ) ( ) k k H
u p L = * prin metoda substituiei napoi i obine

( ) ( )
( )
H
k k
t P p * = , deci
( ) ( )
( )
H
k k T
t p P =

n continuare este prezentat sursa MATLAB pentru implementarea algoritmului de
mai sus, mpreun cu exemple de execuie.

function[valpm,xm,err,k,potcalcula]=metoda_puterii_inversa_23(A,z0,m
iu,eps1,eps,maxit)
[n,n]=size(A);M=A-miu*eye(n);
[L,U,P,OK]=GaussLU_pivotare_6(M,0.00001);
if(OK==0)potcalcula=0;
else
q=z0/norm(z0);w=q;k=0;
err=eps+1;potcalcula=1;
while((err>eps)&&(k<maxit))
k=k+1;b=P*q;
[u,OK1]=s_forward_1(L,b,0.00001);
[z,OK2]=s_backward_2(U,u,0.00001);
%calculul transpusei neconjugate a lui z
z=z.';
q=z/norm(z);z=A*q;
xm=q;valpm=q'*z;
b=w;
[u,OK1]=s_forward_1(U',b,0.00001);
[t,OK2]=s_backward_2(L',u,0.00001);
%calculul transpusei neconjugate a lui t
t=t.';
t=P'*t;w=t/norm(t);ym=w;
costheta=abs(ym'*xm);r=z-valpm*q;
if(costheta>eps1)
err=norm(r)/costheta;
else
potcalcula=0;
break;
end;
end;
end;
if(err>eps)potcalcula=0;
end;
if(potcalcula==1)
disp('Valoarea proprie cea mai apropiata de miu:');disp(valpm);
disp('Un vector propriu asociat');disp(xm);
disp('Eroarea:');disp(err);
disp('Numarul de iteratii efectuate:');disp(k);
%disp('Verificare:');disp(A*xm);disp(valpm*xm);
else
disp('Nu se poate calcula!');
end;
end


%Exemple de calcul
% 1. A=[[1 3 4]
% [3 1 2]
% [4 2 1]
% ];
%z0=[1 1 1]';
%metoda_puterii_inversa_23(A,z0,8,0.0001,0.0000000001,500)
%Valoarea proprie cea mai apropiata de miu=8:
% 7.0747

%Un vector propriu asociat
% 0.6346
% 0.5058
% 0.5844

%Eroarea:
% 8.6290e-011

%Numarul de iteratii efectuate:
% 10

%2. A=[[1 3 4]
% [3 1 2]
% [4 2 1]
% ];
%z0=[1 1 1]';
%metoda_puterii_inversa_23(A,z0,-2,0.0001,0.0000000001,500)

%Valoarea proprie cea mai apropiata de miu=-2:
% -0.8868

%Un vector propriu asociat
% -0.1550
% 0.8240
% -0.5449

%Eroarea:
% 9.4075e-011

%Numarul de iteratii efectuate:
% 365

%3. A=[[1 3 4]
% [3 1 2]
% [4 2 1]
% ];
%z0=[1 1 1]';
%metoda_puterii_inversa_23(A,z0,-5,0.0001,0.0000000001,500)
%Valoarea proprie cea mai apropiata de miu:
% -3.1879

%Un vector propriu asociat
% -0.7572
% 0.2552
% 0.6013

%Eroarea:
% 6.0080e-011

%Numarul de iteratii efectuate:
% 30


% 4. A=[[15 -2 2]
% [1 10 -3]
% [-2 1 0]
% ];
%z0=[1 1 1]';
%metoda_puterii_inversa_23(A,z0,20,0.0001,0.0000000001,300)
% Valoarea proprie cea mai apropiata de miu=20:
%14.1026

%Un vector propriu asociat
% 0.9436
% 0.3117
% -0.1117

%Eroarea:
% 8.7302e-011

%Numarul de iteratii efectuate:
% 48

% 5. A=[[15 -2 2]
% [1 10 -3]
% [-2 1 0]
% ];
%z0=[1 1 1]';
%metoda_puterii_inversa_23(A,z0,8,0.0001,0.0000000001,300)
% Valoarea proprie cea mai apropiata de miu=8:
%10.3854

%Un vector propriu asociat
% 0.3929
% 0.9195
% 0.0129

%Eroarea:
% 4.6178e-011

%Numarul de iteratii efectuate:
% 28
% 6. A=[[15 -2 2]
% [1 10 -3]
% [-2 1 0]
% ];
%z0=[1 1 1]';
%metoda_puterii_inversa_23(A,z0,0,0.0001,0.0000000001,300)
% Valoarea proprie cea mai apropiata de miu=0:
%0.5121

%Un vector propriu asociat
% -0.0881
% 0.3087
% 0.9471

%Eroarea:
% 6.4999e-012

%Numarul de iteratii efectuate:
% 9

%7.A=[[10 2 3 8]
% [-1 2 -5 -2]
% [10 1 3 10]
% [0 2 4 1]
% ];
%z0=[1 1 1 1]';
%metoda_puterii_inversa_23(A,z0,18,0.0001,0.000000000001,800)

%Valoarea proprie cea mai apropiata de miu=18:
% 14.0254

%Un vector propriu asociat
% 0.6274
% -0.3580
% 0.6746
% 0.1522

%Eroarea:
% 9.0240e-013

%Numarul de iteratii efectuate:
% 24

%8.A=[[10 2 3 8]
% [-1 2 -5 -2]
% [10 1 3 10]
% [0 2 4 1]
% ];
%z0=[1 1 1 1]';
%metoda_puterii_inversa_23(A,z0,0,0.0001,0.000000000001,800)

%Valoarea proprie cea mai apropiata de miu=0:
%1.5869

%Un vector propriu asociat
% -0.6648
% 0.3729
% -0.0925
% 0.6406

%Eroarea:
% 9.7102e-013

%Numarul de iteratii efectuate:
% 32

%9.A=[[10 2 3 8]
% [-1 2 -5 -2]
% [10 1 3 10]
% [0 2 4 1]
% ];
%z0=[1 1 1 1]';
%metoda_puterii_inversa_23(A,z0,5,0.0001,0.000000000001,800)

%Valoarea proprie cea mai apropiata de miu=5:
% 4.2370

%Un vector propriu asociat
% 0.2112
% -0.8943
% 0.3874
% -0.0738

%Eroarea:
% 3.9048e-013

%Numarul de iteratii efectuate:
% 19

%10.A=[[10 2 3 8]
% [-1 2 -5 -2]
% [10 1 3 10]
% [0 2 4 1]
% ];
%z0=[1 1 1 1]';
%metoda_puterii_inversa_23(A,z0,-2,0.0001,0.000000000001,800)

%Valoarea proprie cea mai apropiata de miu=-2:
%-3.8493

%Un vector propriu asociat
% 0.1968
% 0.3468
% 0.6321
% -0.6644

%Eroarea:
% 7.6701e-013

%Numarul de iteratii efectuate:
% 47