Você está na página 1de 7

Tpicos selectos de computacin

cientca I
Clculo de matriz inversa con
factorizacin cholesky y
factorizacin LU
Williams Antonio Pantoja Laces
1
,
Anglica Alejandra Serrano Rubio
2
,
Javier Garca Vieyra
3
123
Dpto. de Computacin,
CINVESTAV-IPN, Mxico, D.F, Mxico
{
1
wpantoja,
2
aserrano,
3
jgarcia}@computacion.cs.cinvestav.mx
2 de julio de 2014
Resumen
Invertir matrices es un problema clsico y que puede ser muy compli-
cado para matrices muy grandes. Hay muchas formas de simplicar esta
tarea para tipos especiales de matrices.Entre estas maneras existe la de
transformar la matriz en un conjunto de matrices superiores o inferiores,
en este documento se presentan dos de estos mtodos, especcamente
utilizando la factorizacin de cholesky y la otra utilizando la factorizacin
LU, los cuales pueden ayudarnos a ahorrar tiempo en la bsqueda de la
matriz inversa.
1. INTRODUCCIN
En algebra lineal la factorizacin de una matriz es la descomposicin de la
misma como producto de dos o mas matrices segn una forma cannica. Mien-
tras que la multiplicacin de matrices implica una sntesis de datos(combinando
el efecto de dos o mas transformaciones lineales en una sola matriz), la facto-
rizacin de matrices es un anlisis de datos. En el lenguaje de las ciencias de
la computacin, la expresin de A como un producto equivale a un preprocesa-
miento de los datos de A, el cual organiza esos datos en dos o ms partes cuyas
1
estructuras son ms tiles de algn modo, quiz por ser ms accesibles para
realizar clculos con ellas. La factorizacin de matrices es el centro de varios
programas de computadora usados ampliamente en aplicaciones, las factoriza-
ciones de matrices son un punto clave en el desarrollo de este documento, ya
que el documento se enfoca en encontrar la inversa de una matriz utilizando
dos de los mtodos existentes para la factorizacin de matrices, el primero es
la factorizacin LU, y el segundo la factorizacin de cholesky, en las siguientes
secciones se presenta el marco teorico con los principales conceptos y caracters-
ticas de estos mtodos, una seccin de experimentos con la implementacin de
los algoritmos necesarios para dichos mtodos y algunas conclusiones obtenidas
despus de realizar los experimentos.
2. MATERIALES Y MTODOS
En esta seccin se describen los materiales y los mtodos que se utilizaron
para la implementacin de los algoritmos necesarios para el clculo de la matriz
inversa por medio de la factorizacin LU y la factorizacin de cholesky.
2.1. Lenguaje C
C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchie en
los Laboratorios Bell como evolucin del anterior lenguaje B, a su vez basado
en BCPL. Al igual que B, es un lenguaje orientado a la implementacin de
Sistemas Operativos, concretamente Unix. C es apreciado por la eciencia del
cdigo que produce y es el lenguaje de programacin ms popular para crear
software de sistemas, aunque tambin se utiliza para crear aplicaciones. Se trata
de un lenguaje de tipos de datos estticos, dbilmente tipicado, de medio nivel
pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas
de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del
lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen
ofrecer extensiones al lenguaje que posibilitan mezclar cdigo en ensamblador
con cdigo C o acceder directamente a memoria o dispositivos perifricos.
2.2. Matrices
Una matriz es un arreglo bidimensional de nmeros (llamados entradas de
la matriz) ordenados en las (o renglones) y columnas, donde una la es cada
una de las lneas horizontales de la matriz y una columna es cada una de las
lneas verticales. A una matriz con n las y m columnas se le denomina matriz
n-por-m (escrito n m) donde n, m N {0}. El conjunto de las matrices
de tamao n m se representa como M
nm
(K), donde K es el campo al cual
pertenecen las entradas. El tamao de una matriz siempre se da con el nmero
de las primero y el nmero de columnas despus. Dos matrices se dice que
son iguales si tienen el mismo tamao y los mismos elementos en las mismas
posiciones.
2
A la entrada de una matriz que se encuentra en la la i-sima y la columna
j-sima se le llama entrada i, j o entrada (i, j)-simo de la matriz. En estas
expresiones tambin se consideran primero las las y despus las columnas.
Casi siempre se denotan a las matrices con letras maysculas mientras que
se utilizan las correspondientes letras en minsculas para denotar las entradas
de las mismas. Por ejemplo, al elemento de una matriz A de tamao n m
que se encuentra en la la i-sima y la columna j-sima se le denota como a
ij
,
donde 1 i ny1 j m. Cuando se va a representar explcitamente una
entrada la cul est indexada con un i o un j con dos cifras se introduce una
coma entre el ndice de las y de columnas. As por ejemplo, la entrada que est
en la primera la y la segunda columna de la matriz A de tamao 50 100 se
representa como a
1,2
mientras que la entrada que est en la la nmero 23 y la
columna 100 se representa como a
23,100
.
2.3. Factorizacin de Cholesky
En matemticas, la factorizacin o descomposicin de Cholesky toma su
nombre del matemtico Andr-Louis Cholesky, quien encontr que una ma-
triz simtrica denida positiva puede ser descompuesta como el producto de
una matriz triangular inferior y la traspuesta de la matriz triangular inferior.
La matriz triangular inferior es el tringulo de Cholesky de la matriz original
positiva denida. El resultado de Cholesky ha sido extendido a matrices con en-
tradas complejas. Es una manera de resolver sistemas de ecuaciones matriciales
y se deriva de la factorizacin LU con una pequea variacin.
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 factorizacin LU. Sin embargo, si A es simtrica y
denida positiva, se pueden escoger los factores tales que U es la transpuesta
de L, y esto se llama la descomposicin o factorizacin de Cholesky. Tanto
la descomposicin LU como la descomposicin de Cholesky son usadas para
resolver sistemas de ecuaciones lineales. Cuando es aplicable, la descomposicin
de Cholesky es dos veces ms eciente que la descomposicin LU.
En general, si A es Hermitiana y denida positiva, entonces A puede ser
descompuesta como
A = LL

,
donde L es una matriz triangular inferior con entradas diagonales estric-
tamente positivas y L representa la conjugada traspuesta de L. Esta es la
descomposicin de Cholesky.
Para encontrar la factorizacin , bastara ver la forma de L y observar las
ecuaciones que el producto derecho nos conduce al igualar elementos:
3
_

_
a
11
a
12
a
1n
a
21
a
22
a
2n
a
31
a
32
.
.
. a
3n
.
.
.
.
.
.
.
.
.
.
.
.
a
n1
a
n2
a
nn
_

_
=
_

_
l
11
0 0
l
21
l
22
0
l
31
l
32
.
.
. 0
.
.
.
.
.
.
.
.
.
.
.
.
l
n1
l
n2
0
_

_
_

_
l
11
l
21
l
n1
0 l
22
l
n2
0 0
.
.
. l
n3
.
.
.
.
.
.
.
.
.
.
.
.
0 0 l
nn
_

_
as obtendramos que:
a
11
= l
2
11
l
11
=

2
a
21
= l
21
l
11
a
21
/l
11
, ...l
n1
= a
n1
/l
11
a
22
= l
2
21
+l
2
22
l
2
2 =
_
(a
22
a
2
21
)
a
32
= l
31
l
21
+l
32
l
22
l
32
= (a
32
l31l21)l
22
, etc
y de manera general, para i = 1, ..., n y j = i + 1, ...n :
l
ii
=

_
_
a
ii

i1

k=1
l
2
i
k
_
l
ji
=
_
aji
i1

k=1
l
jk
l
ik
_
/l
ii
Ahora bien, ya que A es simtrica y denida positiva, podemos asegurar
que los elementos sobre la diagonal de L son positivos y los restantes elementos
reales desde luego.
2.4. Factorizacin LU
En el lgebra lineal, la factorizacin o descomposicin LU (del ingls Lower-
Upper) es una forma de factorizacin de una matriz como el producto de una
matriz triangular inferior y una superior. Debido a la inestabilidad de este mto-
do, deben tenerse en cuenta algunos casos especiales, por ejemplo, si uno o varios
elemento de la diagonal principal de la matriz a factorizar es cero, es necesario
premultiplicar la matriz por una o varias matrices elementales de permutacin.
Mtodo llamado factorizacin PA = LU o LU con pivote. Esta descomposi-
cin se usa en el anlisis numrico para resolver sistemas de ecuaciones (ms
ecientemente) o encontrar las matrices inversas.
Sea A una matriz no singular (si lo fuera, entonces la descomposicin podra
no ser nica)
A = LU, donde L y U son matrices inferiores y superiores triangulares
respectivamente.
Para matrices 3 3, esto es:
4
_
_
a
11
a
12
a
13
a
21
a
22
a
23
a
31
a
32
a
33
_
_
=
_
_
1 0 0
l
21
1 0
l
31
l
32
1
_
_
_
_
u
11
u
12
u
13
0 u
22
u
23
0 0 u
33
_
_
2.5. Matriz Inversa
Se dice que una matriz cuadrada A es inversible, si existe una matriz B con
la propiedad de que:
A B = B A = I
siendo I la matriz identidad.
Se denomina a B la matriz inversa de A y se denota por A
1
. Una matriz se
dice que es inversible o regular si posee inversa, en caso contrario se dice que
es ssingular o degenerada. Una matriz es singular si y solo si su determinante
es nulo.
2.6. Sustitucin hacia atrs(Back-substitution)
2.7. Algoritmos
En esta seccin se presentan los algoritmos utilizados para la implementa-
cin del algoritmo para el cclulo de la matriz inversa utilizando la factorizacin
LU y factorizacin de cholesky.
2.7.1. Algoritmo de Tridiagonalizacin
Para la parte de tridiagonalizacin de matrices se utiliz el algoritmo que se
presenta en el Algoritmo 1, el cual recibe como entrada la matriz con la cual se
operara A de tamao N N y un valor h el cual, es el valor de discretizacin
y determina la granularidad.
2.7.2. Algoritmo Factorizacin LU
Tambin se utiliz un algoritmo para la factorizacin LU despus de tener
la matriz tridiagonal, este algoritmo es el que se muestra en el Algoritmo 2, el
cual recibe como entrada la matriz obtenida el algoritmo de tridiagonalizacin
de tamao N y como salida devuelve las matrices L y U
5
Algoritmo 1 Tridiagonalizar matriz
1: para i = 1 hasta N hacer
2: para j = 1 hasta N hacer
3: si i == j && i == 0 entonces
4: A[i][j] = 2/h
2
5: A[i][j + 1] = 1/h
2
6: j = j + 1
7: si no, si i == j && i == N 1 entonces
8: A[i][j] = 2/h
2
9: A[i][j 1] = 1/h
2
10: si no, si i == j entonces
11: A[i][j] = 2/h
2
12: A[i][j 1] = A[i][j + 1] = 1/h
2
13: j + +
14: si no
15: A[i][j] = 0
16: n si
17: n para
18: n para
Algoritmo 2 Factorizacin LU
1: para k = 1 hasta N hacer
2: Especicar un valor para l
ii
o u
kk
3: Calcular el otro termino mediante
4: l
kk
u
kk
= a
kk

k1
s=1
l
ks
u
sk
5: para j = k + 1 hasta N hacer
6: u
kj

_
a
kj

k1
s=1
l
ks
u
sk
_
/l
kk
7: n para
8: para i = k + 1 hasta N hacer
9: l
jk

_
a
ik

k1
s=1
l
is
u
sk
_
/l
kk
10: n para
11: n para
6
2.7.3. Algoritmo de multiplicacin de matrices
2.7.4. Principal
En algoritmo principal es el que se muestra en el Algoritmo 4, en donde
primero recibe como entrada la matriz que se quiere diagonalizar, y de la cual
se tiene que encontrar el espectro (los valores propios), primero se tridiagonaliza
la matriz, para despus hacer la factorizacin LU, teniendo la factorizacin
LU se hace la multiplicacin UL, se verica si la matriz es diagonal, de ser
asi, naliza el algoritmo, en caso contrario se sigue iterando hasta conseguir la
diagonalizacin.
Algoritmo 3 Diagonalizacin iterativa LU
1: Entrada: A R
nn
Salida: D R
nn
2: D A
3: mientras D no sea diagonal hacer
4: D LU
5: D UL
6: n mientras
7: Regresa D
3. RESULTADOS
4. CONCLUSIONES
5. REFERENCIAS
1. Evguenii Kurmyshev, Fundamentos de mtodos matemticos para fsica
e ingeniera, 4ta Edicin, Editorial Limusa, 2009.
2. C.Cerjan,Numerical Grid Methods and Their Application to Schrdin-
gers Equation,Ed. Springer, 1993.
3. Valor y Vector Propio. En Wikipedia, recuperado el 12 de junio de 2014.
http://es.wikipedia.org/wiki/Vector_propio_y_valor_propio
4. Matriz Diagonal. En Wikipedia recuperado el 12 de junio de 2014.
http://es.wikipedia.org/wiki/Matriz_diagonal
5. Matriz Diagonalizable. En Wikipedia recuperado el 12 de junio de 2014.
http://es.wikipedia.org/wiki/Matriz_diagonalizable
7

Você também pode gostar