Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CHIMBORAZO
FACULTAD DE MECÁNICA
CARRERA DE INGENIERÍA INDUSTRIAL
MÉTODOS NUMÉRICOS
TRABAJO DE INVESTIGACIÓN
Tema:
MÉTODOS DE DOOLITLE Y CHOLESKY
Integrantes:
María José Guamanquispe
Carlos Paca
Mateo Moreno
Francisco Villacis
Docente:
Ing. German Moreno
Periodo académico:
SEPTIEMBRE 2019 – FEBRERO 2020
MÉTODO DE DOOLITTLE
En álgebra lineal, se conoce por factorización LU de matrices al proceso que a partir de una
matriz cuadrada A halla dos matrices triangulares inferior y superior, tal que A=LUA=LU,
donde es la matriz triangular inferior (L de lower) y U
es la matriz triangular superior (U de upper). Existen muchos métodos numéricos para obtener
estas matrices L y U, y su obtención tiene aplicaciones en la resolución de sistemas lineales,
cálculo de determinantes y en el cálculo de matrices inversas. En este artículo estudiamos el
método de Doolittle para obtener estas matrices. Este método tiene la particularidad que hace
que la diagonal de la matriz L sea unitaria.
Ejemplo.
Factorización LU de matrices cuadradas Antes de comenzar a ver este tema convendría hacer
un repaso de las nociones de matrices:
Operaciones con matrices (Suma de matrices, producto por un escalar).
Matrices cuadradas, matriz inversa de una matriz.
Matriz fila, matriz columna.
Matriz diagonal, matriz triangular.
En concreto, sobre este último aspecto tenemos:
a) Matriz diagonal:
0 0 u33 u34
0 0 0 u44
1 0 0 0 6 2 1 1
l 1 0 0 2 4 1 0
L 21 =A
l31 l32 1 0 1 1 4 1
l l l 1 1 0 1 3
41 42 43
ALGORITMO DE FACTORIZACIÓN DE DOOLITTLE.
3. En los elementos que requieren calcular un sumatorio, estos se han calculado antes por claridad,
aunque podría haberse incluido el sumatorio en la misma linea.
for k=2:n
for j=k:n
suma=L(k , 1:k-1)*U(1:k-1 , j);
U(k,j)=A(k,j)-suma;
end
L(k,k)=1;
for i=k+1:n
suma=L(i , 1:k-1)*U(1:k-1 , k);
L(i,k)=(A(i,k)-suma) / U(k,k);
end
end
El objetivo del método es encontrar una solución a un sistema de ecuaciones lineales, basado en
la factorización LU de la matriz de coeficientes relacionada al sistema.
GENERALIDADES
Para este método de factorización directa de matrices, se utiliza como fundamento que los valores de la
diagonal de la matriz U son iguales a los de la matriz L, ósea Ukk=Lkk.
Se debe construir una matriz de coeficientes y el vector con los términos independientes,
correspondientes al sistema, y se toman como valores iniciales para poder calcular la factorización.
Tomando la matriz de coeficientes, y bajo el fundamento principal del método, se procese al cálculo de
las matrices L y U, correspondientes a la factorización de A.
Una vez realizada la factorización, se toma la matriz de la factorización U y el vector x y se procede a
calcular el vector z.
Ahora con el vector z, el vector de términos independientes y la matriz L de la factorización, se procede
a resolver el sistema Lz=b
Una matriz cuadrada triangular superior: Matriz cuadrada que sólo tiene ceros debajo de
la diagonal principal.
Una matriz cuadrada triangular inferior: Matriz que sólo tiene ceros por encima de la
diagonal principal.
La utilidad de la descomposición de cholesky sirve para resolver un sistema de ecuaciones .Se
puede comprobar que, si A es una matriz simétrica y definida positiva, admite una descomposición en
la forma LU con U = LT , es decir,
A = LLT.
EJEMPLO
𝑋1 + 2𝑋2 + 3𝑋3 = 0
2𝑋1 + 8𝑋2 + 4𝑋3 = 1
𝐴 = 𝐿𝑈 = 𝐿𝐿𝑡
1 2 3 1 0 0 1 2 3
[2 8 4 ] = [2 2 0] [0 2 −1]
3 4 11 3 −1 1 0 0 1
L*Y=b
1 0 0 𝑦1 0
[2 2 𝑦
0] [ 2 ] = [1]
3 −1 1 𝑦3 0
𝑦1 = 0
2𝑦1 + 2𝑦2 = 1
3𝑦1 − 𝑦2 +𝑦3 = 0
Despejando obtenemos:
𝑦1 = 0;
1
𝑦2 = ;
2
1
𝑦3 = ;
2
𝐿𝑡 ∗ 𝑋 = 𝑌
0
1 2 3 𝑥1 1
[0 2 −1] [𝑥2 ] = 2
0 0 1 𝑥3 1
[2]
𝑥1 − 2𝑥2 +3𝑥3 = 0
1
2𝑥1 − 𝑥2 =
2
1
𝑥3 =
2
Despejando obtenemos:
5
𝑥1 = − ;
2
1
𝑥2 = ;
2
1
𝑥3 = ;
2
Implementación del código en Matlab
% FACTORIZACION lU CHOLESKY
clc %permite borrar el area de trabajo
clear %permite borrar las variables almacenadas
format long %permite utilizar la maxima capacidad de la maquina
fprintf(' FACTORIZACION LU CHOLESKY\n\n\n');
%fprintf me permite ingresar comentarios de manera textual que pueden
%orientar al usuario en el uso del programa
%input es un comando de solicitud de entrada de datos del usuario.
A=input('Ingrese la matriz A = \n');
b=input('\nIngrese el vector b, correspondite a los terminos independientes
b=\n');
% Las matrices A y b deben ser ingresadas entre corchetes separando las
%columnas mediante coma ',' y las filas mediante punto y coma ';'.
[n,m]=size(A);
C=[A,b];
% la matriz C, representa la forma de la matriz aumentada [Ab]
disp(C)
if n==m
for k=1:n
%La instrucción iterativa for permite repetir estamentos a un
%numero específico de veces
suma1=0;
for p=1:k-1
suma1=suma1+L(k,p)*u(p,k);
end
L(k,k)=sqrt(A(k,k)-suma1);
u(k,k)=L(k,k); %princio del metodo
for i=k+1:n
suma2=0;
for q=1:k-1
suma2=suma2+L(i,q)*u(q,k);
end
L(i,k)=(A(i,k)-suma2)/L(k,k); %obtencion de la matriz L
end
for j=k+1:n
suma3=0;
for r=1:k-1
suma3=suma3+L(k,r)*u(r,j);
end
u(k,j)=(A(k,j)-suma3)/L(k,k); %obtencion de la matriz U
end
end
producto=det(L)*det(u) %calculo del determinante
if producto~=0
for i=1:n
suma=0;
for p=1:i-1
suma=suma+L(i,p)*z(p);
end
z(i)=(b(i)-suma)/L(i,i); %obtencion del vector Z
end
for i=n:-1:1
suma=0;
for p=i+1:n
suma = suma+u(i,p)*x(p);
end
x(i)=(z(i)-suma)/u(i,i); % solcion, calculos de las variables
end
else
fprintf('\nEl determinante es igual a cero, por lo tanto el sistema tiene
infinita o ninguna solucion\n')
end
end
fprintf('\n Matriz Ab:\n')
disp(C)
fprintf('\n Matriz L:\n')
disp(L)
fprintf('\n Matriz U:\n')
disp(u)
fprintf('\n El vector Z:\n')
disp(z)
fprintf('\n\nLa solucion de X1 hasta Xn es:\n');
%a continuacion de utiliza una instruccion for, para mostrar el usuario,
%los resultados de una manera mas ordenada
for i=1:n
xi=x(1,i);
fprintf('\nX%g=',i)
disp(xi);
end
Bibliografía
Nieves, A. (2006). Metoso Numericos Aplicados A La Ingenieria . Mexico: Compalia editorial
continental.
CHAPRA, Steven C., et al. Métodos numéricos para ingenieros. México: McGraw-Hill, 2007.
Federico, D. S. C., & Antonio, N. H. (2014). Métodos numéricos aplicados a la ingeniería. Grupo
Editorial Patria.