Solución de sistemas de ecuaciones lineales nxn por factorización LU con una perspectiva de Métodos Numéricos 7 de octubre 2023 Francisco Rodríguez Flores UAEMEX, Facultad de Ingeniería Licenciatura en Ing. Mecánica Introducción Matrices elementales Una matriz puede ser escrita como la multiplicación de matrices llamada elementales que representan una operación de tipo elemental como lo son: 1. Multiplicar el renglón i por un numero c diferente de cero 2. Sumar un múltiplo del renglón i al renglón j 3. Permutar los renglones i y j Def. 1.- una matriz E nxn se llama una matriz elemental si se puede obtener a partir de la matriz identidad 𝐼𝑛 , de nxn mediante una sola operación elemental por renglones.1 Ejemplo 1. 1 1. (0 0 1 2. (0 0 1 3. (0 0 0 1 0 0 1 0 0 1 0 0 𝑅1⟶3𝑅1 3 0 0 (0 1 0) = 3𝑅1 0) → 1 0 0 1 0 𝑅2⟶𝑅2−4𝑅1 1 0 0 (−4 0 0) = 𝑅2 − 4𝑅1 0) → 1 0 0 1 0 𝑅1⥩3𝑅1 0 0 1 (0 1 0) = 𝑃13 0) → 1 1 0 0 TEOREMA 1. Para realizar una operación elemental A, se multiplica A por la izquierda por la matriz elemental adecuada.1 Demostración. Pensemos en la operación elemental sobre la matriz A de orden nxn, para multiplicar el renglón k con 1≤k≤n por un escalar c≠0, basta con multiplicar la matriz similar a la matriz identidad con un c en la diagonal principal en el renglón k que llamaremos E por la matriz A. Como todos los elementos de la matriz E salvo en el renglón j son 1, la matriz A no tendrá cambios en ninguno de sus renglones, en el caso del renglón j, se vera que cada elemento del renglón k de A es multiplicado por c. al proceder de la misma manera para las otras dos operaciones elementales, se llega a resultados similares. Q.E.D. 1 2 3 2 Sea 𝐴 = (4 5 6 2) Realice las siguientes operaciones elementales con los 7 8 9 2 renglones de A multiplicando A por la izquierda por una matriz elemental adecuada.1 1. 2. 3. Multiplique el segundo renglón por 5. Multiplique el primer renglón por -3 y súmelo al tercer renglón. Permute el segundo y tercer renglones. Como A es una matriz de 3 x 4, cada matriz elemental E debe ser de 3 x 3, ya que E debe ser cuadrada y multiplica a A por la izquierda. Se usan aquí los resultados del ejemplo 1.1 1 0 1. (5𝑅2 )𝐴 = (0 5 0 0 0 1 0) (4 1 7 1 0 2. (𝑅3 − 3𝑅1 )𝐴 = ( 0 1 −3 0 1 0 0 1 3. (𝑃23 )𝐴 = (0 0 1) (4 0 1 0 7 2 3 2 1 2 3 2 5 6 2) = (20 25 30 10) 8 9 2 7 8 9 2 0 1 2 3 2 1 2 3 2 0) (4 5 6 2) = ( 4 5 6 2 ) 1 7 8 9 2 −2 2 0 −4 2 3 2 1 2 3 2 5 6 2) = (7 8 9 2) 8 9 2 4 5 6 2 Tabla 11. Resume la forma en la que obtiene una matriz elemental y su inversa Teorema 2. Toda matriz elemental es invertible. El inverso de una matriz elemental es una matriz similar.1 Demostración: para demostrar la toda matriz elemental es invertible, basta con probar que la matriz elemental es semejante por renglones a la matriz identidad. Pensemos en el caso de la matriz elemental de orden n, que representa la operación de multiplicar el renglón k con 1≤k≤n por la constante c elemento de un campo escalar (obviamente c≠0 como la definición de matriz elemental condiciona), basta 1 con multiplicar el renglón k por 𝑐 para convertir a la matriz elemental en la matriz identidad. Por lo tanto, es invertible Del mismo modo, se procede para los casos de las matrices elementales que simbolizan las operaciones de permutación de renglones y suma. Q.E.D. Teorema 3. Una matriz cuadrada en invertible si y solo si es el producto de matrices elementales también es invertible.1 Demostración: sea la matriz A, se tiene 𝐴 = 𝐸1 … 𝐸𝑛 con 𝐸𝑘 matrices elementales que por el Teorema 2 son invertibles y el producto de dos matrices invertibles es invertible, por lo que 𝐴−1 = 𝐸1−1 … 𝐸𝑛−1. Inversamente supongamos que A es invertible, es decir 𝐸1 … 𝐸𝑛 𝐴 = 𝐼 esto significa que A es equivalente por renglones a la matriz identidad, al multiplicar 𝐴−1 (por la hipótesis A invertible) por la derecha obtenemos 𝐸1 … 𝐸𝑛 𝐴𝐴−1 = 𝐼𝐴−1 se tiene 𝐸1 … 𝐸𝑛 = 𝐴−1 , al calcular la inversa en −𝟏 ambos lados de la igualdad tenemos (𝐴−1 )−1 = 𝑨 = (𝐸1 … 𝐸𝑛 )−1 = 𝑬−𝟏 𝟏 … 𝑬𝒏 por el Teorema 2 Q.E.D Lo anterior nos sirve para saber lo siguiente: Como escribir una matriz invertible como el producto de matrices elementales 1 Ejemplo 3. Pruebe que la matriz 𝐴 = (4 7 producto de matrices elementales 2 0 5 6) es invertible y escríbala como el 8 9 Solución. Usemos el renglón 1 para pivotar la columna 1. Por lo que haremos las siguientes operaciones 1 0 𝑅2 − 4𝑅1 multiplicar A por la matriz identidad 𝐸0 𝐴 = (−4 1 0 0 1 2 0 (0 −3 6), 7 8 9 1 0 0 1 𝑅3 – 7𝑅1 multiplicar por𝐸1 𝐴0 = ( 0 1 0) (0 −7 0 1 7 2 0 1 −3 6) = (0 8 9 0 0 1 0) (4 1 7 2 0 5 6) = 8 9 2 0 −3 6), −6 9 Para pivotar la columna 2 con el renglón primero debemos realizar la operación 1 0 0 1 2 0 1 2 0 1 1 𝑅 es decir multiplicar A por 𝐸2 𝐴1 = (0 −3 0) (0 −3 6) = (0 1 −2) −3 2 0 −6 9 0 0 1 0 −6 9 1 −2 0 1 2 0 1 0 0 y seguir con 𝐸3 𝐴2 = (0 1 0) (0 1 −2) = (0 1 −2); 0 0 1 0 −6 9 0 −6 9 1 𝐸4 = (0 0 0 0 1 0 0 1 0 0 1 6) (0 1 −2) = (0 1 −2) , es decir: 0 1 0 −6 9 0 0 9 1 0 −4 1 0 (0 1 0 ) ( 0 1 0 0 1 0 0 0 1 0 2) (0 1 1 0 0 0 1 0 0 1 0 ) (0 1 0 ) (0 −1/3 0 6 1 0 1 0 0 1 0 𝑥 ( 0 1 0) (−4 1 −7 0 1 0 0 0 0 −2 0 1 1 0) (0 −1/3 0) 0 1 0 0 1 0 1 −2 0 1 2 0) (0 1 0) (4 5 1 0 0 1 7 8 1 4 − 3 −2 2 En resumen, al multiplicar las 𝐸0 … 𝐸7 = 3 1 ( −3 0 6) = 𝐼 9 3 2 1 −3 2 1 3 3 = 𝐴−1 ) Las inversas de cada Elemental son; 1 0 𝐸7−1 = (0 1 0 0 1 2 𝐸3−1 = (0 1 0 0 4 1 0 0) ; 𝐸6−1 = (0 1 1 0 0 0 1 0 2) ; 𝐸5−1 = (0 1 1 0 0 0 1 0 0 0 ) ; 𝐸4−1 = (0 1 0) ; −3 0 −6 1 0 1 0 0 1 0 0 1 0 0 0) ; 𝐸2−1 = (0 −3 0) ; 𝐸1−1 = (0 1 0) ; 𝐸0−1 = (4 1 0) 1 0 0 1 8 0 1 0 0 1 Esto es relevante porque podemos escribir la matriz A en termino de las inversas de sus elementales, es decir 𝐴 = 𝐸0−1 𝐸1−1 𝐸2−1 𝐸3−1 𝐸4−1 𝐸5−1 𝐸6−1 𝐸7−1 1 2 (4 5 7 8 0 1 6) = (4 9 0 0 0 1 0 1 0) (0 1 0 1 8 0 0 1 0 0 1 2 0) (0 −3 0) (0 1 1 0 0 1 0 0 1 0 0 1 0 𝑥 (0 1 0 ) (0 1 0 0 −3 0 0 0 1 0 0 0) (0 1 0) 1 0 −6 1 0 1 0 4 2) (0 1 0) 1 0 0 1 En resumen, la importancia aplicativa del Teorema 1 y Teorema 2 es que nos permite factorizar cualquier matriz invertible como el producto de las inversas de sus matrices elementales y a su inversa como el producto de sus matrices elementales, es decir, si A invertible entonces: 𝐴 = 𝐸1−1 𝐸2−1 … 𝐸𝑛−1 𝑦 𝐴−1 = 𝐸𝑛 … 𝐸𝑛−1 𝐸𝑛 Note que encontrar la inversa de una matriz elemental es bastante simple, si es una matriz elemental que representa la multiplicación de un escalar c por un renglón, su inversa será un matriz elemental que representa la misma operación, pero con el inverso multiplicativo del escalar c, es decir: 𝑠𝑖 𝑐𝑅𝑖 = 𝐸1 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝐸1−1 = 1 𝑐 𝑅𝑖 𝑝𝑎𝑟𝑎1 ≤ 𝑖 ≤ 𝑛. De misma forma para los casos de suma de múltiplos de renglones y permutación de renglones. Factorizaciones LU de una matriz En este tópico se muestra la forma de escribir una matriz cuadrada como un producto de una matriz triangular inferior por una matriz triangular superior 3 Ejemplo 4. Encuentre una factorización LU de la matriz A1 1 2 0 Reduzca por renglones a la matriz 𝐴 = (4 5 6) a una matriz triangular superior 7 8 9 y después escriba A como un producto de una matriz triangular inferior y una matriz triangular superior. Solución. 1 (4 7 2 −4𝑅1 1 2 0 𝑅𝑅2⟶𝑅 3 ⟶𝑅3 −7𝑅1 (0 5 6) → 8 9 0 2 0 𝑅3⟶𝑅3+2𝑅2 1 2 0 ) ( −3 6 → 0 −3 6 ) = 𝑈 −6 9 0 0 −3 Usando matrices elementales podemos escribir: 1 0 0 1 0 0 1 0 𝑈 = (0 1 0) ( 0 1 0) (−4 1 0 −2 1 −7 0 1 0 0 0 0) 𝐴 1 1 0 0 𝑈 = (−4 1 0) 𝐴 1 −2 1 o usando las inversas de las elementales 1 0 𝐴 = (4 1 0 0 1 𝐴 = (4 7 0 1 0 0 1 0) (0 1 0) (0 1 7 0 1 0 0 0 1 0) 𝑈 2 1 0 0 1 2 0 1 0) (0 −3 6 ) = 𝐿𝑈 2 1 0 0 −3 U es la matriz resultado del producto de las matrices elementales necesarias para encontrar una matriz triangular superior semejante por renglones a la matriz A. La matriz L es resultado del producto de las inversas de las matrices elementales de la triangular superior semejante a la matriz A. El algoritmo funciona mientras, no se hagan reducción de renglones por encima de la diagonal principal ni permutación de renglones para el cálculo de U lo cual no siempre es fácil. Si es posible calcular la matriz triangular superior, las matrices elementales necesarias para calcularla tendrán unos en la diagonal principal y constantes debajo de esta, es decir, podemos considerarlas matrices diagonales inferiores, esta observación es fácil de verificar en el siguiente Teorema. Teorema 4. (Propiedades de multiplicación de matrices triangulares) El producto de las matrices triangulares inferiores con unos en la diagonal es una matriz triangular inferior con unos en la diagonal. Más aún, el producto de dos matrices triangulares superiores es una matriz triangular superior.1 Demostración. Sean 𝐴, 𝐵 ∈ 𝑀𝑛𝑥𝑛 (𝐾) dos matrices triangulares inferiores con unos en la diagonal principal, entonces: 1 𝐴𝐵 = ( ⋮ 𝑎𝑛1 ⋯ ⋱ ⋯ 0 1 ⋮) ( ⋮ 1 𝑏𝑛1 ⋯ ⋱ ⋯ 0 ⋮) = 1 1 ⋮ 𝑛 𝑎𝑛1 + 𝑏𝑛1 + ∑ 𝑎𝑛𝑖 𝑏𝑖1 𝑖=2 ( ⋯ ⋱ 0 ⋮ ⋯ 1 ) Del mismo modo para A, B matrices triangulares superiores con unos en la diagonal principal 𝑛 1 ⋯ ( 𝐴𝐵 = ⋮ ⋱ 0 ⋯ 𝑎1𝑛 1 ⋯ ⋮ ) (⋮ ⋱ 1 0 ⋯ 𝑏1𝑛 ⋮ )= 1 1 ⋯ 𝑎1𝑛 + 𝑏1𝑛 + ∑ 𝑎1𝑖 𝑏𝑖𝑛 𝑖=2 ⋮ ⋱ (0 ⋯ ⋮ 1 ) Q.E.D. Para síntesis, este teorema nos asegura que, cuando calculemos U y no permutemos renglones, ni reduzcamos por encima de la diagonal principal, la matriz obtenida será una matriz triangular. Teorema 5. (Teorema de la factorización LU) Sea A una matriz cuadrada (nxn) y suponga que A se puede reducir por renglones a una matriz triangular U sin hacer alguna permutación entre sus renglones. Entonces existe una matriz triangular inferior L invertible con unos en la diagonal tal que A = LU. Si, además, U tiene n pivotes (es decir, A es invertible), entonces esta factorización es única.1 Demostración. Del Ejemplo 4 se conoce el algoritmo para obtener U y L. Si A es invertible, entonces al ser U resultado del producto de matrices elementales, las cuales son invertibles se tiene U invertible (Teorema 3). Sabemos que una matriz es invertible si el sistema de ecuaciones cuadrado que representa tiene solución definida, es decir, para probar que L es invertible se debe probar que Lx=0 1 ( ⋮ 𝑙𝑛1 ⋯ ⋱ ⋯ 0 𝑥1 0 ⋮) ( ⋮ ) = (⋮) 1 𝑥𝑛 0 La primera ecuación nos resulta 𝑥1 = 0; la segunda 𝑙21 𝑥1 + 𝑥2 = 0 y de la primera se deduce que 𝑥2 = 0 y consecutivamente se obtiene 𝑥1 = 𝑥2 = ⋯ = 𝑥𝑛 = 0 por lo que L es invertible. Ahora debemos mostrar la unicidad de la factorización A=LU, podemos suponer dos factorizaciones distintas, es decir: 𝑨 = 𝑳𝟏 𝑼𝟏 = 𝑳𝟐 𝑼𝟐 −𝟏 −𝟏 −𝟏 −𝟏 −𝟏 −𝟏 −𝟏 𝑼𝟏 𝑼−𝟏 𝟐 = 𝑰𝑼𝟏 𝑼𝟐 = (𝑳𝟏 𝑳𝟏 ) 𝑼𝟏 𝑼𝟐 = 𝑳𝟏 (𝑳𝟏 𝑼𝟏 )𝑼𝟐 = 𝑳𝟏 (𝑳𝟐 𝑼𝟐 )𝑼𝟐 = −𝟏 −𝟏 𝑳−𝟏 𝟏 𝑳𝟐 (𝑼𝟐 𝑼𝟐 ) = 𝑳𝟏 𝑳𝟐 −𝟏 𝑼𝟏 𝑼−𝟏 𝟐 = 𝑳 𝟏 𝑳𝟐 Sabemos que la inversa de una matriz triangular superior o inferior es una matriz triangular superior o inferior respectivamente* y por el Teorema 4 que el producto de dos matrices triangulares superiores o inferiores es una matriz superior o inferior −𝟏 respectivamente. De nuestra relación 𝑼𝟏 𝑼−𝟏 𝟐 = 𝑳𝟏 𝑳𝟐 observamos que la izquierda, una matriz triangular superior es igual a una matriz triangular inferior, y mas a un las −𝟏 dos tienen unos en la diagonal principal, por lo que 𝑼𝟏 𝑼−𝟏 𝟐 = 𝑰 y 𝑳𝟏 𝑳𝟐 = 𝑰 lo que nos indica que son las mismas matrices, así la factorización LU es única Cuando la reducción de una matriz A requiera forzosamente una permutación de renglones, se recomienda que se haga primero antes de calcular U, a este proceso se le conoce como Factorización PA=LU, donde P es una matriz elemental de permutación de renglones, y el proceso se repite exactamente igual. Resolver un sistema de ecuaciones lineales nxn usando la factorización LU Ejemplo 51. Resuelva el sistema Ax=b, con 1 𝐴 = (2 3 4 6 1 −1 3) 𝑦 𝑏 = ( 2 ) 2 5 −4 Solución. Primero escribimos A=LU 2 −2𝑅1 1 1 4 6 𝑅𝑅2⟶𝑅 4 3 ⟶𝑅3 −3𝑅1 (2 −1 3) → (0 −9 3 2 5 0 −10 1 𝐿 = (2 0 0 0 1 0 1 0 ) (0 1 0 1 3 0 6 𝑅3⟶𝑅3−10𝑅1 1 4 6 9 (0 −9 −9) = 𝑈 −9 ) → −13 0 0 −3 0 0 1 0 0 0 1 1 0 ) = (2 1 0) 0) (0 0 10/9 1 3 10/9 1 1 El sistema Ly=b tierne las ecuaciones 𝑦1 =1 2𝑦1 + 𝑦2 =2 10 3𝑦1 + 𝑦2 + 𝑦3 = −4 9 Sustituyendo los valores obtenemos 𝑦1 = 1; 𝑦2 = 0; 𝑦3 = −7 Ahora de Ux=y se tiene 𝑥1 + 4𝑥2 + 6𝑥3 = 1 −9𝑥2 − 9𝑥3 = 0 −3𝑥3 = −7 Sustituyendo valores obtenemos 𝑥1 = − 11 3 7 7 7 ; − 3 ; 𝑥2 = − 3 ; 𝑥3 = 3 Por lo que la solución es 11 3 7 𝑥= − 3 7 ( 3 ) − A continuación de mostrará una forma más sencilla de factorización LU Ejemplo 64. Resuelva el sistema Ax=b, con 1 0 𝐴=( 2 1 2 −1 4 1 −1 5 8 2 ) 𝑦𝑏=( ) 3 1 4 4 −1 6 4 −5 Solución. Sabemos que la factorización LU de la nos dará r matrices triangulares una superior y otra inferior, es decir 1 2 0 −1 𝐴=( 2 3 1 −1 −1 5 1 6 1 4 𝑙 8 )=(1 𝑙2 4 𝑙3 4 0 1 𝑙4 𝑙5 0 0 1 𝑙6 0 1 2 0 0 𝑢1 )( 0 0 0 0 0 1 −1 𝑢2 𝑢3 0 4 𝑢4 ) 𝑢5 𝑢6 De la multiplicación de las matrices LU obtenemos las siguientes ecuaciones que deben estar igualadas a cada componente de A 1 0 ( 2 1 1 2 −1 4 𝑙 −1 5 8 )=(1 𝑙2 3 1 4 𝑙3 −1 6 4 2 2𝑙1 + 𝑢1 2𝑙2 + 𝑙4 𝑢1 2𝑙3 + 𝑙5 𝑢1 −1 −𝑙1 + 𝑢2 −𝑙2 + 𝑙4 𝑢2 + 𝑢3 −𝑙3 + 𝑙5 𝑢2 + 𝑙6 𝑢3 4 4𝑙1 + 𝑢4 ) 4𝑙2 + 𝑙4 𝑢4 + 𝑢5 4𝑙3 + 𝑙5 𝑢4 + 𝑙6 𝑢5 + 𝑢6 Aquí las respuestas más fáciles son las de la primera columna 𝑙1 = 0; 𝑙2 = 2; 𝑙3 = 1 después sustituyendo izquierda a derecha empezando en el renglón dos 𝑢1 = −1; 𝑢2 = 5; 𝑢4 = 8 para hacerlo más fácil podemos mantener el formato de matrices resolviendo las ecuaciones 1 2 𝑙1 = 0 2𝑙1 + 𝑢1 = −1; 𝑢1 = −1 ( 𝑙2 = 2 2𝑙2 + 𝑙4 𝑢1 = −1; 𝑙4 = 1 𝑙3 = 1 2𝑙3 + 𝑙5 𝑢1 = −1; 𝑙5 = 3 −1 4 −𝑙1 + 𝑢2 = 5; 𝑢2 = 5 4𝑙1 + 𝑢4 = 8; 𝑢4 = 8 ) −𝑙2 + 𝑙4 𝑢2 + 𝑢3 = 1; 𝑢3 = −2 4𝑙2 + 𝑙4 𝑢4 + 𝑢5 = 4; 𝑢5 = −12 −𝑙3 + 𝑙5 𝑢2 + 𝑙6 𝑢3 = 6; 𝑙6 = 4 4𝑙3 + 𝑙5 𝑢4 + 𝑙6 𝑢5 + 𝑢6 = 4; 𝑢6 = 24 Tenemos 1 0 𝐿=( 2 1 0 1 1 3 0 0 1 4 0 1 0 0 ) 𝑦𝑈=( 0 0 1 0 2 −1 4 −1 5 8 ) 0 −2 −12 0 0 24 Planteamos el sistema Ly=b y resolviendo 1 0 ( 2 1 0 1 1 3 0 0 1 4 𝑦1 0 1 1 𝑦 0 2 2 2 ) (𝑦 ) = ( ) ⟶ 𝑦 = ( ) 0 3 4 0 𝑦4 1 −5 −12 Luego el sistema Ux=y 𝑥1 1 2 −1 4 1 𝑥2 0 −1 5 8 2 ( ) (𝑥 ) = ( )⟶𝒙= 0 0 −2 −12 3 0 𝑥4 0 0 0 24 −12 −𝟏𝟐 𝟗 𝟑 𝟏 − ( 𝟐) Métodos numéricos. Desventajas de los métodos de eliminación. Hasta ahora, nuestros ejemplos se resuelven o están escritos en números exactos, pero sabemos que, en la vida real, es posible modelar situaciones nos darán valores limitados a nuestra capacidad de medirlos, esto es un factor a tener en cuenta pues, estas cifras pueden alterar el valor de los resultados obtenidos dependiendo de la forma en que la computadora, calculadora o software redonde los decimales. A continuación, hablaremos de las desventajas de los métodos de reducción que es en los que está basada la mayor parte de la factorización LU La división entre cero es un error sencillo pero común en los programas de computadora pensados en el principio de la reducción Gaussiana. Errores de redondeo Supongamos una calculadora con una capacidad de 7 dígitos y un sistema de ecuaciones lineales 3x3 con la primera ecuación2 3𝑥1 = −0.1𝑥2 − 0.2𝑥3 = 7.85 queremos pivotar con la entrada (1,1) por lo que dividimos por 3 a esta primera ecuación, obtendríamos 𝑥1 − 0.0333333𝑥2 − 0.0666667𝑥3 = 2.6166667 podemos ver que en los 3 coeficientes diferentes de 1 tendremos recorte en las cifras exactas debido a la capacidad de la hipotética calculadora. Este recorte de exactitud, cuándo se opere en la reducción Gaussiana puede aumentar el error en nuestros resultados que debemos tomar en cuenta. La solución mas sencilla para disminuir los inconvenientes de la eliminación Gaussiana es aumentar el número de dígitos con el que se trabaja, pero, es obvio que no siempre es posible, por lo que agregaremos algunos métodos para agregar al algoritmo de reducción. Pivoteo Existen dos métodos el pivoteo parcial que consiste en tomar el renglón con el pivote con un valor no cercano a cero, de preferencia un pivote entero. El otro método, el pivoteo total consiste en lo mismo que el anterior, pero eligiendo el pivote entre columnas y renglones, lo que requeriría cambiar las variables de orden, lo que puede volverlo bastante complejo. A continuación, se presenta un ejemplo de pivoteo parcial Ejemplo 72. Resuelva el siguiente sistema usando pivoteo parcial, que tiene como 1 2 soluciones exactas a 𝑥1 = 3 ; 𝑥2 = 3 0.000 3𝑥1 + 3.000 0𝑥2 = 2.000 1 1.000 0𝑥1 + 1.000 0𝑥2 = 1.000 0 Solución. Notemos que la entrada (1,1) es cercana acero, por lo que es recomendado pivotar con el segundo renglón, tenemos 𝑥1 = 1 − 𝑥2 Sustituyendo en el renglón uno 0.000 3(1 − 𝑥2 ) + 3.000 0𝑥2 = 2.000 1 𝑥2 = 1.9998 2 2 = ⟶ 𝑥1 = 1 − 2.9997 3 3 Si tabulamos el error relativo porcentual de x1 notaremos que es menos sensible al caso en el que hubiésemos pivotado con el renglón uno, donde obtendríamos 𝑥1 = 2.0001 − 3(2/3) 0.0003 pues al hacer las divisiones habría más error redondeo sensible a las cifras significativas consideradas para 2/3 Tabla 2. Muestra la sensibilidad de error de 𝑥1 respecto al valor exacto 𝑥1 = 1/3 en términos de las cifras significativas de 𝑥2 Cifras significativas 3 5 7 𝒙𝟐 = 𝟐/𝟑 0.666 0.666 66 0.666 666 6 𝒙𝟏 = 𝟏 − 𝟐 𝟑 0.333 0.333 33 0.333 333 3 Error relativo porcentual de 𝒙𝟏 0.1 0.001 0.000 01 No se debe perder de vista que este método en sí mismo incluye un error de redondeo Escalamiento Este método consiste en cuidar que no haya coeficientes extremadamente cercanos a cero, y de grandes cantidades en el mismo sistema de ecuaciones. Esto se logra gracias a que podemos multiplicar una de las ecuaciones sin alterar la solución (resultado del algebra lineal). Se cuida que no exista esta disparidad de valones en el mismo sistema lineal, para evitar errores de redondeo al dividir un numero cercano a cero por un valor demasiado grande en comparación. En el siguiente ejemplo será mas clara su importancia. Ejemplo 8. Resuelva el siguiente sistema de ecuaciones lineales usando escalamiento. 2𝑥1 + 100 000𝑥2 = 100 000 𝑥1 + 𝑥2 = 2 Y compare las respuestas si no usara escalamiento, sabiendo que las soluciones exactas tomando 3 cifras significativas son 𝑥1 = 𝑥2 = 1.00 Solución. Resolvamos el sistema sin usar escalamiento. Pivotamos con el renglón uno al ser la menor opción, obteniendo 2𝑥1 + 100 000𝑥2 = 100 000 −50 000 𝑥2 = −50 000 (⩰ −49998) Resolviendo hacia atrás se concluye 𝑥1 = 0 ; 𝑥2 = 1, aquí es a donde la disparidad en el valor de los coeficientes genera problemas, pues mientras 𝑥2 tiene un 0% de error 𝑥1 tiene uno de 100% Ahora se resolverá usando escalamiento. Transformando las ecuaciones originales 𝑥1 + 𝑥2 = 2 0.000 02𝑥1 + 𝑥2 = 1 Eliminando hacia delante 𝑥1 + 𝑥2 = 2 𝑥2 = 1.000 (1 − 4𝐸 − 5 ⩰ 1) 𝑥1 Es aproximadamente 1 teniendo en cuanta que las soluciones solo contemplan 3 cifras significativas Es decir 𝑥1 = 1 ; 𝑥2 = 1 que seria el valor esperado. Corrección de errores en la eliminación Gaussiana Un potente y simple método es la Eliminación Gaussiana común enseñada en el algebra lineal, a la que se le suma un paso extra que es la corrección de errores mostrada a continuación. Pensemos en un sistema de ecuaciones de orden nxn 𝑎11 𝑥1 + 𝑎12 𝑥2 + 𝑎21 𝑥1 + 𝑎22 𝑥2 + ⋮ ⋮ 𝑎𝑛1 𝑥1 + 𝑎𝑛2 𝑥2 + … … ⋮ … 𝑎1𝑛 𝑥𝑛 𝑎2𝑛 𝑥𝑛 ⋮ 𝑎𝑛𝑛 𝑥𝑛 = = ⋮ = 𝑐1 𝑐2 ⋮ 𝑐𝑛 Supongamos que tenemos un vector 𝑥̃ = (𝑥̃1 , … , 𝑥̃𝑛 ) de soluciones aproximadas que al sustituirlo en el sistema nos dará un vector 𝑐̃ = (𝑐̃1 , … , 𝑐̃𝑛 )aproximadas. Supongamos ahora el vector 𝑥 = (𝑥1 , … , 𝑥𝑛 )las soluciones exactas con la forma 𝑥 = (𝑥̃1 + ∆𝑥1 , … , 𝑥̃𝑛 + ∆𝑥𝑛 ) 𝑑𝑜𝑛𝑑𝑒 ∆𝑥1 , … , ∆𝑥𝑛 son los factores de corrección. Si sustituimos estos supuestos en el sistema original obtenemos 𝑎11 (𝑥̃1 + ∆𝑥1 ) + 𝑎12 (𝑥̃2 + ∆𝑥2 ) + 𝑎21 (𝑥̃1 + ∆𝑥1 ) + 𝑎22 (𝑥̃2 + ∆𝑥2 ) + ⋮ ⋮ 𝑎𝑛1 (𝑥̃1 + ∆𝑥1 ) + 𝑎𝑛2 (𝑥̃2 + ∆𝑥2 ) + … … ⋮ … 𝑎1𝑛 (𝑥̃𝑛 + ∆𝑥𝑛 ) 𝑎2𝑛 (𝑥̃𝑛 + ∆𝑥𝑛 ) ⋮ 𝑎𝑛𝑛 (𝑥̃𝑛 + ∆𝑥𝑛 ) = = ⋮ = 𝑐1 𝑐2 ⋮ 𝑐𝑛 Si desarrollamos y restamos el sistema generado solo por el vector 𝑥̃ = (𝑥̃1 , … , 𝑥̃𝑛 ), se obtiene 𝑎11 ∆𝑥1 + 𝑎21 ∆𝑥1 + ⋮ 𝑎𝑛1 ∆𝑥1 + 𝑎12 ∆𝑥2 + … 𝑎22 ∆𝑥2 + … ⋮ ⋮ 𝑎𝑛2 ∆𝑥2 + … 𝑎1𝑛 ∆𝑥𝑛 𝑎2𝑛 ∆𝑥𝑛 ⋮ 𝑎𝑛𝑛 ∆𝑥𝑛 = 𝑐1 − 𝑐̃1 = 𝐸1 = 𝑐2 − 𝑐̃2 = 𝐸2 ⋮ ⋮ = 𝑐𝑛 −𝑐̃1 = 𝐸𝑛 En resumen, se resuelve el sistema deseado por eliminación Gaussiana y después se resuelve el sistema de factores de corrección para mejorar la precisión de los resultados, obviando también la posibilidad de convertir esto en un proceso iterativo en el que podemos resolver el sistema de factores de corrección de nuestro sistema de factores de corrección inicial. Mas adelante se mostrará un método más fácil de llevar hacia la iteración.. Ejercicio 9 resuelva el siguiente sistema por eliminación gaussiana utilizando corrección de error. Con 3 cifras significativas 0.75𝑥1 + 𝑥2 = 14.25 −1.1𝑥1 + 1.6𝑥2 = 22.1 Resolviendo tenemos las soluciones aproximaciones 𝑥̌1 = 89.521; 𝑥̌2 = −52.891 que produce el vector de coeficientes de solución de las ecuaciones lineales aproximados 𝑐̃ = ( 14.159 ) −183.242 Restando el valor real planteado por el problema podemos generar coeficiente de error 𝑐 − 𝑐̃1 0.091 )=( 𝐸=( 1 ) 𝑐2 − 𝑐̃1 205.342 Con el que podemos generar nuestro sistema de ecuaciones de error 0.75∆𝑥1 + ∆𝑥2 = 0.091 −1.1∆𝑥1 + 1.6∆𝑥2 = 205.342 Resolviendo el sistema de error se tiene ∆𝑥1 = −89.215 ; ∆𝑥2 = 67.002, para así poder encontrar unas respuestas con un error menor 𝑥1 = 𝑥̌1 + ∆𝑥1 = 0.297 𝑥2 = 𝑥1 = 𝑥̌2 + ∆𝑥2 = 14.111 Sustituyendo estos valores en las ecuaciones obtenemos los coeficientes aproximados y sus errores relativos al planteado por el problema que nos permitirán evaluar la precisión de nuestros datos 14.25 − 14.333 𝑐1 = 14.333 ⟶ 𝜖𝑠 = | | 𝑥100 = 0.582 14.24 22.1 − 22.250 𝑐2 = 22.250 ⟶ 𝜖𝑠 = | | 𝑥100 = 0.678 22.1 Método de GAUSS-SEIDEL Al igual que en la aproximación de raíces de funciones que se calculan con iteraciones e las que calculamos la respuesta dentro de un error relativo porcentual que se adapte a la precisión requerida para resolver nuestro problema. De esta misma forma es posible aproximar la solución de sistemas de ecuaciones lineales nxn, suponga así, el sistema 𝑎11 𝑥1 + 𝑎12 𝑥2 + 𝑎21 𝑥1 + 𝑎22 𝑥2 + ⋮ ⋮ 𝑎𝑛1 𝑥1 + 𝑎𝑛2 𝑥2 + … … ⋮ … 𝑎1𝑛 𝑥𝑛 𝑎2𝑛 𝑥𝑛 ⋮ 𝑎𝑛𝑛 𝑥𝑛 = = ⋮ = 𝑐1 𝑐2 ⋮ 𝑐𝑛 Despejando cada solución se tiene el sistema 𝑐1 − 𝑎12 𝑥2 … − 𝑎1𝑛 𝑥𝑛 𝑎11 𝑐2 − 𝑎21 𝑥1 … − 𝑎2𝑛 𝑥𝑛 𝑥2 = 𝑎12 ⋮ = ⋮ 𝑐𝑛 − 𝑎𝑛1 𝑥1 − ⋯ − 𝑎𝑛𝑛−1 𝑥𝑛−1 𝑥𝑛 = 𝑎𝑛𝑛 𝑥1 = Pensemos en la solución trivial del sistema, al sustituir estos ceros en este nuevo sistema obtenemos 𝑥𝑖 = 𝑐𝑖 /𝑎𝑖𝑖 para 0≤i≤n, estas soluciones se pueden usar como valor de aproximación inicial. Para la siguiente iteración sustituimos estas soluciones. A continuación, mostraremos un ejemplo que deja claro el algoritmo. El criterio par detener las iteraciones es el error medido por la ecuación 2 𝑗−1 𝑥 𝜖𝑠 = | 𝑖 𝑗 − 𝑥𝑖 𝑗 𝑥𝑖 | Para asegurar la convergencia de las aproximaciones debemos tener en cuenta siguiente criterio2 |𝑎𝑖,𝑗 | > ∑|𝑎𝑖,𝑗 | El primer miembro representa la suma de los valores absolutos de la diagonal principal, que debe ser mayor que la suma de los valores absolutos del resto de los elementos de la matriz representada por el segundo término. A las matrices que cumplen esta condición se les llama diagonalmente dominante Ejemplo 10. Use el método de Gauss-Seidel para resolver (𝜖𝑠 = 5%) 4𝑥1 − 2𝑥2 − 𝑥3 = 39 𝑥1 − 6𝑥2 + 2𝑥3 = −28 𝑥1 − 3𝑥2 + 12𝑥3 = −86 Solución. Notamos que es diagonalmente dominante, por lo que podemos usar Gauss-Seidel. Despejamos las incógnitas 𝑥1 = 39 + 2𝑥2 + 𝑥3 … 𝑎) 4 28 + 𝑥1 + 2𝑥3 … 𝑏) 6 −86 − 𝑥1 + 3𝑥2 𝑥3 = … 𝑐) 12 suponiendo 𝑥2 = 𝑥3 = 0 en a) se tiene 𝑥1 = 39/4, este junto con suponer 𝑥3 = 0 en la ecuación b) se tiene 𝑥2 = 151/24, sustituyendo los valores encontrados a) y b) tenemos 𝑥2 = −205/32 𝑥2 = Podemos utilizar una tabla para mostrar las iteraciones y sus errores Tabla 3. Se muestran las iteraciones y sus errores porcentuales I 1 2 3 4 5 𝒙𝟏 9.75 11.29427083 10.16509332 10.07726429 10.00977958 𝒙𝟐 6.291666667 4.15625 4.143473307 4.020247565 4.001170997 𝒙𝟑 𝝐𝒔 (𝒙𝟏 )% 𝝐𝒔 (𝒙𝟐 )% 𝝐𝒔 (𝒙𝟑 )% -6.40625 -6.652126736 13.6730 51.3784 3.6962 -6.97788945 11.1083 0.0383 4.9883 -7.0013768 0.8715 3.0651 0.3354 -7.000522216 0.0121 0.4767 0.0122 Cuando se trabaja con sistemas que no son diagonalmente dominantes, se puede emplear lo siguiente Mejoramiento en la convergencia usando relajación. La relajación representa una pequeña modificación al método de Gauss-Seidel para aumentar la convergencia. Después de calcular un nuevo valor para una x se modifica usando la siguiente ecuación 𝑥𝑖𝑛𝑢𝑒𝑣𝑜 = 𝜆𝑥𝑖𝑛𝑢𝑒𝑣𝑜 + (1 − 𝜆)𝑥𝑖𝑝𝑎𝑠𝑎𝑑𝑜 Donde 𝜆 es el factor de peso que se le asigna un valor entre 0 y 2, si se elige 1 la ecuación no altera el nuevo valor. El resultado es un promedio pesado de los resultados previos y actuales. A este proceso se le conoce como sobrerrelajación, usado para convertir un sistema no convergente en uno convergente. Solución de ejercicios de factorización LU con método de GAUSS-SEIDEL Ejercicio Resuelto 1. resuélvase el siguiente sistema de ecuaciones por factorización LU, utilice cualquier método que le parezca conveniente (Pivoteo parcial, escalamiento o eliminación Gaussiana con corrección de error) con tres cifras significativas calcule el 𝜖𝑠 (𝑐𝑛 )de los coeficientes independientes generados por sus respuestas 0.51𝑥1 − 𝑥2 = −9.5 0.28𝑥1 − 0.52𝑥2 = −4.72 Solución. Vemos que es un sistema no diagonalmente domínate, por lo que usaremos Eliminación Gaussiana con corrección de error. Escribimos el sistema en forma matricial para encontrar U 028 0.51 −1 𝑅2⟶𝑅2−0.51𝑅1 0.51 −1 ( )→ ( )=𝑈 0.28 −0.52 0 −0.029 ( 1 −0.549 0 0.51 −1 1 0 )( )=𝑈⟶𝐿=( ) 1 0.28 −0.5 0.549 1 Por lo que planteamos Ly=b 1 ( 0.549 0 𝑦1 −9.5 −9.5 ) (𝑦 ) = ( )⟶𝑦=( ) 1 2 −4.72 . 904 Planteamos Ux=y 𝑥1 −79.660 0.51 −1 −9.5 ) (𝑥 ) = ( ) ⟶ 𝑥̃ = ( ) −31.172 2 0 −0.029 0.904 ( Al sustituir 𝑥̃ nos genera 𝑐̃ que a su vez genera E 𝐸=( 𝑐1 − 𝑐̃1 −0.045 )=( ) 𝑐2 − 𝑐̃2 1.375 Escribimos nuestro sistema de error 0.51∆𝑥1 − ∆𝑥2 = −0.045 0.28∆𝑥1 − 0.52∆𝑥2 = 1.375 Ya conocemos la factorización LU de este sistema, por lo que planteamos LΔy=b ( 1 0.549 0 ∆𝑦1 −0.045 −0.045 )=( )( ) ⟶ ∆𝑦 = ( ) 1 ∆𝑦2 1.375 1.377 Planteamos UΔx=y ∆𝑥 93.013 0.51 −1 −0.045 ) ( 1) = ( ) ⟶ ∆𝑥 = ( ) ∆𝑥 47.482 0 −0.029 1.377 2 ( Encontramos el valor de las respuestas 𝑥1 = 𝑥̌1 + ∆𝑥1 = 13.353 𝑥2 = 𝑥2 = 𝑥̌2 + ∆𝑥2 = 16.31 Sustituyendo estos valores en las ecuaciones obtenemos los coeficientes aproximados y sus errores relativos al planteado por el problema que nos permitirán evaluar la precisión de nuestros datos −9.5 + 9.499 𝑐1 = −9.499 ⟶ 𝜖𝑠 = | | 𝑥100 = 3.1578𝑋10−4 −9.5 4.72 + 4.742 𝑐2 = −4.742 ⟶ 𝜖𝑠 = | | 𝑥100 = 0.4737 4.72 Ejercicio Resuelto 2. resuélvase el siguiente sistema de ecuaciones por factorización LU, utilice cualquier método que le parezca conveniente (Pivoteo parcial, escalamiento o eliminación Gaussiana con corrección de error) con tres cifras significativas calcule el 𝜖𝑠 (𝑐𝑛 )de los coeficientes independientes generados por sus respuestas (𝜖𝑠 < 0.1%) −12𝑥1 + 𝑥2 − 7𝑥3 = −80 𝑥1 − 6𝑥2 + 4𝑥3 = 13 −2𝑥1 − 𝑥2 + 10𝑥3 = 92 Escribimos el sistema en forma matricial para encontrar U APLICAMOS UNA PERMUTACION PREVIA AL ALGORITMO LU 1 −6 4 1 0 ( ) ( 𝐴 = 𝐿𝑈 ⟶ −12 1 −7 = −12 1 −2 −1 10 −2 𝑙 1 𝐿 = (−12 −2 0 1 0.18309 0 1 −6 4 0) (0 𝑢1 𝑢2 ) 1 0 0 𝑢3 0 1 −6 4 0) ; 𝑈 = (0 −71 41 ) 1 0 0 10.49295 Planteamos el sistema Ly=b 1 0 (−12 1 −2 0.18309 0 𝑦1 13 13 ) 0) (𝑦2 ) = (−80) ⟶ 𝑦 = ( 76 𝑦 1 3 92 104.08516 Planteamos Ux=y 1 −6 (0 −71 0 0 𝑥1 4 13 1.26838 𝑥 ) ⟶ 𝑥̃ = (4.65775) 41 ) ( 2 ) = ( 76 10.49295 𝑥3 104.08516 9.91953 Al sustituir 𝑥̃ nos genera 𝑐̃ que a su vez genera E 𝑐1 − 𝑐̃1 0 𝑐 − 𝑐̃ 𝐸=( 2 2 ) = (−0.00048) 𝑐3 − 𝑐̃3 −0.00079 Escribimos nuestro sistema de error −12∆𝑥1 + ∆𝑥2 − 7∆𝑥3 = 0 ∆𝑥1 − 6∆𝑥2 + 4∆𝑥3 = −0.00048 −2∆𝑥1 − ∆𝑥2 + 10∆𝑥3 = −0.00079 Ya conocemos la factorización LU de este sistema, por lo que planteamos LΔy=b 1 0 0 ∆𝑦1 0 0 (−12 1 0) (∆𝑦2 ) = (−0.00048) ⟶ ∆𝑦 = (−0.00048) −2 0.183 1 ∆𝑦3 −0.00079 −0.00070 Planteamos UΔx=y ∆𝑥1 1 −6 4 0 0 (0 −71 41 ) (∆𝑥2 ) = (−0.043) ⟶ ∆𝑥 = (0) 0 0 10.492 ∆𝑥3 −0.016 0 Encontramos el valor de las respuestas 𝑥1 = 𝑥̌1 + ∆𝑥1 = 1.26838 𝑥2 = 𝑥2 = 𝑥̌2 + ∆𝑥2 = 4.65775 𝑥3 = 𝑥3 = 𝑥̌3 + ∆𝑥3 = 9.91953 Este ejemplo es bastante ilustrativo, pues pude verse que la corrección de error no tuvo una injerencia en el calculo del resultado, no siempre el método mas potente es el mejor. El momento en el que decidimos que método usar es al calcular la factorización LU, en este caso particular el método de escalamiento hubiese sido más útil y practico Referencias 1. S. I. Grossman S. J. J. Flores G. Álgebra Lineal. 7th ed. pp 134-160. 2012 2. S. C. Chaparra. R. P. Canale. Métodos numéricos para ingenieros con aplicaciones en computadoras personales. 1er. ed. pp 219-277. 1987 nota: en los lugares indicados a la referencia bibliográfica se encuentra un parafraseo o copia exacta de dichas bibliografías, por lo que si desea ampliar sus conocimientos se le recomienda ir directo a las páginas de la bibliografía aquí referidas pues, este trabajo es mas una reinterpretación practica para aplicar la Factorización LU