Laboratorio de Computación para las Aplicaciones de la Matemática en Ingeniería
Laboratorio Mat 270 - Análisis Numérico TERCERA SESIÓN
Métodos directos o de factorización para sistemas lineales
Semana del Lunes 16 al 20 de Abril del 2018
Coordinador Académico del Laboratorio : Profesor Jaime Figueroa Nieto (jaime.[email protected]) Ayudante Coordinador : Hernán Caviedes Manzano ([email protected])
Ayudante Python : Ricardo Landeros Villanueva ([email protected]) Sitio web : http://lab.mat.utfsm.cl
Atención Alumnos : Vía e-mail a los ayudantes de sala y ayudante coordinador.
Índice
1. Matrices: Lo necesario en nuestro contexto 3
2. Comando para la descomposición LU por pivote parcial 4
3. Comando para la descomposición Cholesky de una matriz simétrica. 4 4. Una forma del control sobre interpolación, Segundo Semestre 2017 6
1. Matrices: Lo necesario en nuestro contexto
La estructura de matrices se dene de la siguiente forma:
>>> M= sp . Matrix ([[1 ,2] ,[3 ,4]])
Creándose en el caso anterior una matriz 4x4.
Se pueden denir todo tipo de matrices. Experimente con las siguientes expresiones:
>>> ejemplo = sp . randMatrix (5)
>>> otroejemplo = sp . diag (3 ,6 ,5 ,4)
Respecto a las operaciones, y al encontrarnos en el mundo de las matrices, estas se llevan a cabo de manera natural entre sí:
>>> A= sp . Matrix ([[ sp . sin (i ). evalf () for i in range(2 ,4)] , [ sp . cos (i ). evalf () for i in range(2 ,4)]])
>>> B= sp . diag (4 ,6)
>>> A+B
>>> A∗B
Es posible generar a la matriz inversa, transpuesta, identidad y nula:
>>> A. inv ()
>>> A.T #s i , va s i n p a r e n t e s i s
>>> sp . eye (6)
>>> sp . zeros (4)
Si se desea acceder a un elemento particular de una matriz, puede hacerse mediante el comando M [i, j]. donde i, j corresponde a la posición del elemento.
Una matriz se denomina singular si su determinante resulta 0. La vericación de ello se puede realizar sin mayor dicultad:
>>> A. det ()
Es posible además, acceder a una la o columna en particular. Se ejemplicará uno de los casos:
>>> A [: ,1]
Las matrices siguen la lógica de las listas de Python respecto a la característica de mutabilidad que tienen. Se pueden reemplazar elementos particulares de una matriz por otro que el usuario desee ingresar, así como el cambio de una la o columna completa por otra. Se dejará como desafío para el lector la prueba de estas funciones.
2. Comando para la descomposición LU por pivote parcial
El comando de descomposición LU es, de hecho, el pivote parcial. Formemos una matriz aleato- ria:
>>> matriz = sp . randMatrix (3) Apliquemos el comando LU:
>>> L ,U , perm = matriz . LUdecomposition ()
P es una matriz tal que: P · A = L · U. Para obtener la matriz P , se tiene que:
>>> P= sp . eye ( matriz ). permuteFwd ( perm )
3. Comando para la descomposición Cholesky de una matriz simé- trica
Teorema:
Una matriz cuadrada A es denida positiva y simétrica sí y solo sí existe una matriz invertible triangular inferior L de modo que :
A = L · LT ( factorización Cholesky ) (3.0.1) Denición.
Una matriz A de orden n se dice denida positiva si su forma cuadrática asociada es positiva, esto es,xT · A · X > 0 , cualquiera sea X ∈ N vector columna no nulo.
Observaciones.
1. La propiedad denida positiva está asociada a varios operadores de la física matemática ( operadores autoadjuntos) a través de su discretización por diferencias nitas y por elementos
nitos.
2. Aplicando el teorema de Taylor de varias variables se comprueba que f(X) ,X ∈ <n una función 2 veces continuamente diferenciable tiene un mínimo en X = X0 sí y solo sí la matriz Hessiana en ese punto es denida positiva.
En Python, la descomposición de Cholesky se puede obtener directamente con el comando A.cholesky(), donde A es una matriz cuadrada simétrica, denida positiva.
Generemos una matriz simétrica denida positiva a la cual aplicarle el comando anterior:
Calculamos la descomposición de Cholesky mediante el comando:
>>> L=A. cholesky ()
La respuesta es la matriz triangular superior. La transpuesta es la triangular inferior.
Al multiplicar la inferior por la superior debe dar la matriz original:
>>> salida =L∗L.T
Se obtiene la misma matriz de partida.
Ejercicio:
Utilizando la factorización Cholesky obtenida calcule la solución del sistema: A · X = b , donde b = [4, 2, 0, 0, 4]T . Compare con la solución directa.
Ejercicio (Opcional):
Forme usted sus propias matrices y ponga a prueba el comando.