SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución TEMA 1. Métodos directos de resolución de Sistemas de Ecuaciones Lineales Nota previa: Para repasar los conceptos básicos se puede consultar la página de la U. D. Matemáticas http://www.topografia.upm.es/asignaturas/matematicas/primero/Apuntes/Sistemas/index10.htm 1. Repaso de conceptos 1.1. Matrices. Todo conjunto de mn escalares de un cuerpo conmutativo K ordenado en m filas y n columnas de la forma a11 a12 a a 22 A 21 a m1 a m 2 a1n a 2n a mn recibe el nombre de matriz de m filas y n columnas. Abreviadamente se denota por A= a ij i 1 m, j 1 n . El término a ij se llama término general de A y designa el elemento que aparece en la fila i columna j. El par (m,n) indica el tamaño de la matriz y diremos que A es una matriz de dimensión mn, o de dimensiones m y n. Escribiremos A M mn (K). 1.2. Ecuaciones lineales. Toda ecuación a1x1 a 2 x 2 a n x n c (), donde a i i 1 n son escalares de un cuerpo conmutativo K, se denomina ecuación lineal de incógnitas x1 , x 2 , , x n . Una solución particular de la ecuación () es una n-upla s1 ,s 2 , ,s n de escalares que verifican que a1s1 a 2s 2 a n s n c . El conjunto de todas las soluciones de () se llama solución general, conjunto solución o simplemente solución de la ecuación. Las ecuaciones lineales de la forma 0x1 0x 2 0x n c se llaman degeneradas verificándose que si c 0 no existe solución para la ecuación anterior y diremos que se trata de una ecuación incompatible, mientras que si c = 0 entonces, cualquier n-upla s1 ,s 2 , ,sn de escalares es solución, es decir, se trata de una identidad, en este caso la denominaremos ecuación nula. Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 1 SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución 1.3. Sistemas de ecuaciones lineales. Todo conjunto de ecuaciones lineales de la forma: a11x1 a12 x 2 a1n x n b1 a x a x a x b 2n n 2 S 21 1 22 2 a m1x1 a m 2 x 2 a mn x n b m recibe el nombre de sistema de m ecuaciones lineales con n incógnitas. Los elementos a ij K, i 1 m, j 1 n, son los coeficientes de S. Los elementos bi K, i 1 m, son los términos independientes de S. Los elementos x1 , x 2 , , x n son las incógnitas de S. Una solución particular de S es una n-úpla s1 ,s 2 , ,s n de escalares que es solución de cada una de las ecuaciones del sistema. El conjunto de todas las soluciones de S se denomina conjunto solución o solución general del sistema. Lo designaremos C. Resolver S es hallar el conjunto solución o solución general C Si C (tiene alguna solución) diremos que S es un sistema compatible y será: Determinado si C es finito Indeterminado si C es infinito Si C (no tiene solución) diremos que S es un sistema incompatible. El sistema S se puede escribir en forma matricial como S Ax = b a11 a12 a a 22 S 21 a m1 a m2 a11 a12 a a 22 A= 21 a m1 a m 2 a1n x1 b1 a 2n x 2 b 2 , donde: a mn x n b m a1n x1 b1 a 2n x b2 es la matriz de los coeficientes y b y x 2 a mn xn bm son las columnas de los términos independientes e incógnitas respectivamente. Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 2 SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución 1.4. Teorema de Rouché -Frobenius Dado un sistema S de m ecuaciones lineales con n incógnitas y ecuación matricial Ax = b: 1. Si rg A = rg (A|b) = r, entonces el sistema S es compatible. a. Si r = n (rango = número de incógnitas) el sistema es compatible determinado, es decir, el conjunto solución está formado por una única n-upla. b. Si r < n (rango < número de incógnitas) el sistema es compatible indeterminado, es decir, existen infinitas n-uplas que son solución de S. 2. Si rgA r g(A|b), entonces el sistema S es incompatible. 2. Métodos directos de resolución de sistemas. Un método directo de resolver un sistema de ecuaciones lineales es aquél tal que con un número finito de operaciones se obtendría la solución exacta del sistema, si no fuera por los errores de redondeo. En los métodos directos, mediante operaciones elementales en las filas de la matriz ampliada del sitema (A|b), un sistema S se transforma en otro sistema equivalente (misma solución) S’ del cual se puede obtener la solución de forma casi inmediata. Los más conocidos son: El método de eliminación de Gauss, la factorización LU y el método de Gaus-Jordan. 2.1.Método de eliminación de Gauss Este es el método más conocido, consiste en transformar, mediante operaciones elementales en las ecuaciones del sistema, un sistema S de ecuación matricial Ax = b, en un sistema S’ de forma escalonada o triangular y ecuación Ux = c, cuya resolución es inmediata. Diremos que un sistema S’ tiene forma escalonada o es escalonado si es de la forma: u11x1 u12 x 2 u1j x j u1n x n c1 u 22 x 2 u 2 j x j u 2n x n c 2 con (p < n) S' u pj x j u pn x n c p 0 c p 1 0 cm En forma matricial: Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 3 SISTEMAS DE ECUACIONES LINEALES u11 0 0 S’ 0 0 0 u12 u 22 0 u13 u 23 u 33 0 0 0 0 0 0 TEMA1: Métodos directos de resolución u1j u2 j u3 j u pj 0 0 u1n x c u 2n 1 1 x c u 3n 2 2 x c 3 3 u pn x c 0 j p x n cm 0 La matriz de coeficientes A se transforma en una matriz U escalonada. Si A es una matriz cuadrada, se transforma en una matriz U triangular superior. Es decir, un sistema S’ está en forma triangular o es triangular si es de la forma: u11x1 u12 x 2 u1n x n c1 u 22 x 2 u 2n x n c 2 S' u nn x n c n u11 0 En forma matricial: 0 u12 u1n x1 c1 u 22 u 2n x 2 c 2 0 u nn x n c n En particular, si A es invertible (sistema compatible determinado), se transforma en una matriz U triangular superior con todos los elementos de la diagonal principal distintos de cero u ii 0 . En general: i) El número de filas no nulas de U indica su rango. ii) La solución del sistema S’ se obtiene por sustitución hacia atrás, desde la última ecuación hacia la primera del sistema escalonado. iii)El proceso que transforma A en U es el siguiente: designando por f1, f2,…,fm las filas de A, transformamos a21 en 0 restando a la segunda fila la primera multiplicada por , es decir, f2 f1, de igual modo transformamos a31 en 0 con f3 - f1, en general, transformamos ap1 en 0 restando a la fila p-ésima la primera multiplicada por , es decir, fp - f1 (para p= 1,…,m). Se obtiene así una nueva matriz cuya primera columna solo tiene al elemento u11 = a11 0 (a11 se Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 4 SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución denomina pivote). Se procede de igual manera para transformar esta matriz en otra cuyos elementos por debajo de u22 sean 0 (u22 es ahora el pivote) y así sucesivamente hasta obtener la matriz escalonada U (los elementos de la diagonal principal son los pivotes utilizados). iv) En el desarrollo del apartado anterior se pueden presentar dos problemas: Los errores de redondeo se pueden multiplicar si no se elige el pivote adecuado. Un pivote puede convertirse en 0 en el transcurso del proceso. El denominado pivoteo elimina el segundo problema y contribuye a aumentar la exactitud de la solución, incluso cuando los uii son todos distintos de 0. Hay varias estrategias de pivoteo, la más usual es el pivoteo de columna que explicamos a continuación. El pivoteo consiste en intercambiar el orden de las ecuaciones de forma que, en cada columna, el pivote sea el elemento de mayor valor absoluto, es decir, recolocamos primero las ecuaciones de manera que en la primera columna el pivote | |≥| | i=2…n, procedemos a la eliminación (hacer 0 por debajo de u11) y, a continuación, recolocamos las ecuaciones de la 2 a la n de forma que | |≥| | i=3…n, se procede entonces a la eliminación (hacer 0 por debajo de u22) y así sucesivamente. Esta variante del método de Gauss se denomina método de eliminación de Gauss con pivotación parcial y es la que está implementada en MATLAB con el operador \ cuando el sistema Ax = b es compatible determinado: x = A\b. NOTA: Al resolver en MATLAB el sistema Ax = b con el operador \ se debe tener en cuenta que: a) Si A es cuadrada A\b proporciona la única solución del sistema, siempre que A sea invertible, o un aviso de error si no lo es (podría ser incompatible o compatible indeterminado). b) Si A no es cuadrada pero rgA = n (nº de incógnitas), A\b es la solución óptima por mínimos cuadrados. c) Si rgA = r < n, Matlab ofrece como resultado una única solución aunque el sistema sea compatible indeterminado. Recomendación: Estudiar los ejemplos 3.8 y 3.9 (pág. 119-122) del libro Análisis Numérico y Visualización Gráfica con MATLAB de Shoichiro Nakamura (consultar bibliografía del curso). 2.2.Método de factorización o descomposición LU Este método de resolución de un sistema S Ax = b es consecuencia inmediata de la reducción de la matriz A a una matriz escalonada U por el método de eliminación de Gauss. Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 5 SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución El procedimiento, consiste en transformar la matriz A, mediante operaciones elementales en las filas de la matriz ampliada A|b, en un producto A = LU donde L es una matriz triangular inferior (mxm) y U es una matriz escalonada (mxn). De esta forma, el sistema S anterior se escribe: LUx = b Haciendo Ux = z, queda el sistema L z= b que por sustitución hacia adelante es de resolución inmediata y una vez obtenida z, se obtendría x en Ux = z con un procedimiento análogo de resolución hacia atrás. Si no es necesario el pivoteo (intercambio de filas), la matriz U es la resultante de la eliminación de Gauss y la matriz L = E-1 donde E es la matriz que resulta de aplicar las mismas operaciones elementales que transforman A en U a la matriz unidad de orden m, es decir: Si Ek·Ek-1····E1·A=U, donde Ei son las matrices elementales1 de la reducción de Gauss y designamos por E = Ek·Ek-1····E1 E·A = U A = E-1·U, luego: A = LU, donde L= E-1 y U es la matriz escalonada de la reducción de Gauss. MATLAB proporciona la descomposición LU, sin pivoteo, de una matriz A mediante la instrucción [L,U]=lu(A) Si es necesario el intercambio de filas (pivoteo) y conociéramos dichos cambios antes de aplicar Gauss, podríamos expresar el efecto de los mismos mediante una matriz P unitaria (los elementos no nulos son 1 y en cada fila hay un único 1 y lo mismo en cada columna) que es la resultante de aplicar dichos cambios a la matriz unidad correspondiente (mxm en este caso), entonces PAx = Pb = y se procedería a la descomposición LU de PA como en el caso anterior, es decir: PA = LU Lux = y haciendo Ux = z, se resolvería, en primer lugar, Lz = y, a continuación, Ux = z MATLAB proporciona la descomposición LU, con pivoteo, de una matriz A mediante la instrucción [L,U,P]=lu(A) Observación: La factorización LU presenta la ventaja de que con las mismas L y U permite la resolución de sistemas de ecuaciones lineales que solo difieren en los términos independientes. Recomendación: Estudiar el ejemplo 3.12 (pág. 127) del libro Análisis Numérico y Visualización Gráfica con MATLAB de Shoichiro Nakamura (consultar bibliografía del curso). 1 Matriz elemental es la que resulta de aplicar una operación elemental a las filas de la matriz unidad Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 6 SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución 2.3.Método de Gauss-Jordan Este método es una variación de la eliminación de Gauss para resolver el sistema Ax = b siendo A una matriz cuadrada inversible de orden n. Consiste en eliminar también los elementos que están por encima del pivote a la vez que se escalan las filas para que el pivote sea la unidad. El pivoteo sigue siendo necesario en este método por las mismas razones que el método de eliminación de Gauss. [A| b] [In | x] Siendo x la solución del sistema. Las aplicaciones más usuales de este método son: i) Cálculo de la matriz inversa [A| In] [In | A-1] ii) Resolución de sistemas en los que solo varían los términos independientes. Si designamos por B1, B2,···, Bk las columnas de los términos independientes de los distintos sistemas y S1, S2,···, Sk sus conjuntos soluciones entonces: [A| B1, B2,···, Bk ] [In | S1, S2, ····, Sn] si es compatible determinado. [A| B1, B2,···, Bk ] [T | S1, S2, ····, Sn] si es compatible indeterminado, siendo T una matriz unitaria distinta de la unidad. Recomendación: Estudiar el ejemplo 3.10 (pág. 123) del libro Análisis Numérico y Visualización Gráfica con MATLAB de Shoichiro Nakamura (consultar bibliografía del curso). Ejercicios: Realizar los ejercicios 3.11-3.15 (pág. 139) del libro Análisis Numérico y Visualización Gráfica con MATLAB de Shoichiro Nakamura (consultar bibliografía del curso). 2.4.Número de operaciones El número de operaciones que se requieren para resolver un problema por el método 2n 3 . 3 El número de operaciones que se requieren para resolver un problema por el método de Gauss es del orden de de Gauss-Jordan es del orden de 4n 3 . 3 2.5.Tipos de matrices Se dice que una matriz A M n K) es estrictamente diagonal dominante por filas si Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 7 SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución n a ii > a ij para i = 1, ..., n. j1 j i Una matriz simétrica (A = At) es definida positiva si y solo si xt A x > 0 para cualquier n-upla x no nula. Lo cual es equivalente a que todos los menores principales de A sean positivos y también a que todos los valores propios de A sean positivos. 2.6.Teoremas a) Si A M n K es estrictamente diagonal dominante por filas, entonces det (A) ≠ 0 (A es regular o no singular). Además, para cualquier sistema Ax = b es aplicable el método de Gauss sin pivoteo y los cálculos son estables respecto al crecimiento de errores por redondeo. b) Si A M n K es definida positiva entonces det (A) ≠ 0. Además, para cualquier sistema A x = b es aplicable el método de Gauss sin pivoteo y los cálculos son estables respecto al crecimiento de errores por redondeo. c) Si A M n K es una matriz para la que es aplicable el método de Gauss sin pivoteo, entonces puede ser factorizada de la forma LU: i. A = LU siendo L triangular inferior con 1 en la diagonal principal, U triangular superior (forma de Doolittle). ii. A = LU siendo L triangular inferior, U triangular superior con 1 en la diagonal principal (forma de Crout). 2.7.Descomposición de Cholesky Es un caso particular de la descomposición LU para matrices simétricas definidas positivas. Se trata de tomar U como la matriz traspuesta de L, es decir: A = L Lt, donde L es una matriz triangular inferior con sus elementos de la diagonal principal estrictamente positivos. La descomposición de Cholesky es única: dada una matriz simétrica definida positiva A, hay una única matriz triangular inferior L con entradas diagonales estrictamente positivas tales que A = LLt. El recíproco también es cierto: si A se puede escribir como LLt para alguna matriz invertible L, triangular inferior o no, entonces A es simétrica definida positiva. Se obtiene de esta forma una nueva caracterización de las matrices simétricas definidas positivas: Una matriz simétrica es definida positiva si y solo si admite una única factorización de Cholesky. Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 8 SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución Sistemas de la forma Ax = b con A simétrica y definida positiva aparecen a menudo en la práctica. Por ejemplo, las ecuaciones normales en problemas de mínimos cuadrados lineales son problemas de esta forma. La descomposición de Cholesky se utiliza para resolver este tipo de sistemas de ecuaciones lineales en la misma forma que se usa la descomposición LU genérica. Y es más eficiente y más estable numéricamente que cualquier otra descomposición LU. MATLAB proporciona la descomposición de Cholesky mediante la instrucción: L=chol(A,’lower’) O bien, chol(A), obteniéndose Lt. 2.8. Matrices dispersas. Matrices tridiagonales. Algoritmo de Crout Matrices dispersas son aquellas que tienen pocos elementos no nulos frente a los nulos, por ejemplo, la matriz identidad sería una matriz dispersa. Habitualmente son de gran tamaño por lo que almacenarlas y tratarlas como matrices normales supone un coste excesivo. MATLAB dispone de funciones específicas para estas matrices. Así la función sparse declara dispersa una matriz, de forma que se almacenan y se opera sólo con los elementos no nulos. La orden full (A) convierte en llena una matriz declarada previamente dispersa. En diversas aplicaciones nos encontramos con sistemas Ax = z donde A es cuadrada y sus elementos son todos nulos excepto los de la diagonal principal y algunas de las paralelas a dicha diagonal. Estas matrices se denominan matrices banda. Un caso particular de matrices banda son las matrices tridiagonales. Se llama matriz tridiagonal a una matriz con la forma siguiente: a11 a12 a 21 a 22 0 a 32 A 0 0 0 0 0 0 a 23 0 a 33 0 0 a n 1,n 1 0 a n,n 1 0 0 0 a n 1,n a n,n Para este tipo de matrices hay algoritmos de factorización que simplifican el número de operaciones a realizar, aprovechando la gran cantidad de ceros que aparecen siguiendo patrones regulares. Estos métodos son preferibles frente a los que no tienen en cuenta la tridiagonalidad de la matriz. Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 9 SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución Algoritmo de Crout Sea Ax = z, donde A es cuadrada y tridiagonal. Por comodidad usaremos la notación a1 b1 0 0 c1 a 2 b2 0 A 0 c2 a 3 0 0 0 0 a n Podemos factorizar A como producto de dos matrices triangulares L y U, donde L es bidiagonal inferior y U bidiagonal superior de la siguiente forma: a1 b1 c1 a 2 0 c2 0 0 0 l1 0 0 0 c1 l2 0 0 0 c 2 l3 a n 0 0 0 0 b2 a3 0 0 1 u1 0 0 0 1 u 2 0 · 0 0 1 ln 0 0 0 0 0 0 1 Esta factorización es la LU que se obtiene con el método de eliminación de Gauss, escalando cada fila de la matriz triangular superior para que el pivote sea 1. Las expresiones que nos dan los elementos de las matrices L y U son: l1 = a1 ui bi para i 1,, n 1 li li = ai – ui-1 ci-1 para i = 2,···, n De esta forma, el sistema tridiagonal Ax = z bidiagonales: se transforma en dos sistemas Ax = z Lux = z L(Ux) = z Haciendo Ux = y, resolvemos primero de manera sencilla e inmediata, por sustitución hacia adelante o directa, el sistema bidiagonal Ly = z Seguidamente, por sustitución hacia atrás o regresiva, se resuelve, Ux = y. MATLAB dispone de la función crout.m que proporciona la solución. 3. Normas de vectores. Normas matriciales. Análisis de errores. 3.1. Normas vectoriales en Rn Sea x = (x 1, x 2, ··· , x n) Rn . Las normas de vectores más usuales son: x 1 x1 x 2 x n Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 10 SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución 1 2 2 x i es la norma euclídea. Representa la noción i 1 usual de distancia al origen en el plano o espacio tridimensionales en sistemas cartesianos rectangulares. 2 x2 x 2 x1 x 2 x n 2 n máx x i i 1n 3.2. Normas matriciales en M m n R Sea A a i j Mm n R , las normas matriciales subordinadas más usuales son: m n A 1 máx a i j 1 jn A máx a i j 1i m i 1 j1 2 A 2 Ai, j i, j 1 2 t Norma espectral: A 2 A A Todas las normas matriciales subordinadas verifican, además de las propiedades características de toda norma: A * 0 A * 0A0 AB * A * B * cA * c A * las siguientes propiedades: A * A A B * A * B * A1 A * 1 * I * 1 Donde A es el radio espectral de la matriz A, es decir, el máximo de los valores absolutos de los autovalores o valores propios de dicha matriz. La norma espectral es la utilizada por Matlab. Es diferente a la norma previa que se designa de la misma manera. Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 11 SISTEMAS DE ECUACIONES LINEALES TEMA1: Métodos directos de resolución 3.3. Condicionamiento de una matriz Hay sistemas de ecuaciones lineales en los que la introducción de pequeños cambios en los coeficientes, producen grandes cambios en la solución. Se dice que estos sistemas están mal condicionados. 0.12065x 0.98775y 2.01045 Ejemplo: El sistema representa geométricamente la 0.12032x 0.98775y 2.00555 intersección de dos rectas que forman un pequeño ángulo entre ellas y la solución es. x 14.84848 y 0.22170 Si modificamos en una milésima el término independiente de la primera ecuación 0.12065x 0.98775y 2.01145 , entonces la solución cambia a 0.12032x 0.98775y 2.00555 x 17.87879 y 0.14743 Y es que, a lo largo del proceso de resolución de una ecuación o un sistema de ecuaciones, es relativamente sencillo que se puedan producir pequeños cambios en los coeficientes, debidos a errores de redondeo, que además pasen inadvertidos. Para comprobar si un sistema está, o no, mal condicionado, se estudia si la matriz de sus coeficientes está, o no, mal condicionada. Para averiguar si una matriz cuadrada está mal condicionada estudiaremos dos procedimientos: I. El número de condición de la matriz Se define el número de condición de una matriz cuadrada A como el escalar: Cond*(A)= A * A 1 donde A * * es una norma cualquiera de la matriz A. Es una medida de la sensibilidad de la solución de un sistema de ecuaciones lineales a los errores presentes en los datos. Da una indicación de la precisión de los resultados. Como consecuencia de las propiedades de la norma y de la propia definición de número de condición, se verifica: - Cond(A) 1 A Mn - Cond(A) = cond (A-1) A Mn - Cond(c A) = cond (A) A Mn , c 0 Se verifican los dos siguientes resultados: 1) A Mn inversible, b 0 , si se consideran los sistemas: Ax = b A x + x = b + b Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 12 SISTEMAS DE ECUACIONES LINEALES Entonces: x x cond(A) TEMA1: Métodos directos de resolución b b 2) A Mn inversible, b 0 , si se consideran los sistemas: A + A x + x = b Ax = b Entonces: x x + x cond(A) A A Por tanto, cuanto mayor sea cond (A) peor será el condicionamiento del sistema. En el ejemplo anterior, el mal condicionamiento es debido a que Cond2 (A)= A 2 A 1 2 = cond ([0.12065, 0.98775; 0.12032, 0.98775]) = 6559.8 El sistema A x = b estará tanto mejor condicionado cuanto más próximo a 1 esté el número de condición cond (A). Para poder calcular con exactitud la solución de un problema mal condicionado la precisión de los cálculos ha de ser muy elevada. II. Podemos obtener una medida directa de los errores en la resolución de un problema mal condicionado si dada A y obtenida A-1 mediante los cálculos ocurre alguna de las siguientes posibilidades: A A1 se diferencia notablemente de 1. A AA-1 se aparta de la matriz unidad. A-1 A -1 -1 1 es diferente de A. 1 se separa de la matriz unidad de forma más notoria que AA-1. Unidad Docente de Matemáticas de la ETSITGC Asignatura: MÉTODOS MATEMÁTICOS 13