Documente Academic
Documente Profesional
Documente Cultură
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
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
p¼
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¼
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
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
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.
S¼
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
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
Î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
4
vom putea scrie u = R x:Mai departe, avem
A = RT R
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
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
e = kx x k1 = max jxi xi j
i=1;::;n
obţinem urm¼
atorul tabel: