You are on page 1of 43

Čoleski i LDL dekompozicija

T
Rešava se sistem:

Ax  b (1)
gde je
A = matrica koeficijenata dimenzije n  n

b = poznata desna strana, n  1 vektor

x = nepoznati n 1 vektor 1

2
Simetrična pozitivno definitna (SPD)
matrica

Matrica [ A]nn je SPD ako je simetrična i zadovoljen


je jedan od sledećih uslova:
(a) Ako je svaka determinanta podmatrice Aii (i  1,2,...,n)
pozitivna, ili

(b) Ako za svaki vektor [ y]n1  0 važi y Ay  0.
T

Da li je ova matrica SPD?


 2  1 0
A   1 2  1
 0  1 1 

3
Kriterijum (a):

Data 3 3 matrica je simetrična zato što važi


aij  a ji
Dalje,
2 1
det( A22 )  30
det( A11 )  2  2  0 1 2
2 1 0
det( A33 )   1 2  1  1  0
Dakle, A je SPD.
0 1 1

4
Kriterijum (b): Za svaki dati vektor
 y1 
   
y  y2  0 , sračuna se
 
 y3 

skalar  y T Ay
2 1 0   y1 
  y1 y2 y3   1 2  1  y2 
 0  1 1   y3 

 2 y12  2 y1 y2  2 y22   y32  2 y2 y3 
  y1  y2   y12  y  y  2y y 
2 2 2
2 3 2 3

5
skalar   y1  y2   y   y2  y3   0
2 2 2
1

Dakle, matrica A je SPD.

6
Korak 1: Faktorizacija matrice A  U TU

 a11 a12 a13  u11 0 0  u11 u12 u13  (2)


a a22 a23   u12 u22 0   0 u22 u23 
 21    
 a31 a32 a33  u13 u23 u33   0 0 u33  (3)

Množeći dve matrice na desnoj strani (matrične) jednačine (3), dobijamo


sledećih 6 jednačina

a12 a13
u11  a11 u12  u13  (4)
u11 u11
a23  u12u13
 
1
 
1
u23  2 2 (5)
u22  a22  u12
2 2
u22
u33  a33  u 2
13  u23
7
1
 i 1
2 2
uii   aii   uki   (6)
 k 1 
i 1
aij   uki ukj
uij  k 1 (7)
uii
Korak 1.1: Računanje brojioca iz jednačine (7)
i 1
Sum  aij   uk iuk j
k 1

Korak 1.2: Ako je uij jedan element van dijagonale


Sum
(npr. i  j ) tada je uij 
uii
. Inače, ako je uij
dijagonalni element (tj. i  j ), onda je uii  Sum.
8
Na primer:

a57  u15u17  u25u27  u35u37  u45u47 (8)


u57 
u55

Tako da su nam za računanje u (i  5, j  7), potrebne


već izračunate vrednosti iz kolone # i ( 5)
i kolone # j ( 7) od U , redom.

9
Col. # i=5 Col. # j=7

uii u1 j
k=1
u 2i u2 j
k=2
u3i u3 j
k=3
u4i u4 j
k=4

i=5
u ii u ij

Slika 1: Čoleski faktorizacija – računanje elementa u ij

10
Korak 2: Rešavanje zamenom unapred

Zamenjujući jednačinu (2) u jednačinu (1), dobija se:


U TUx  b (9)
Definiše se:
Ux  y (10)
Tada jednačina (9) postaje:
UT y  b (11)

u11 0 0   y1   b1 
u    
u22 0   y2   b2  (12)
 12 
u13 u23 u33   y3  b3 
11
u11 y1  b1
b1 (13)
y1 
u11
Iz druge vrste jednačine (12), dobija se

u12 y1  u22 y2  b2
u12 y1 (14)
y2  b2 
Slično u22
b3  u13 y1  u23 y2 (15)
y3 
u33
12
Uopšteno, iz j -te vrste jednačine (12), za sledi:

j 1
b j   uij yi
b1 (16)
y1  , yj  i 1
, j 1
u11 u jj

13
Korak 3: Rešavanje zamenom unazad

Na osnovu jednačine (10), sada imamo:

u11 u12 u13   x1   y1 


0 u u23   x2    y2 
 22     (17)
 0 0 u33   x3   y3 

14
Iz poslednje vrste jednačine (17) imamo:

u33 x3  y3

Dakle, y3
x3  (18)
u33

Slično: y2  u23 x3
x2  (19)
u22

i y1  u12 x2  u13 x3 (20)


x1 
u11
15
Uopšteno:
n
yj  u
i  j 1
x
ji i
yn (21)
xj  , j  n, xn 
u jj unn

16
A  LDLT (22)

Na primer,

 a11 a12 a13   1 0 0 d11 0 0  1 l 21 l31 


a a23   l 21 1 0  0 d 22 0  0 1 l32 
 21 a22
 a31 a32 a33  l31 l32 1  0 0 d 33  0 0 1  (23)

Množeći tri matrice sa desne strane jednačine (23),


dobijamo sledeće formule za:
dijagonalnu matricu D i donju i gornju trougaonu
matricu L

17
j 1
d11  a11, d jj  a jj   l 2jk d kk , j  1 (24)
k 1

ai1  j 1
  1 
li1  , lij   aij   lik d kk l jk   , j 1 (25)
d11  k 1
 
  d jj 

18
Korak 1: Faktorizacija

A  LDLT
Korak 2: Rešavanje zamenom unapred i
dijagonalno skaliranje

Zamenjujući (22) u jednačinu (1), dobija se:

LDLT x  b (26)
Definiše se:

L x y
T

19
Definiše se takoĎe: Dy  z

d11 0 0   y1   z1 
0 d 0   y2    z 2 
 22     (29)
 0 0 d33   y3   z3 

yi 
zi
, za i  1,2,3, ......, n (30)
d ii
Jednačina (26) postaje:
Lz  b

20
1 0 0  z1   b1 
l 1 0  z2   b2  (31)
 21    
l31 l32 1  z3  b3 

i 1
z1  b1 , zi  bi   lik z k za i  2,3, ......, n (32)
k 1

21
Korak 3: Rešavanje zamenom unazad

1 l21 l31   x1   y1 
0 1 l   x    y 
 32   2   2 
0 0 1   x3   y3 

n
xn  y n , xi  yi  l
k i 1
x za i  n  1, ..., 1
ki k

22
Primer 1 (Čoleski algoritam)

Rešiti sistem linearnih jednačina

Ax  b

gde su
 2  1 0 1
A   1 2  1 b  0
 0  1 1  0

23

Rešenje: u11  a11 

 2 
 1.414 
Gornja trougaona matrica, 
u12 
a12 
U se može izračunati u11 

ili pomoću jednačina 1 
  vrsta 1 od U
(4-5) ili (6-7): 1.414 
 0.7071 

a 
u13  13
u11 

0 

1.414 
0 

24
1

 i 11

u22  a22   uki   
2
2

 k 1  

  
1
 2  u12  2
2

2 
 2   0.7071  
 1.225 
i 11

a23   uki ukj  vrsta 2 od U

u23  k 1

U 22 
 1  u12  u13 
 
1.225 
 1   0.7071 0 
 
1.225 
 0.8165 

25
1

 i 1 2
2
u33  a33   u ki   
2

 k 1  

 
1
 a33  u132  u 23
2 2  vrsta 3 U

 1  0    0.8165  
2 2


 0.5774 

Tako se dobija matrica U iz faktorizacije:

1.414  0.7071 0 
U   0 1.225  0.8165 
 0 0 0.5774 
26
Rešavanje zamenom unapred dato jednačinom (11),
glasi:
U y b
T

 1.414 0 0   y1  1
 0.7071 1.225 0   y2   0 
    
 0  0.8165 0.5774  y3  0

27
b1 1
y1    0.7071
u11 1.414
j 11
b2  u ij yi
0  u12  0.7071  y1  0.7071 
y2  i 1
  0.4082
u jj u22  1.225 
j 1 2
b3  u ij yi
y3  i 1
u jj
0  u13  0  y1  0.7071   u23  0.8165  y2  0.4082 

u33  0.5774 
 0.5774

28
Rešavanje zamenom unazad, dato jednačinom (10),
glasi:
Ux  y

1.414  0.7071 0   x1   0.7071


 0 1.225  0.8165  x2   0.4082
    
 0 0 0.5774   x3  0.5774

29
yj y3 0.5774
x3    1
u jj u33 0.5774
N 3
yj  u
i  j 13
x
ji i
y2  u 23 x3
x2  
u jj u22
0.4082   0.8165 1
 1
1.225

30
N 3
yj  u
i  j 1 2
x
ji i
y1  u12 x2  u13 x3
x1  
u jj u11
0.7071   0.7071 1  01
 1
1.414

Dakle, 1
x  1
1

31
Primer 2 ( LDLT algoritam)

Koristeći podatke iz Primera 1, naći nepoznati vektor


koristeći LDL algoritam?
T
x
Rešenje:
Faktorizacija matrica D i L se može izračunati na
osnovu jednačina (24) i (25), redom.

32

d11  a11 

2 
l11  1 (uvek !)

l21 
a21 
d11 

1 
  Kolona 1 of matrica D i L
2 
  0 .5 

a31 
l31 
d11 

0 

2 
0 

33
j 11

d 22  a22   l d kk 
2
jk
k 1

 2  l21
2
d11 

 2   0.5 2  
2

 1.5 

l22  1 (uvek !) 
 Kolona 2 matrica D i L
j 11

a32   l31d11l21 
l32  k 1 
d 22 

 1  0 2  0.5 

1.5 
 0.6667 

34
j 1 2

d 33  a33   l d kk2
jk 
k 1


 1  l31d11  l32d 22
2 2
 Kolona 3 matrica D i L

 1  0 2   0.6667  1.5
2 2

 0.3333 

35
Dakle
2 0 0 
D  0 1.5 0 
0 0 0.3333 

 1 0 0
L   0.5 1 0
 0  0.6667 1

36
Rešenje dobijeno zamenom unapred na osnovu
jednačine (31):
L z b

 1 0 0  z1  1
 0.5 1 0   z 2   0 
    
 0  0.667 1  z3  0
tj.
i 1
zi  bi   lik zk
k 1
37
Dakle
z1  b1  1
z2  b2  L21 z1
 0   0.51
 0 .5
z3  b3  L31 z1  L32 z2
 0  0 1   0.6667 0.5
 0.3333

38
Dijagonalno skaliranje, dato jednačinom (29):

Dy  z

2 0 0   y1   1 
 0 1 .5 0   y2    0.5 
    
0 0 0.3333  y3  0.3333

39
tj. zi
yi 
dii

Dakle
z1 1
y1    0 .5
d11 2
z2 0 .5
y2    0.3333
d 22 1 .5
z3 0.3333
y3   1
d33 0.3333

40
Zamena unazad na osnovu jednačine (27):

L x y
T

1  0.5 0   x1   0.5 
0 1  0.667  x2   0.333
    
0 0 1   x3   1 

N
xi  yi   lk ixk
k  i 1
41
Dakle x3  y3
1
x2  y2  l32 x3
 0.3333   0.6667   1
x2  1
x1  y1  l21 x2  l31 x3
x1  0.5   0.51  0 1
1
42
Dobija se
 x1  1
x   x2   1
 x3  1

43

You might also like