Está en la página 1de 46

MÉTODOS NUMÉRICOS APLICADOS A LA

INGENIERÍA CIVIL

Juliana Ramirez C.
jramirezca@unal.edu.co
Docente
Universidad Nacional de Colombia
Sede Manizales
ELIMINACIÓN DE GAUSS COMO FACTORIZACIÓN LU

Aunque puede parecer que su valor nominal no está relacionado con la


factorización LU, la eliminación de Gauss se puede utilizar para descomponer [A]
en [L] y [U]. Esto se puede ver fácilmente para [U], que es un producto directo de
la eliminación hacia adelante. Recuerde que el paso de eliminación directa está
destinado a reducir la matriz de coeficientes original [A] a la forma

que está en el formato triangular superior deseado.


Aunque puede no ser tan evidente, la matriz [L] también se produce durante el
paso. Esto puede ilustrarse fácilmente para un sistema de tres ecuaciones,

El primer paso en la eliminación de Gauss es multiplicar la fila 1 por el factor


y resta el resultado de la segunda fila para eliminar 𝑎21 . Del mismo modo, la fila 1
se multiplica por

y el resultado se resta de la tercera fila para eliminar 𝑎31 . El paso final es


multiplicar la segunda fila modificada por


y reste el resultado de la tercera fila para eliminar 𝑎31 .
Ahora suponga que simplemente realizamos todas estas manipulaciones en la
matriz [A]. Claramente, si no queremos cambiar las ecuaciones, también tenemos
que hacer lo mismo en el lado derecho {b}. Pero no hay absolutamente ninguna
razón para que tengamos que realizar las manipulaciones simultáneamente. Por lo
tanto, podríamos guardar las f 's y manipular {b} más tarde.
¿Dónde almacenamos los factores 𝑓21 , 𝑓31 , 𝑓32 ? Recuerde que toda la idea
detrás de la eliminación era crear ceros en 𝑎21 , 𝑎31 , 𝑎32 . Por lo tanto, podemos
almacenar 𝑓21 en 𝑎21 , 𝑓31 en 𝑎31 y 𝑓32 en 𝑎32 . Después de la eliminación, la
matriz [A] puede escribirse como

Esta matriz, de hecho, representa un almacenamiento eficiente de la


factorización LU de [A],
donde

El siguiente ejemplo confirma que [A] = [L] [U].


Factorización LU con eliminación de Gauss

Planteamiento del problema. Realice una factorización LU basada en la eliminación


de Gauss realizada previamente.
Solución. En el ejemplo anterior, utilizamos la eliminación de Gauss para resolver un
conjunto de ecuaciones algebraicas lineales que tenían la siguiente matriz de
coeficientes:

Después de la eliminación hacia adelante, se obtuvo la siguiente matriz triangular


superior:
Los factores empleados para obtener la matriz triangular superior pueden
ensamblarse en una matriz triangular inferior. Los elementos 𝑎21 y 𝑎31 se
eliminaron utilizando los factores:

y el elemento 𝑎32 fue eliminado usando el factor


Por lo tanto, la matriz triangular inferior es

En consecuencia, la factorización LU es
Este resultado se puede verificar realizando la multiplicación de [L] [U] para
obtener

donde las pequeñas discrepancias se deben cifras redondeadas.


Después de descomponer la matriz, se puede generar una solución para un
vector particular del lado derecho {b}. Esto se hace en dos pasos. Primero, se
ejecuta un paso de sustitución hacia adelante resolviendo la ecuación. (10.8)
para {d}. Es importante reconocer que esto simplemente equivale a realizar las
manipulaciones de eliminación en {b}. Por lo tanto, al final de este paso, el lado
derecho estará en el mismo estado que habría estado si hubiéramos realizado la
manipulación hacia adelante en [A] y {b} simultáneamente.
El paso de sustitución hacia adelante se puede representar de forma concisa
como
El segundo paso simplemente equivale a implementar la sustitución hacia atrás
para resolver la ecuación (10.3). Nuevamente, es importante reconocer que
esto es idéntico a la fase de sustitución hacia atrás de la eliminación
convencional de Gauss:
Los pasos de sustitución

Planteamiento del problema. Complete el problema iniciado en el Ejemplo


anterior, generando la solución final con sustitución hacia adelante y hacia atrás.
Solución. Como se acaba de decir, la intención de la sustitución hacia adelante
es imponer las manipulaciones de eliminación que anteriormente habíamos
aplicado a [A] en el vector del lado derecho {b}. Recordemos que el sistema
que se está resolviendo es
y que la fase de eliminación directa de la eliminación convencional de Gauss
resultó en
La fase de sustitución directa se implementa aplicando la ecuación. (10.8):

o multiplicando el lado izquierdo:


Podemos resolver la primera ecuación para 𝑑1 = 7.85, que puede sustituirse en la
segunda ecuación para resolver

Tanto 𝑑1 como 𝑑2 pueden sustituirse en la tercera ecuación para dar


Así,

Este resultado puede ser sustituido en la ecuación. (10.3), [U] {x} = {d}:

que se puede resolver mediante sustitución hacia atrás, para la solución final:
Función de MATLAB: lu

MATLAB tiene una función incorporada lu que genera la factorización LU. Tiene
la sintaxis general: [L, U] = lu(X) donde L y U son las matrices triangular inferior y
triangular superior, respectivamente, derivadas de la factorización LU de la
matriz X. Tenga en cuenta que esta función utiliza pivoteo parcial para evitar
división por cero. El siguiente ejemplo muestra cómo se puede emplear para
generar tanto la factorización como una solución para el mismo problema que se
resolvió en los Ejemplos anteriores.
Factorización LU con MATLAB

Planteamiento del problema. Use MATLAB para calcular la factorización LU y


encuentre la solución para el mismo sistema lineal analizado en los Ejemplos
anteriores:
Solución. La matriz de coeficientes y el vector del lado derecho se pueden
ingresar de manera estándar como
A continuación, la factorización LU se puede calcular con
Este es el mismo resultado que obtuvimos a mano en el ejemplo anterior. Podemos
probar que es correcto calculando la matriz original como
Para generar la solución, primero calculamos (L d = b)

Y luego use este resultado para calcular la solución (U x = d)


Descomposición de Cholesky

Recordemos que una matriz simétrica es aquella donde 𝑎𝑖𝑗 = 𝑎𝑗𝑖 para todo 𝑖 y 𝑗.
En otras palabras, [𝐴] = [𝐴]𝑇 . Tales sistemas ocurren comúnmente en contextos
matemáticos y problemas de ingeniería / ciencia.

Existen técnicas de solución especiales para tales sistemas. Ofrecen ventajas


computacionales porque solo se necesita la mitad del almacenamiento y solo la
mitad del tiempo de cálculo requerido para su solución.

Uno de los enfoques más populares implica la factorización de Cholesky (también


llamada descomposición de Cholesky). Este algoritmo se basa en el hecho de que
una matriz simétrica puede descomponerse, como
[A] = [𝑈]𝑇 [U] (10.14)
Es decir, los factores triangulares resultantes son la transposición entre sí. Los
términos de la ecuación (10.14) se puede multiplicar y establecer iguales entre sí.
La factorización puede ser generada eficientemente por las relaciones de
recurrencia. Para la i-ésima fila:
Solución. Para la primera fila (i = 1), la ecuación. (10.15) se emplea para calcular

Entonces, la ecuación. (10.16) se puede usar para determinar


Para la segunda fila (i = 2):

Para la tercera fila (i = 3):


Por lo tanto, la factorización de Cholesky produce

La validez de esta factorización puede verificarse sustituyéndola y su


transposición en la ecuación. (10.14) para ver si su producto produce la matriz
original [A]. Esto se deja para un ejercicio.
Después de obtener la factorización, se puede usar para determinar una solución
para un vector del lado derecho {b} de manera similar a la factorización LU.
Primero, se crea un vector intermedio {d} resolviendo

Entonces, la solución final se puede obtener resolviendo


Función MATLAB: chol

MATLAB tiene una función incorporada chol que genera la factorización de


Cholesky. Tiene la sintaxis general,

donde U es una matriz triangular superior, de modo que U '* U = X. El siguiente


ejemplo muestra cómo puede emplearse para generar tanto la factorización como
una solución para la misma matriz que analizamos en el ejemplo anterior.
Factorización Cholesky con MATLAB

Planteamiento del problema. Use MATLAB para calcular la factorización de


Cholesky para la misma matriz que analizamos en el ejemplo anterior

También obtenga una solución para un vector del lado derecho que sea la suma
de las filas de [A]. Tenga en cuenta que para este caso, la respuesta será un vector
de unos.
Solución. La matriz se ingresa de manera estándar como

Un vector del lado derecho que es la suma de las filas de [A] se puede generar
como
A continuación, la factorización de Cholesky se puede calcular con

Podemos probar que esto es correcto calculando la matriz original como


Para generar la solución, primero tenemos una computadora (U’ d = b)

Y luego use este resultado para calcular la solución (U x = d)

También podría gustarte