Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Cursul 10
2011-2012
Anca Ignat
1
Algoritmul QR de aproximare a valorilor proprii ale unei
matrici oarecare
Prezentm n continuare cel mai folosit algoritm de aproximare
a valorilor proprii pentru matrici ptratice oarecare.
Spunem c o matrice
n n
S
e este n form Schur real dac
matricea S este n form superior Hessenberg i n plus este bloc-
diagonal:
11 12 1
22 2
0
p
p
pp
S S S
S S
S
S
| |
|
|
=
|
|
|
\ .
0
0
2
blocurile S
ii
sunt astfel ca:
-
ii
S e - este valoare proprie real
-
2 2
ii
S
e - este bloc corespunztor valorilor proprii
complexe
Valorile proprii corespunztoare blocului
2 2
ii
a b
S
c d
| |
= e
|
\ .
sunt rdcinile ecuaiei :
2
-
( - )( - ) - ( ) 0
- -
a b
a d bc a d ad bc
c d
= = + + =
Se presupune c aceast ecuaie de gardul 2 are rdcini
complexe.
3
Algoritmul QR de aproximare a valorilor proprii construiete un
ir de matrici
( ) k n n
A
e , matrici asemenea cu matricea A,
( )
,
k
A A k , ir care converge la o matrice n form Schur real,
( )
,
k
A S k . Matricea limit S este asemenea cu matricea
A, valorile prorii ale matricii S fiind uor de calculat. irul A
(k)
se
construiete astfel:
descomp. calc. pentru matricea
descomp. calc pentru matricea
descomp. calc pentru matricea
(0) (0) (0)
0 0
(1) (1) (1)
0 0 1 1
( 2)
1 1
( ) ( )
( 1)
: , ( )
: , ( . )
:
( . ) ,
:
k k
k k
k
A A A Q R QR A
A R Q A Q R QR A
A R Q
A Q R QR A
A
+
= =
= =
=
=
=
, 0,1, 2,
k k
R Q k =
4
Matricile Q
k
sunt matrici ortogonale (
1 T
k k
Q Q
= ) iar matricile R
k
sunt superior triunghiulare.
Matricile A
(k)
i A
(k+1)
sunt asemenea:
( ) ( )
( 1) ( ) ( 1) ( )
|
,
T k T k
k k k k k
k T k k k
k k k k
Q A Q R R Q A
A R Q Q A Q A A k
+ +
= =
= =
-
Matricile irului construit sunt toate asemenea prin urmare au
aceleai valori proprii anume cele ale matricii iniiale A= A
(0)
:
(0) (1) ( ) k
A A A A S =
5
Dac matricea A
(k)
este n form superioar Hessenberg, atunci
descompunerea QR realizat cu algoritmul lui Givens se
simplific. Reamintim algoritmul lui Givens:
1 1 1 1 1 1 12 12
( ) ( ) ( ) ( ) ( )
n n n n pn pn pp pp n n
R R R R R A R u u u u u
+ +
=
Dac matricea A este n form Hessenberg n algoritmul lui
Givens, din cele
( 1)
2
n n
nmuliri cu matrici de rotaie rmn
doar (n-1):
1 1 1 1 23 23 12 12
( ) ( ) ( ) ( )
n n n n pp pp
R R R R A R u u u u
+ +
= .
Problema care se pune este dac pornind cu o matrice n form
Hessenberg, toate matricile irului rmn n form Hessenberg:
6
n form Hessenberg) cu Givens)
este tot n form Hessenberg
( )
( 1) ( )
( ( ?
k
k T k T
A H QR
A H RQ Q A Q Q HQ
+
= =
= = = =
?
Avem:
12 12 1 1 1 1
( ) ( ) ( )
T T T T
rr rr n n n n
H Q HQ R R R R u u u
+ +
= =
Notm cu:
12 12
( )
T
R R R u =
pentru care avem:
7
1 1 2 1 1
2 1 2 2 2
, 0, 2, , 0, 3, ,
, 0, 3, , 0, 3, ,
i i i i i
i i i i i
r cr sr i r i n r i n
r sr cr i r i n r i n
= + = = = =
= + = = = =
+
deci coloana 1 se transform n form Hessenberg iar coloana 2
rmne n form suprior triunghiular.
La pasul p avem:
( )
12 12 1 1 1 1 1 1
12 12 1 1
( ) ( ) ( ) ( ) ,
( ) ( )
T T T T
p p p p pp pp pp pp
T T
p p p p
R R R R R R R
R R R R
u u u u
u u
+ + + +
= =
=
matricea
= = +
+
.
9
Observm din relaia de mai sus c n matricea R coloana p are
form Hessenberg iar coloana p+1 rmne n form superior
triunghiular (celelalte elemente din matrice nu se modific).
Prin urmare dup pasul n-1 matricea
( 1) k
H A
+
= este n form
superioar Hessenberg. Algoritmul QR de aproximare a valorilor
proprii folosind descompunerea Givens pstreaz forma
Hessenberg.
10
Algoritmul QR pentru valori proprii
se aduce matricea la forma Hessenberg
while forma Schur real
se ca
;
0;
( )
; / /
T
A
A Q AQ
k
A
A QR
-
- =
- =
- =
/ /
=
lculeaz cu algoritmul Givens
sau ;
1;
T
A RQ Q AQ
k k
- =
- = +
11
n practic se presupune c matricea A este n form
Hessenberg neredus, adic:
1
0 2, ,
ii
a i n
= =
Dac matricea nu este n form neredus, problema se
decupleaz:
sau
11 12
21 22
, 1 2
A A
p
A p n n
A A n p
p n p
(
= =
(
12
Algoritmului QR cu deplasare (shift) simpl
Algoritmul cu deplasare simpl este urmtorul:
aducerea la forma Hessenberg neredus
while forma Schur real
se calc cu alg.
;
0;
( )
; / / .
T
k n
A Q AQ
k
A
A d I QR
- =
- =
- =
- =
/ /
Givens
: ;
1;
k n
A RQ d I
k k
- = +
- = +
k
d e sunt constantele de deplasare.
13
Dac A - d I
n
= QR (A
(k)
) i
n
A RQ d I + = ( A
(k+1)
), se pune
problema dac cele dou matrici sunt asemenea ( A A ) (irul de
matrici construit cu pasul QR cu deplasare simpl au aceleai
valori proprii).
( )
T T T T
n
A Q QRQ d Q Q Q QR d I Q Q AQ A A = + = + =
Varianta cu deplasare se efectueaz pentru a accelera
convergena algoritmului. Dac
1
,
2
,...,
n
sunt valorile proprii
ale matricii A ordonate astfel ca:
1 2 n
d d d > > >
14
Rapiditatea cu care
( )
1
0 ,
k
p p
a k
+
este dat de rata de
convergena a expresiei
1
k
p
p
d
d
. Dac se alege
n
d ~
convergena
( )
1
0
k
n n
a
este rapid. Avem urmtoarul rezultat:
Teorem
Fie d o valoare proprie a unei matrici Hessenberg nereduse H.
Dac
n
H RQ d I = + , cu
n
H d I QR = descompunerea QR a
matricii
n
H d I QR = . Atunci:
1
0 ,
nn nn
h h d
= =
15
Alg. QR cu deplasare simpl gs. val. proprie d ntr-un sg. pas.
Euristic s-a constatat c la fiecare pas, cea mai bun aproximare a
unei valori proprii este
( ) k
nn
a .
( ) k
k nn
d a =
Algoritmul QR cu deplasare simpl
aducerea la forma Hessenberg neredus
while forma Schur real
se calc cu algoritmul Given
;
0;
( )
; / / .
T
nn n
A Q AQ
k
A
A a I QR
-
- =
- =
- =
= / /
s
: ;
1;
nn n
A RQ a I
k k
- = +
- = +
16
Algoritmului QR cu deplasare (shift) dubl
n cazul cnd valorile proprii a
1
, a
2
corespunztoare blocului:
, 1
pp pn
np nn
a a
G p n
a a
(
= =
(
(
sunt complexe,
1 2
, a a e, abordarea cu deplasare simpl nu mai
asigur accelerarea convergenei. Avem:
2 1 2
2 2
1 2 1 2
det( ) ( )( ) ( )( )
( ) ( )
pp nn pn np
pp nn pp nn pn np
I G a a a a a a
a a a a a a a a a a
= = =
= + + = + +
17
1 2 1 2
( ) , det
pp nn pp nn pn np
a a a a trace G a a a a a a G + = + = = =
Algoritmul QR cu deplasare dubl const n trecerea de la
matricea A = A
(k)
la matricea A
2
= A
(k+1)
realiznd doi pai cu
deplasare simpl :
A A
1
(deplasare simpl a
1
), A
1
A
2
(deplasare simpl a
2
)
1 1 1
1 1 1 1
1 2 2 2
2 2 2 2
n
n
n
n
A a I Q R
A R Q a I
A a I Q R
A R Q a I
=
+
=
+
=
=
Fie matricea :
18
( ) ( ) ( ) ( )
( )
( ) ( ) ( )
1 2 2 1 1 2 2 1 1 1 2 1
1 1 1 2 1 1 1 1 1 2 1 1
2 1 1 2 1
:
n
T T
n
n n n
M Q Q R R Q Q R R Q A a I R
Q Q AQ a I R Q Q AQ R a Q R
A a I Q R A a I A a I
= = =
=
=
=
= =
=
( ) ( ) ( ) ( )
1 2 2 1 2 1
2
1 2 1 2
( )
n n
n
M Q Q R R A a I A a I
A a a A a a I
= = =
= + +
Avem urmtoarele relaii de asemnare:
( ) ( )
( ) ( )
1 1 1 2 2 1 2 2 1 1 2 1 2 1 2
2 1 2 1 2 1 2
, :
T
T T T T
T
T
A A Q AQ A Q AQ Q Q AQ Q Q Q A Q Q
A Q Q A Q Q Q AQ Q Q Q
= = = =
= = =
19
Matricea Q care asigur trecerea de la matricea A la matricea A
2
este matricea ortogonal din descompunerea QR a matricii
( ) ( )
2 1 n n
M A a I A a I = . Pasul QR cu deplasare dubl se face
urmnd etapele:
1) se calculeaz matricea
2
n
M A s A qI = + cu
s = a
1
+a
2
= a
pp
+a
nn
, q = a
1
a
2
= a
pp
a
nn
- a
pn
a
np
;
2) se calculeaz descompunerea QR a matricii M;
3) A
2
:=Q
T
AQ.
20
Vectori proprii
Considerm dou matrici asemenea A i B:
matrice nesingular
1
, A B A PBP P
=
tim c cele dou matrici au acelai polinom caracteristic,
( ) ( )
A B
p p , deci au aceleai valori proprii. Ne intereseaz
care este legtura ntre vectorii proprii asociai aceleiai valori
proprii. Fie u vector propriu asociat valorii proprii pentru
matricea A i w vector propriu asociat valorii proprii pentru
matricea B. Care este relaia ntre u i w?
21
1 1
1 1 1
, ,
,
Au u Bw w A PBP PBP u u
BP u P u w P u u Pw
= = = =
= = =
Dac se aplic algoritmul QR unei matrici simetrice, forma Schur
real la care se ajunge este o matrice diagonal:
S = = diag[
1
,
2
, ...,
n
]
Legtura dintre matricea simetric iniial A i matricea
diagonal este de forma:
S = = diag[
1
,
2
, ...,
n
] = U
T
A U
unde U este o matrice ortogonal, coloanele matricii U fiind
vectori proprii asociai valorilor proprii reale
1
,
2
, ...,
n
.
Matricea U se poate calcula astfel:
22
Algoritmul QR pentru matrici simetrice (valori +vectori proprii)
- =
- =
- = +
23
Descompunerea dup valori singulare
(Singular Value Decomposition)
Teorem
Fie
m n
A
e . Atunci exist o matrice ortogonal ptratic de
dimensiune m,
m m
U
e , o matrice ortogonal ptratic de
dimensiune n,
n n
V
e i constantele pozitive:
o
1
> o
2
> . > o
r
>0, r s min{m,n} a..
( )
( ) ) ( )
1
0
, , ,
0 0
, diag , ,
r n r
T m n
m r r m r n r
r r
r
D
A U V
D D o o
(
= E Ee E =
(
(
e = . (
(
(1)
Constanta r este chiar rangul matricii A, r = rang(A).
24
Constantele o
1
, o
2
, . , o
r
poart numele de valori singulare ale
matricii A.
Folosind relaia (1) avem:
( )
2
( )
( ) ( ) ( )
,
,
0
0 0
T
T T T T
T T T T T T T
m
r m r
T m m
m
m r r m r m r
A U V V U
AA U V V U U U U U
D
= E = E
E E EE A
(
A = EE = e
(
(
= = =
2
( )
( ) ( ) ( )
,
0
0 0
T T T T T T T
n
r n r
T n n
n
n r r n r n r
A A V U U V V V V V
D
E E E E A
(
A = E E = e
(
(
= = =
25
innd cont de ortogonalitatea matricilor U i V, putem rescrie
relaiile de mai sus astfel:
2 2 2
1 2
2 2 2
1 2
( ) , diag , , , , 0, , 0
( ) , diag , , , , 0, , 0
T m m
m m r
T n n
n n r
AA U U
A A V V
o o o
o o o
(
= A A = e
(
= A A = e
Din aceste relaii deducem c
2 2 2
1 2
, , ,
r
o o o sunt valorile proprii
strict pozitive ale matricilor AA
T
i/sau A
T
A iar matricile U i V
sunt matrici ale cror coloane sunt vectorii proprii asociai (cei ce
formeaz baze ortonormate). Matricile AA
T
i A
T
A sunt matrici
26
simetrice:
( ) ( ) ( ) ( )
,
T T T T
T T T T T T T T
AA A A AA A A A A A A = = = =
i au toate valorile proprii nenegative:
( ) ( )
( )
( )
( )
2
2
2
2
, ,
, ,
0
,
T T
T T T
AA u u AA u u u u
A u A u A u
u u
u
= =
= = >
Putem folosi descompunerea dup valori singulare pentru a
defini pseudo-inversa unei matrici oarecare
m n
A
e (n=m).
27
( ) ( )
1 1
1 1 1 1
? ? ?
,
T T T T
A U V A U V V U V U
= E = E = E = E
Rmne de definit matricea
1
?
(
= E e E = e
(
(
(
e = .
(
(
0
0
Pseudoinversa definit mai sus satisface urmtoarele proprieti:
28
( ) ( ) ( )
, ; ,
I I T
I m n T I m n
A A A A A A
= e e =
,
I I I I
AA A A A AA A = =
Exist o proprietate care nu mai este satisfcut de psudoinvers
dei este respectat de inversa clasic:
( )
. , a.
I
I I
A B AB B A - = .
Descompunerea dup valori singulare poate fi utilizat i pentru
rezolvarea sistemelor liniare cu matrici oarecare (mn)
, , , :
m n m I n
Ax b A b x A b
= e e = e .
29
Problema celor mai mici ptrate
, , ,
m n m n
A b Ax b x
e e = e (1)
11 1 12 2 1 1
21 1 22 2 2 2
1 1 2 2
1 1 2 2
=
=
=
=
n n
n n
i i in n i
m m mn n m
a x a x a x b
a x a x a x b
a x a x a x b
a x a x a x b
+ + +
+ + +
+ + +
+ +
30
Sistemul are soluii clasice dac:
rang A = rang [A | b]
- m < n - o infinitate de soluii
- m n
- dac rang A = rang [A | b] soluii clasice
- dac rang A rang [A | b] soluii n sensul celor mai mici
ptrate
Vectorul reziduu:
( )
m
r x b Ax = e
31
Vectorul
n
x e se numete soluie n sensul celor mai mici
ptrate pentru sistemul (1) dac este soluia urmtoarei probleme
de optimizare:
2 2
2 2
min{ ( ) ; }
n
r x b Ax x = e (LSP)
3 2
1 4 0
2 5 , 0 , 3, 2
3 6 1
A b m n
( | |
| (
= e = = =
| (
|
(
\ .
rang A = 2 rang [A | b] = 3
32
Sistemul:
1 2
1 2
1 2
4 0
2 5 0
3 6 1
x x
x x
x x
+ =
+ =
+ =
(2)
nu are soluie clasic (nu exist x
1
, x
2
care s satisfac toate cele
3 ecuaii simultan). Vectorul reziduu are forma:
1 2
1
1 2
2
1 2
0 1 4 4
( ) 0 2 5 2 5
1 3 6 1 3 6
x x
x
r x b Ax x x
x
x x
| | | | (
| |
| | (
= = =
|
| | (
\ .
| |
(
\ . \ .
Soluia n sensul celor mai mici ptrate a acestui sistem este
definit ca soluia problemei de optimizare:
33
( )
2
2 2
1 2 1 2 1 2 1 2
min{( 4 ) ( 2 5 ) 1 3 6 ; , } x x x x x x x x + + e
2 2
1 2 1 2 1 2 1 2
min{1 6 12 64 14 77 ; , } x x x x x x x x + + + e
Aceast problem de minimizare are soluia:
1 2
13 2 1
, , ( )
18 9 6
x x r x = = =
i este soluia n sensul celor mai mici ptrate a sistemului (2).
( )
1 2
1 2
range A { y ; , , 1, }
m n
n i
y a A a A a A a i n = e = + + + e =
34
1 2
, sunt coloanele matricii
n i m
A A A A A A
(
= e
Teorem
Fie ( ),
m n m
A m n b
e > e . Un vector
n
xe minimizeaz
norma euclidian a vectorului reziduu ||r(x)||
2
=||b-Ax||
2
,
rezolvnd problema (LSP), dac i numai dac:
( ) range( ) ( ) 0
T
r x A A r x =
sau echivalent
T T
A Ax A b = (3)
35
Sistemul (3) poart numele de sistemul de ecuaii normale i
este un sistem ptratic de dimensiune n, matricea sistemului
T n n
A A
e este simetric. Sistemul de ecuaii normale (3) este
nesingular dac i numai dac rangA = n, n acest caz soluia x a
sistemului (3) este unic.
det 0 rang
T
A A A n = =
1 4
14 32 3
2 5 , ,
32 77 6
3 6
T T
A A A A b
(
( | |
(
= = =
| (
(
\ .
(
36
1 2
1 2
1 2
14 32 3
13 2
,
32 77 6 18 9
x x
x x
x x
+ =
= =
+ =
Pseudo-inversa matricii A
Presupunem c A are rang A = n. Atunci pseudo-inversa poate fi
definit ca:
( )
1
T T n m
A A A A
+
= e ( ?)
I
A A
+
=
1
14 32 1 2 3
*
32 77 4 5 6
A
+
( (
=
( (
37
Rezolvarea sistemului de ecuaii normale
1) Folosind factorizarea Cholesky (descompunere LU) pentru
matrici simetrice:
, matrice inferior triunghiular
T T n n
A A LL L
= e
- Se calculeaz matricea A
T
A i vectorul A
T
b;
- Se calculeaz factorizarea Cholesky a matricii A
T
A=LL
T
;
- Se rezolv sistemul inferior triunghiular Ly= A
T
b pentru y;
- Se rezolv sistemul superior triunghiular L
T
x= y pentru x;
38
2) Se calculeaz descompunerea QR (cu algoritmul lui
Householder adaptat) pentru matricea A:
( )
, matrice ortogonal , ,
, matrice superior triunghiular
0
m m m n
n n
m n n
A QR Q R
R
R R
= e e
(
e
=
(
- Se calculeaz factorizarea QR modificat a matricii A;
- Se calculeaz vectorul Q
T
b ;
- Se rezolv sistemul sup. triunghiular
( )
1,
T
i n
Rx Q b
=
= ;
39
3) Se folosete desc. dup valori singulare a matricii A
, , ,
T m n m m n n
A U V U V
= E Ee e e
- Se calculeaz SVD pentru matricea A=UV
T
;
- Se calculeaz vectorul U
T
b;
- Se rezolv sistemul diagonal w = U
T
b pentru w;
- Soluia este x=Vw;
1), 2) sau 3) ? se recomand 2)
40
Rezolvarea ecuaiilor neliniare
Fie :[ , ] f a b o funcie continu pe intervalul [a,b]
astfel ca f(a)f(b) < 0. n aceste condiii, exist x
*
e(a,b) astfel ca
f(x
*
)=0. n cele ce urmeaz ne propunem s aproximm soluia x
*
a ecuaiei neliniare f(x)=0.
41
Metoda biseciei (a njumtirii intervalului)
Pp. f(a)f(b) < 0!!! Pentru a aproxima soluia x
*
cutat, vom
construi un ir de intervale {[ , ]; 0}
k k
a b k > ce satsifac:
1 1
1 1
,
, ,
2
k k
k k k k
k k
k k
x a b
a b a b
b a
b a
-
+ +
+ +
e (
c ( (
=
Pentru primul interval vom considera:
0 0
, , 0 a a b b k = = = .
42
Considerm punctul c de mijloc al intervalului [a
k
,b
k
]:
k k
a b
c
+
=
2
Avem urmtoarele 3 variante:
1. f(c)=0 - soluia cutat este x
*
=c, algoritmul se oprete;
2. f(a
k
)f(c) < 0 soluia se gsete n intervalul (a
k
,c),
continum procedeul cu intervalul [
1 1
,
k k k
a a b c
+ +
= = ];
3. f(b
k
)f(c) < 0 soluia se gsete n intervalul x
*
e(c,b
k
)
procedeul continu cu intervalul [
1 1
,
k k k
a c b a
+ +
= = ].
43
Dat c > 0 exist un interval ,
k k
a b
(
astfel ca
( )
,
k k
x a b
-
e i
k k
b a c < (
2
log
b a
k
c
Ecuaia tangentei la graficul funciei f ntr-un punct (a, f(a)) este
urmtoarea (pentru o funcie derivabil):
( ) ( )( ) y f a f a x a
'
= +
46
Pentru a calcula x
k+1
din x
k
vom considera ecuaia tangentei:
( ) ( )( )
k k k
y f x f x x x
'
= +
unde lum y = 0. Avem:
1 0
( )
, 0,1, 2, , dat
( )
k
k k
k
f x
x x k x
f x
+
= =
'
Formula de mai sus poate fi folosit doar dac la fiecare pas
( ) 0
k
f x
'
= . Dac la un pas avem ( ) 0
k
f x
'
= putem calcula
cteva iteraii x
k
(k k > ) folosind
1
( )
k
f x
'
.
47
Teorem de convergen
Fie
| |
2
, f C a b e , cu ( ) ( ) 0 f a f b < , ( ) 0 f x
'
= i ( ) 0 f x
''
=
| |
, x a b e . Dac alegem
0
pentru ( ) ( ) 0
pentru ( ) ( ) 0
a f a f a
x
b f b f b
''
>
=
''
>
atunci irul
{ }
; 0
k
x k > construit cu metoda tangentei este
monoton, mrginit i convergent la unica soluie x
*
a ecuaiei
f(x)=0. Ordinul de convergen este mai mare dect 2.