Sunteți pe pagina 1din 6

Metode Numerice - Cursul nr.

2
1 Metoda Cholesky. Factorizarea Cholesky
De multe ori în practic¼
a apar sisteme de ecuaţii liniare a c¼
aror matrice are propriet¼
aţi speciale. Astfel, se pune problema
ca folosind acele propriet¼
aţi s¼
a rezolv¼
am sistemele respective prin metode mai efeciente decât cele generale. O astfel de
proprietate este cea de a … pozitiv de…nit¼a.
De…niţie. Fie A 2 Mn (R) o matrice simetric¼ a. Spunem c¼ a A este pozitiv de…nit¼ a dac¼ a forma p¼atratic¼a asociat¼
a este
pozitiv de…nit¼
a, mai exact dac¼ a
2 3 2 3
x1 0
6 x2 7 6 0 7
6 7 6 7
'(x) := xT Ax > 0; pentru orice x = 6 . 7 6= 6 . 7 :
4 .. 5 4 .. 5
xn 0

Dup¼a cum se cunoaşte de la cursul de algebr¼


a liniar¼
a, matricea simetric¼
a A este pozitiv de…nit¼
a dac¼
a şi numai dac¼
a
r > 0; pemtru orice r = 1; :::; n; unde
a11 ::: a1r
.. ..
r := . . :
ar1 ::: arr
De fapt, teorema lui Jacobi arat¼ a acest lucru. În practic¼ a aceste condiţii sunt mai greu de veri…cat, mai ales pentru
matrici de dimensiuni mari. De aceea, vom prezenta în continuare câteva condiţii necesare, respectiv su…ciente, pentru
ca o matrice simetric¼
a s¼
a …e pozitiv de…nit¼a.
Observaţie. Reamintim c¼ a pentru doi vectori x; y 2 Rn produsul scalar al celor doi vectori este num¼ arul real notat cu
hx; yi sau cu x y egal cu
hx; yi = x1 y1 + x2 y2 + ::: + xn yn :
Ţinând cont c¼
a
2 3 2 3
y1 x1
6 y2 7 6 x2 7
6 7 6 7
x1 y1 + x2 y2 + ::: + xn yn = x1 x2 ::: xn 6 .. 7 = y1 y2 ::: yn 6 .. 7
4 . 5 4 . 5
yn xn

rezult¼
a c¼
a putem scrie
hx; yi = xT y = y T x = hy; xi :
Atunci, forma p¼
atratic¼
a asociat¼
a cu o matrice simetric¼
a poate … scris¼
a în forma

'(x) := xT Ax = hAx; xi :

Urm¼ atorul rezultat ne spune c¼a dou¼ a matrice simetrice (nu neap¼ arat pozitiv de…nite) nu pot avea aceeasi form¼ a

atratic¼
a asociat¼
a decât dac¼
a sunt egale.
Lem¼ a. Dac¼a A; B 2 Mn (R) sunt dou¼ a matrice simetrice astfel încât xT Ax = xT Bx pentru orice x 2 Rn atunci A = B.
Demonstraţie. Fie A şi B dou¼ a relaţia din enunţ. Atunci, pentru orice x; y 2 Rn avem
a matrice simetrice care veri…c¼

(x + y)T A(x + y) = (x + y)T B(x + y); (1)


xT Ax + y T Ax + xT Ay + y T Ay = xT Bx + y T Bx + xT By + y T By:

Dar, y T Ax 2 R deci coincide cu transpusa sa:


T
y T Ax = y T Ax = xT AT y = xT Ay:

Analog, obţinem
y T Bx = xT By:
Folosind ipoteza şi relaţia (1), rezult¼ a y T Ax = y T Bx pentru orice x; y 2 Rn . Atunci, considerând y = ej şi
a acum c¼
x = ei unde ei şi ej sunt elemente oarecare ale bazei canonice din Rn obţinem

aij = eTj Aei = eTj Bei = bij ; 8i; j = 1; ::; n;

adic¼
a A = B:

1
Propoziţie. Dac¼ a A 2 Mn (R) este o matrice simetric¼ a pozitiv de…nit¼a, atunci:
(i) aii > 0; 8i = 1; :::; n:
(ii) aii ajj > a2ij ; 8i; j = 1; :::; n; cu i 6= j.
Demonstraţie. (i) Ţinând seama c¼ a A este simetric¼
a, avem aij = aji şi atunci
n X
X n
'(x) = xT Ax = aij xi xj =
i=1 j=1

= a11 x21 + 2a12 x1 x2 + ::: + 2a1n x1 xn +


+ a22 x22 + : : : + 2a2n x2 xn +
..
.
+ ann x2n :
2 3
0
6 .. 7
6 . 7
6 7
În particular, pentru x = ei = 6 7
6 1 7 (1 se a‡a¼ pe poziţia i în vector) avem '(ei ) = aii : Cum ' este pozitiv de…nit¼a şi
6 . 7
4 .. 5
0
ei 6= 0; avem c¼a aii > 0:
(ii) Pentru a demonstra relaţia de la pct. (ii) consider¼
am 2 R şi ei ; ej cu i 6= j: Deoarece ei + ej 6= 0 şi A este
pozitiv de…nit¼ a avem '( ei + ej ) > 0 . Dar,
2
'( ei + ej ) = aii + 2aij + ajj > 0:

Pentru ca inegalitatea de mai sus s¼


a …e adev¼
arat¼
a pentru orice 2 R; trebuie ca

= 4(a2ij aii ajj ) < 0;

a aii ajj > a2ij :


adic¼
Observaţie. Condiţiile care apar în Propoziţia 1 sunt doar necesare, nu şi su…ciente, dup¼a cum arat¼a urm¼atorul exemplu.
Fie matricea 2 3
3 2 2
A = 4 2 3 2 5:
2 2 3
Se observ¼
2 a 3c¼
a A satisface cele dou¼
a condiţii din Propoziţia 1, dar nu este pozitiv de…nit¼a, deoarece dac¼a alegem vectorul
1
x = 4 1 5 ; avem
1

'(x) = xT Ax = 3(x21 + x22 + x22 ) + 4x1 x2 4x1 x3 + 4x2 x3 = 9 12 = 3 < 0:

Vom da în continuare condiţii su…ciente ca o matrice s¼


a …e pozitiv de…nit¼
a.
De…niţie. Spunem c¼
a matricea A este tare diagonal dominat¼a dac¼ a elementele sale satisfac urm¼
atoarea relaţie:
n
X
jaii j jaij j ; i = 1; :::; n:
j=1
j6=i

Dac¼a inegalitatea de mai sus este strict¼


a pentru orice i = 1::n vom spune c¼
a A este strict tare diagonal dominat¼
a.
Are loc urm¼ atorul rezultat:
Teorem¼ a. Fie A o matrice simetric¼a cu urm¼ atoarele propriet¼aţi:
(i) A este strict tare diagonal dominat¼ a;
(ii) aii > 0; 8i = 1; :::; n:
Atunci A este pozitiv de…nit¼ a.
Demonstraţie. Din condiţia (i) rezult¼ a c¼
a dac¼a x 6= 0; atunci:
n
X n X
X n n X
X n n X
X n
'(x) = aii x2i + aij xi xj > jaij j x2i jaij j jxi j jxj j :
i=1 i=1 j=1 i=1 j=1 i=1 j=1
j6=i j6=i j6=i

2
Observ¼ am c¼a în ultimul membru termenii cu indici egali, i = j se reduc şi pentru c¼
a aij = aji ; putem considera doar
indicii j > i, obţinând:
n X
X n X
X
'(x) > jaij j x2i + x2j 2 jaij j jxi j jxj j =
i=1 j>i i=1 j>i
Xn X
2
= jaij j (jxi j jxj j) 0
i=1 j>i

adic¼
a ' este pozitiv de…nit¼
a.


a observ¼
am c¼ a dac¼
a A este o matrice pozitiv de…nit¼
a atunci r > 0 pentru orice r = 1; n. deci am putea rezolva
sistemul de ecuaţii
A x=b
prin metoda lui Gauss (LU ). Prezent¼
am în continuare un rezultat care permite rezolvarea sistemelor de ecuaţii liniare cu
matrice pozitiv de…nit¼
a într-un num¼
ar de paşi la jum¼
atate faţ¼
a de metoda lui Gauss.
Teorem¼ a (Cholesky). Pentru orice matrice simetric¼ a şi pozitiv de…nit¼
a A 2 Mn (R) exist¼
a o matrice superior triunghi-
ular¼
a R 2 Mn (R) astfel încât
A = RT R:
Demonstraţie. Fie A o matrice simetric¼
a, pozitiv de…nit¼
a şi
n X
X n
'(x) = xT Ax = aij xi xj
i=1 j=1

forma p¼
atratic¼
a asociat¼
a. Separ¼
am din expresia lui '(x) toţi termenii care-l conţin pe x1 :Avem:
n X
X n
'(x) = a11 x21 + 2a12 x1 x2 + ::: + 2a1n x1 xn + aij xi xj :
i=2 j=2

Form¼
am un p¼
atrat perfect din care toţi termenii care-l conţin pe x1 : Deoarece a11 > 0 obţinem
0 12
Xn Xn X n Xn X n
p a1j a1i a1j
'(x) = @ a11 x1 + p xj A p xi p xj + aij xi xj ;
j=2
a11 i=2 j=2
a11 a11 i=2 j=2

adic¼
a 0 12
Xn Xn X n
'(x) = @p a11 x1 + p
a1j
xj
A +
(1)
aij xi xj ;
j=2
a11 i=2 j=2

(1) a1i a1j


unde aij = aij ; i; j = 2; :::; n:
a11
Dac¼
a not¼
am cu
n X
X n
(1)
'1 (x) = aij xi xj ;
i=2 j=2

atunci '1 este la rândul s¼


au o form¼
a p¼
atratic¼
a pozitiv de…nit¼
2 a. 3
z2
6 .. 7
Într-adev¼ar, s¼
a presupunem prin absurd c¼a exist¼
a z = 4 . 5 6= 0 astfel încât '1 (z) 0:
zn
2 3
z1
n
X a1j 6 z2 7
6 7
Fie z1 = zj şi z = 6 .. 7 6= 0: În continuare avem:
j=2
a11 4 . 5
zn
0 12
Xn
'(z) = @p a11 z1 +
a1j
p zj A + '1 (z) = 0 + '1 (z) 0;
j=2
a11

ceaa ce contrazice faptul c¼


a ' este pozitiv de…nit¼
a.

3
(1)
Aşadar, am ar¼
atat c¼
a '1 este pozitiv de…nit¼
a. În particular, rezult¼a c¼
a a22 > 0: Mai departe proced¼
am cu '1 aşa cum
am procedat cu ' şi obţinem:
0 12
q Xn (1)
a
(1)
'1 (x) = @ a22 x2 + q2j xj A + '2 (x);
(1)
j=3 a22
unde
n X
n (1) (1)
X (2) (2) (1) a2i a2j
'2 (x) = aij xi xj ; cu aij = aij (1)
; i; j = 3; :::; n:
i=3 j=3 a22
este pozitiv de…nit¼
a. În …nal ' se reprezint¼
a ca o sum¼
a de p¼
atrate. Mai precis, '(x) admite urm¼
atoarea scriere:
0 12
Xn q Xn (i 1)
(i 1) aij
'1 (x) = @ aii xi + q xj A ;
(i 1)
i=1 j=i+1 aii

unde:
(p 1) (p 1)
(0) (p) (p 1) api apj
aij = aij şi aij = aij (p 1)
;p = 1; :::; n 1:
app
Introducem notaţiile:
q
(i 1)
rii = aii ; i = 1; :::; n1
(i 1)
aij
rij = ;i < j
rii
rij = 0; i > j
(p) (p 1)
aij = aij rpi rpj ; p = 1; :::; n 1; i; j = p + 1; :::; n:
Cu aceste notaţii avem:
0 12
n
X n
X
'(x) = @ rij xj A
i=1 j=i

= (r11 x1 + r12 x2 + ::: + r1n xn )2 + (r22 x2 + ::: + r2n xn )2 + ::: + (rnn xn )2 :

În continuare, not¼
am cu u vectorul
2 3
r11 x1 + r12 x2 + ::: + r1n xn
6 r22 x2 + ::: + r2n xn 7
6 7
u=6 .. 7:
4 . 5
rnn xn

Ţinând cont de relaţiile din Observaţia 1, putem scrie


2 3T 2 3
r11 x1 + r12 x2 + ::: + r1n xn r11 x1 + r12 x2 + ::: + r1n xn
6 r22 x2 + ::: + r2n xn 7 6 r22 x2 + ::: + r2n xn 7
6 7 6 7
'(x)=uT u= 6 .. 7 6 .. 7:
4 . 5 4 . 5
rnn xn rnn xn
Dar, componentele vectorului u pot … scrise în forma
2 3
x1
6 x2 7
6 7
ui = rii xi + ::: + rin xn = 0 0 ::: 0 rii ::: rin 6 .. 7;
4 . 5
xn
pentru orice i = 1; ::; n şi atunci notând cu R matricea superior triunghiular¼
a:
2 3
r11 r12 ::: r1n
6 0 r22 ::: r2n 7
6 7
R=6 . .. .. 7 ;
4 .. . . 5
0 0 ::: rnn

4
vom putea scrie u = R x:Mai departe, avem

'(x) = uT u = (Rx)T (Rx) = xT (RT R)x:

a parte, '(x) = xT Ax pentru orice x 2 Rn şi iar RT R esite simetric¼


Pe de alt¼ a. Folosind acum Lema 1 obţinem egalitatea

A = RT R

şi demonstraţia este încheiat¼


a.
Observaţie. Scrierea matricei A în forma dat¼ a de teorema anterioar¼
a poart¼
a numele de descompunerea sau factorizarea
Cholesky a lui A iar R poart¼ a denumirea de matrice Cholesky asociat¼ a matricei A. Aceast¼a descompunere este
unic¼ a dac¼
a impunem ca pe diagonala lui R s¼ a avem elemente strict pozitive. Algoritmul pentru factorizarea Cholesky
este programat în MATLAB şi poate … apelat cu secvenţa R = chol(A) (se a…şeaz¼ a matricea Cholesky asociat¼a matricei
A, atâta timp cât A este pozitiv de…nit¼ a).

1.0.1 arul de operaţii pentru determinarea matricii R


Num¼
Pentru a calcula a i-a linie a matricii R sunt necesare (n i)(2i 1) + 2i 2 operaţii elementare şi o extragere de r¼
ad¼
acin¼
a

atrat¼
a. Pentru toate liniile sunt necesare
n
X n3 n2 5n
[(n i)(2i 1) + 2i 2] = +
i=1
3 2 6

operaţii elementare. Se observ¼


a imediat c¼
a num¼
arul de operaţii este aproximativ jum¼
atate din cel corespunz¼
ator metodei
lui Gauss.
Exemplu. S¼ a se determine descompunerea Cholesky a matricii
2 3
3 2 2
A = 4 2 3 2 5:
2 2 3

r
p 2 2 (1) 2 4 5 5
r11 = 3; r12 = p ; r13 = p ; a22 = a22 r12 =3 = ; r22 = ;
3 3 3 3 3
(1)
(1) 2 a 2 (1) 2 4 5
a23 = a23 r12 r13 = ; r23 = 23 = p ; a33 = a33 r13 =3 = ;
3 r22 15 3 3
r
(2) (1) 2 5 4 7 7
a33 = a33 r23 = = ; r33 = :
3 15 5 5
2 p 3
3 p23 p2
6 q 3
7
R=6 7:
5 p2
0
4 3 q15 5
7
0 0 5

Se veri…c¼ a RT R = A:
a imediat c¼
Rezolvarea sistemului Ax = b cu metoda Cholesky, în cazul în care matricea A este simetric¼
a şi pozitiv de…nit¼
a, revine
la rezolvarea a dou¼a sisteme triunghiulare, şi anume:

RT y = b
:
Rx = y

1.0.2 Algoritmul Cholesky pentru rezolvarea sistemelor de ecuaţii liniare


% Introducere matrice A a coeficienţilor
% Introducere vector b al termenilor liberi
% Introducere n, dimensiune sistem
R=zeros(size(A))
for p=1:n
R(p,p)=sqrt(A(p,p));
if p<n
for k=p+1:n
R(p,k)=A(p,k)/R(p,p);
end

5
for i=p+1:n
for j=p+1:n
A(i,j)=A(i,j)+R(p,i)*R(p,j);
end
end
end
end
R
%verificare
R1=chol(A)
% Rezolvarea sistemului RT y = b
x=zeros(n,1);
y(1)=b(1)/R(1,1);
for i=2:n
s=0;
for j=1:i-1
s=s+R(j,i)*y(j);
end
y(i)=(b(i)-s)/R(i,i);
end
%Rezolvarea sistemului Rx = b
x(n)=y(n)/R(n,n);
for i=n-1:-1:1
s=0;
for j=i+1:n
s=s+R(i,j)*x(j);
end
x(i)=(y(i)-s)/R(i,i);
end
disp(’Soluţia sistemului prin metoda Cholesky’)
x
disp(’Verificare’)
A*x
Exemplu. Ca şi în cazul metodei lui Gauss LU, pentru valori mari ale lui n erorile de calcul sunt mari. Pentru a
exempli…ca acest lucru, s¼
a consider¼
am sistemul urm¼
ator:
8
>
> nx1 + n n13 x2 + n n13 x3 + + n n13 xn = n2 n12 + n13
>
>
>
> 1 1
< n n3 x1 + nx2 + n n3 x3 +
> + n n13 xn = n2 n12 + n13

> n n13 x1 + n n13 x2 + nx3 + + n n13 xn = n2 n12 + n13 (2)


>
> .
>
> ..
>
>
: n 1 1 1
+ nxn = n2 n12 + n13 :
n3 x1 + n n3 x2 + n n3 x3 +

Este uşor de veri…cat c¼


a toate matricele de forma
2 3
x y y ::: y
6y x y ::: y7
6 7
6y y x ::: y7
6 7; x > y > 0
6 .. .. .. .. .. 7
4. . . . .5
y y y ::: x

sunt pozitiv de…nite. În consecinţ¼


a, şi matricea sistemului de mai sus este pozitiv de…nit¼
a. Soluţia exact¼
a a acestui sistem
este x1 = x2 = ::: = xn = 1: Pe de alt¼ a parte, notând cu x soluţia obţinut¼
a în MATLAB şi cu e eroarea de calcul

e = kx x k1 = max jxi xi j
i=1;::;n

obţinem urm¼
atorul tabel:

n 6 10 100 200 1000


13 10 6 4
e 5:9430 10 6:7428 10 5:1503 10 3:7238 10 8:7087

S-ar putea să vă placă și