Académique Documents
Professionnel Documents
Culture Documents
M. Audelo
Mtodo de Choleski
Sea A = (ai,j ) Mnn [R] una matriz simtrica, denida positiva, b T = (b1 , b2 , ...bn ) Rn . Se considera el
A
x = b
(1)
Por ser la matriz A simtrica, denida positiva, A es no singular y en consecuencia la Ec. 1 admite una nica
solucin
x Rn . Por otra parte, existe una matriz L = (li,j ) Mnn [R] triangular inferior tal que:
A = LLT
(2)
L
y = b
T
L x =
y
(3)
ai,j =
i, j = 1, ..., n
(4)
k=1
t
t
donde LT = (li,j
) y li,j
= lj,i para i, j = 1, ..., n.
La igualdad representada en la Ec. 4 as como la denicin de la matriz triangular inferior L = (li,j ) sern
utilizadas sucesivamente para construir cada columna de la matriz L.
Primera columna: j = 1
Se tiene
n
n
t
li,k lk,1
=
ai,1 =
k=1
li,k l1,k = li,1 l1,1 + li,2 l1,2 + li,3 l1,3 + ... + li,n l1,n = li,1 l1,1
i = 1, ..., n
k=1
i = 1, ..., n
Para i = 1, se tiene
2
a1,1 = l1,1 l1,1 = l1,1
l1,1 =
a1,1
(5)
ai,1
l1,1
(6)
Segunda columna: j = 2
Se tiene
n
n
t
li,k lk,2
=
ai,2 =
k=1
li,k l2,k = li,1 l2,1 + li,2 l2,2 + li,3 l2,3 + ... + li,n l2,n = li,1 l2,1 + li,2 l2,2
k=1
i = 2, ..., n
Mtodos Numricos
M. Audelo
Los elementos li,1 para i = 1, ...n son calculados en la etapa precedente. Debemos calcular li,2 para i = 2, ...n
Para i = 2, se tiene
2
2
+ l2,2
a2,2 = l2,1 l2,1 + l2,2 l2,2 = l2,1
2
a2,2 l2,1
(7)
(8)
l2,2 =
Y para i = 3, ..., n
li,2 =
n
t
li,k lk,j
ai,j =
k=1
li,k lj,k
i = j, ..., n
k=1
Note que
li,j+1 = li,j+2 = ... = li,n = 0
Para i = j se tiene
j
aj,j =
j1
j1
2
lj,k
+ lj,j lj,j =
lj,k lj,k =
k=1
k=1
2
2
lj,k
+ lj,j
k=1
De donde
j1
lj,j =
aj,j
2
lj,k
k=1
ai,j =
con lo cual
j1
li,j =
ai,j
lj,j
j1
li,k lj,k
k=1
2
lj,k
, luego lj,j > 0. Adems lj,j
(9)
Hacemos notar que en la prctica, dada una matriz simtrica A, el algoritmo de Choleski permite identicar
si A es denida positiva o no, por lo que en cada etapa del algoritmo de Choleski se verica si
j1
aj,j
2
lj,k
>0
k=1
Mtodos Numricos
1.1
M. Audelo
ENTRADA n Z+ , A = (aij )
SALIDA Mensaje 1: "La matriz no es simtrica", Mensaje 2: "La matriz A no es definida positiva",
L = (li,j ),
x T = (x1 , x2 , ..., xn )
1. Verificar que la matriz A es simtrica
2. Si a11 > 0, entonces
l11 = a11
Caso contrario, continuar en 6
3. Para i = 1, ..., n
i1
li1 = al11
4. Para j = 2, ..., n
s=0
Para k = 1, ..., j 1
s = s + ljk ljk
Si ajj s > 0 entonces
ljj = ajj s
caso contrario, continuar en 6
Para i = j + 1, ..., n
s=0
Para k = 1, ..., j 1
s = s + lik ljk
lij = aijljjs
5. Escribir L = (lij )
6. Escribir mensaje 2: "La matriz no es definida positiva"
7. Fin
Nota: Para j = n, se tiene
n
n
t
li,k lk,n
=
ai,n =
k=1
n1
li,k ln,k =
k=1
y para i = n
n1
an,n =
n1
2
2
ln,k
+ ln,n
k=1
n1
ln,n =
an,n
2
ln,k
k=1
1.2
T
3. Resolver el sistema de ecuaciones L x =
y
T
4. Escribir la solucin x = (x1 , x2 , ..., xn ). Continuar en 6
5. Escribir mensaje: "A no es simtrica, definida positiva"
6. Fin
Mtodos Numricos
1.3
M. Audelo
Programa en Matlab
Mtodos Numricos
M. Audelo
end
else
disp(La matriz A no es simtrica)
aux=1;
end
% Resuelve el sistema de ecuaciones
if aux==0
%Sustitucin hacia adelante Ly=b
y(1)=b(1)/l(1,1);
for i=2:n
sum=b(i);
for j=1:i-1
sum=sum-l(i,j)*y(j);
end
y(i)=sum/l(i,i);
end
%Sustitucin hacia atras LT x=y
x(n)=y(n)/l(n,n);
for i=n-1:-1:1
sum=y(i);
for j=i+1:n
sum=sum-l(j,i)*x(j);
end
x(i)=sum/l(i,i);
end
l
fprintf(La Solucin es:);
x
end
1 1 2 3
3
1 2 4 1
2
A=
b =
2 4 9 2 ,
3
3 1 2 14
11
Solucin 2 Apliquemos el mtodo de Choleski. Observamos primeramente que la matriz A es simtrica,
esto es A = AT
Pasemos al algoritmo de factorizacin de Choleski
Etapa 1 (j = 1)
l11 =
Para i = 2, 3, 4 : li1 =
a11 = 1 = 1
ai1
l11
l21
l31
l41
a21
1
= =1
l11
1
a31
2
= =2
l11
1
a41
3
= =3
l11
1
Etapa 2 (j = 2)
Mtodos Numricos
M. Audelo
2 =
a22 l21
l22 =
Para i = 3, 4 : li2 =
21 = 1
l32
l42
Etapa 3 (j = 3)
l33 =
Para i = 4 : li3 =
2 l2 =
a33 l31
32
944=1
l43 =
Etapa 4 (j = 4)
l44 =
2 l2 l 2 =
a44 l41
42
43
14 9 4 0 = 1
En consecuencia
1 0
1 1
L=
2 2
3 2
0
0
1
0
0
LT =
0
0
0
0
,
0
1
1
1
0
0
2 3
2 2
1 0
0 1
L
y = b
LT
x =
y
El sistema de ecuaciones L
y = b es el siguiente:
y1
y1 + y2
2y1 + 2y2 + y3
3y1 2y2
cuya solucin es
y T = (3, 1, 1, 0)
El sistema de ecuaciones LT
x =
y es el siguiente:
cuya solucin es
x T = (4, 1, 1, 0)
+ y4
x + x2 + 2x3 + 3x4
1
x2 + 2x3 2x4
x3
x4
=3
=2
=3
= 11
=3
= 1
= 1
=0