Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Cualquier matriz cuadrada A con pivotes no nulos puede ser escrita como el producto de una matriz
triangular inferior L y una matriz triangular superior U; esto recibe el nombre de factorización LU.
Sin embargo, si A es simétrica y definida positiva, se pueden escoger los factores tales que U es la
transpuesta de L, y esto se llama descomposición o factorización de Cholesky. Tanto la
descomposición LU como la descomposición de Cholesky son usadas para resolver sistemas de
ecuaciones lineales. Cuando es aplicable, la descomposición de Cholesky es dos veces más eficiente
que la descomposición LU.
Para dar uso a esta descomposición tenemos la matriz de coeficientes de un sistema de ecuaciones,
la llamamos A, comprobamos que esta matriz sea simétrica, porque de lo contrario no es
factorizable por Cholesky. Cuando A es simétrica podemos tratar de factorizarla en la forma 𝐴 =
𝐿∗ 𝐿(𝑡), 𝐿(𝑡) lo cual quiere decir que la matriz L fue transpuesta, cuando la tenemos factorizada ya
podemos resolver el sistema de ecuaciones.
Una condición necesaria y suficiente para que una matriz A admita factorización de Cholesky es que
sea simétrica y definida positiva.
DEFINICIÓN:
𝐴 = 𝐿𝐿∗
Donde L es una matriz inferior con entradas diagonales estrictamente positivas y L * representa la
conjugada traspuesta de L. Esta es la descomposición de Cholesky.
La descomposición de Cholesky es: dada una matriz Ermitaña positiva definida A, hay una única
matriz triangular inferior L con entradas diagonales estrictamente positivas tales que A = LL*. El
recíproco se tiene trivialmente: si A se puede escribir como LL* para alguna matriz invertible L,
triangular inferior o no, entonces A es Ermitaña y definida positiva.
El requisito de que L tenga entradas diagonales estrictamente positivas puede extenderse para el
caso de la descomposición en el caso de ser semi-definida positiva. La proposición se lee ahora: una
matriz cuadrada A tiene una descomposición de Cholesky si y sólo si A es Ermitaña y semi-definida
positiva. Las factorizaciones de Cholesky para matrices semi-definidas positivas no son únicas en
general.
En el caso especial que A es una matriz positiva definida con entradas reales, L se puede asumir
también con entradas reales. Una matriz D diagonal con entradas positivas en la diagonal (valores
propios de A), es factorizable como 𝐷 = √𝐷√𝐷, donde √𝐷 es una matriz cuya diagonal consiste en
la raíz cuadrada de cada elemento de D, que tomamos como positivos, asi:
𝑡
𝐴 = 𝐿𝑈 = 𝐿𝐷𝑈0 = 𝐿𝐷𝐿𝑡 = 𝐿(√𝐷√𝐷)𝐿𝑡 = (𝐿√𝐷)(√𝐷𝐿𝑡 ) = (𝐿√𝐷)(𝐿√𝐷) = 𝐾𝐾 𝑡
La factorización puede ser calculada directamente a través de las siguientes formulas (en este caso
se realizó la factorización superior 𝐴 = 𝑈 𝑇 ∗ 𝑈):
𝑎𝑖𝑖 −∑𝑖−1 2
𝑘=1 𝑢𝑖𝑘
𝑢𝑖𝑖2 = 𝑎𝑖𝑖 − ∑𝑖−1 2
𝑘=1 𝑢𝑖𝑘 Para los elementos de la diagonal principal, y 𝑢𝑖𝑗 = 𝑢𝑗𝑗
para el resto
de los elementos donde uij son los elementos de la matriz U.
APLICACIÓN:
Observamos que la matriz A no es simétrica, luego debemos pre multiplicar el sistema por
la matriz AT, es decir, (ATA) x= (ATb), obteniendo de esta forma un sistema simétrico definido
positiva, que puede ser resulto usando Cholesky.
2 1 0 2 −1 1 5 −3 4
𝐴′ = 𝐴𝑇 𝐴 = (−1 −1 1 ) (1 −1 2 ) = (−3 3 4)
1 2 −1 0 1 −1 4 −4 6
2 1 0 0 1
𝑏 ′ = 𝐴𝑇 𝑏 = (−1 −1 1 ) ( 1 ) = (−2)
1 2 −1 −1 3
Recordemos que las fórmulas para obtener la factorización de Cholesky son:
𝑙11 = √𝑎11
𝑙𝑖𝑖 = √𝑎11 − ∑𝑖−1 2
𝑘=1 𝑙𝑖𝑘 , 𝑖 = 2, … .. , n
𝑎𝑖1
𝑙𝑖1 =
𝑙11
𝑗−1
𝑎𝑖𝑗 − ∑𝑘=1 𝑙𝑖𝑘 𝑙𝑗𝑘
𝑙𝑖𝑗 = , 𝑗 = 2, , 𝑖 − 1
𝑙𝑗𝑗
𝑙11 0 0
Calculemos la matriz 𝐿 = (𝑙21 𝑙22 0)
𝑙31 𝑙32 𝑙33
𝑙11 = √𝑎11 = √5
𝑎21 −3
𝑙21 = =
𝑙11 √5
2−1 1
2 2 2
9 √6
𝑙22 = √𝑎22 − ∑ 𝑙2𝑘 = √𝑎22 − ∑ 𝑙2𝑘 = √𝑎22 − 𝑙21 = √3 − =
5 √5
𝐾=1 𝑘=1
𝑎31 4
𝑙31 = =
𝑙11 √5
4 −3 12 8
−4 −
𝑙32 =
𝑎32 − ∑2−1
𝑘=1 𝑙3𝑘 𝑙2𝑘
=
𝑎32 − 𝑙31 𝑙21
= √5 √5 = −4 + 5 = − 5 = −8
𝑙22 𝑙22 √6 √6 √6 √30
√5 √5 √5
3−1 2
2 2 2
16 64 2
𝑙33 = √𝑎33 − ∑ 𝑙3𝑘 = √𝑎33 − ∑ 𝑙3𝑘 = √𝑎33 − 𝑙32 = √6 − − =√
5 30 3
𝑘=1 𝑘=1
√5 0 0
𝑙11 0 0 −3 √6
0
∴ 𝐿 = (𝑙21 𝑙22 0)= √5 √5
𝑙31 𝑙32 𝑙32 4 −8 √2
( √5 √30 √3)
Obtenida la descomposicion A’=LLT, el sistema original A’x=b’ se transforma en:
𝑦=𝐿𝑇 𝑥
𝐴′ 𝑥 = 𝑏 ′ ⟹ (𝐿𝑙 𝑇 )𝑥 = 𝑏 ′ ⟹ 𝐿(𝐿𝑇 𝑥) = 𝑏 ′ ⟹ 𝐿𝑦 = 𝑏′
Es decir, debemos resolver en primer lugar el sistema Ly=b’, y luego de calculado el vector y se
resuelve el sistema LTx=y.
Para calcular el vector solución del sistema Ly=b’ se ocupan las formulas:
𝑏′ 1
𝑦1 = 𝑙 1 ; 𝑦𝑘 = 𝑙 [𝑏′𝑘 − ∑𝑘−1
𝑗=1 𝑙𝑘𝑗 𝑦𝑗 ], 𝑘 = 2,3, . . , 𝑛
11 𝑘𝑘
En el ejercicio se tiene
1
𝑦33 √6 1
𝑥3 = = =
𝑙33 √2 2
√3
3
1 1 7√5 −8 1 1
𝑥2 = [𝑦2 − ∑ 𝑙𝑗2 𝑥𝑗 ] = (− − )=−
𝑙22 √6 5√6 √30 2 2
𝑗=2+1
√5
3
1 1 1 −3 −1 1
𝑥1 = [𝑦1 − ∑ 𝑙𝑗1 𝑥𝑗 ] = ( − )=−
𝑙11 √5 √5 √5 2 2
𝑗=1+1
1
−
2
𝑥1 1
∴ 𝑥 = (𝑥2) = −
𝑥3 2
1
( 2 )
ALGORITMO DEL PROGRAMA:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int cholesky(double **orig, int n, double **aug, int mcol,double **chol, double **cholaug, int ofs)
/*
Do the augmented cholesky decomposition as described in FA Graybill
(1976) Theory and Application of the Linear Model. The original matrix
must be symmetric positive definite. The augmentation matrix, or
series of column vectors, are multiplied by C^-t, where C is the
upper triangular cholesky matrix, ie C^t * C = M and M is the original
matrix. Returns with a value of 0 if M is a non-positive definite
matrix. Returns with a value of 1 with succesful completion.
Arguments:
return retval;
}