Resolución de sistemas de ecuaciones lineales. Métodos iterativos. 19 4. RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES Y NO LINEALES. MÉTODOS ITERATIVOS. 4.1.- Introducción Los métodos numéricos para resolución de sistemas de ecuaciones lineales se clasifican en dos grandes grupos: métodos directos y métodos iterativos. Los métodos directos son aquellos que proporcionan la solución exacta en el supuesto de que todas las operación es se pueden llevar a cabo sin errores de redondeo. Estos métodos no se pueden aplicar a problemas de grandes dimensiones. Por otra parte muchos de los grandes problemas que se plantean en la industria y en la técnica presentan unas matrices de coeficientes en las que los elementos distintos de cero son muy pocos. Tal es el caso, por ejemplo, de los problemas que surgen en el análisis y planificación de sistemas eléctricos de generación y transporte de energía, en problemas de contorno para ecuaciones en derivadas parciales, en el análisis de estructuras mecánicas mediante elementos finitos, etc. Para la resolución de este tipo de sistemas los métodos iterativos son mucho más interesantes ya que requieren un menor esfuerzo computacional. Esta clase de métodos consiste en expresar el sistema de ecuaciones de una forma equivalente: Ax b R x S x b x T x c A R S Lo cual sugiere el siguiente esquema iterativo : x( k 1) T x( k ) c En el que a T se le denomina matriz de paso y a c vector corrector. El método iterativo será convergente si : lim x ( k ) x k Siendo x la solución exacta del sistema que se obtendría tras infinitas etapas de iteración. Los métodos iterativos requieren partir de una aproximación inicial de la solución del sistema x(0) y tienen también la ventaja frente a los directos de que se ven menos afectados por los errores de redondeo. 4.2.- Normas vectoriales Cuando se construye una sucesión de vectores aproximación de la solución de un sistema lineal, para estudiar la convergencia interesa medir la distancia entre las dos últimas aproximaciones, y para medir esta distancia es necesario utilizar el concepto de norma de un vector. Norma vectorial. Este concepto se presenta en Álgebra y ya es conocido. Se pueden definir distintas normas en un espacio vectorial de dimensión n. Las más utilizadas son: x 1 xi n i 1 x2 x x n i 1 2 i (norma euclídea) max xi (norma del máximo) 1i n Ampliación de Matemáticas – Ing. Técnica de Telecomunicación Resolución de sistemas de ecuaciones lineales. Métodos iterativos. 20 Esta última es la que más se utiliza al estudiar una sucesión de vectores. 4.3.- Métodos iterativos para sistemas lineales Métodos de iteración de Jacobi y de Gauss-Seidel 2.3.1.- Ejemplo . Consideremos el sistema de ecuaciones 4x y z 7 4 x 8 y z 21 2 x y 5 z 15 Estas ecuaciones se pueden escribir como x 7 y z ; 4 y 21 4 x z 15 2 x y ; z 8 5 lo que sugiere el siguiente proceso iterativo: x ( k 1) 7 y(k ) z (k ) ; 4 y 722 1.75 ; 4 y (1) ( k 1) 21 4 x ( k ) z ( k ) 15 2 x ( k ) y ( k ) ( k 1) ; z 8 5 Si empezamos con P(0) = (x(0), y(0), z(0)) = (1, 2, 2), entonces la iteración parece converger a la solución (2, 4, 3). En efecto, sustituyendo x(0) = 1, y(0) = 2 y z(0) = 2 en el miembro derecho de la relación obtenemos: x (1) 21 4 2 15 2 2 3.375 ; z (1) 3.80 8 5 El nuevo punto P(1) = (1.75, 3.375, 3.00) está más cerca de (2, 4, 3) que P(0). Este proceso se conoce como método de iteración de Jacobi y puede usarse para resolver algunos tipos de sistemas de ecuaciones lineales. En la resolución numérica de ecuaciones en derivadas parciales suelen aparecer sistemas de ecuaciones lineales con incluso 100 000 incógnitas; en estos sistemas la matriz de los coeficientes es dispersa, es decir, un alto porcentaje de los elementos de la matriz son iguales a cero. Si hay algún tipo de patrón en la distribución de los elementos distintos de cero (ejemplo: los sistemas tridiagonales), entonces un método iterativo puede resultar muy eficaz en la resolución de estos sistemas tan enormes. Finalmente conviene señalar que en algunas ocasiones el método iterativo de Jacobi no funciona. Algunas veces podemos acelerar la convergencia. Puesto que x(k+1) es, probablemente, mejor aproximación al límite que x(k), sería razonable usar x(k+1) en vez de x(k) a la hora de calcular y(k+1) y, de forma semejante, sería mejor usar x(k+1) e y(k+1) en el cálculo de z(k+1). Ejemplo. Consideremos el siguiente proceso iterativo para el mismo sistema de ecuaciones: Ampliación de Matemáticas – Ing. Técnica de Telecomunicación Resolución de sistemas de ecuaciones lineales. Métodos iterativos. x ( k 1) 7 y ( k ) z (k ) ; 4 y ( k 1) 21 21 4 x ( k 1) z ( k ) 15 2 x ( k 1) y ( k 1) ; z ( k 1) 8 5 A este proceso iterativo se conoce como método de Gauss-Seidel. Sustituyendo y(0) = 2 y z(0) = 2 en la primera ecuación obtenemos: x (1) 722 1.75 4 Sustituyendo ahora x(1) = 1.75 y z(0) = 2 en la segunda obtenemos: y (1) 21 4(1.75) 2 3.75 8 Finalmente, sustituyendo x(1) = 1.75 e y(1) = 3.75 en la tercera: z (1) 15 2(1.75) 3.75 2.95 5 Del mismo modo para calcular x(2) se utilizarán y(1) y z(1); para calcular y(2) se usarán x(2) y z(1); para calcular z(2) se usarán x(2) e y(2); y así sucesivamente. Vamos a considerar ahora los procesos iterativos de Jacobi y Gauss-Seidel con mayor generalidad. Supongamos que tenemos un sistema de n ecuaciones lineales a11 x1 a12 x2 a1 j x j a1 N xN b1 a21 x1 a22 x2 a2 j x j a2 N xN b2 a j1 x1 a j 2 x2 a jj x j a jN xN b j aN 1 x1 aN 2 x2 aNj x j aNN xN bN Sea Pk = (x1(k), x2(k), ..., xj(k), ..., xN(k)) el vector que aproxima la solución en la etapa k, de manera que en la siguiente etapa se obtendrá Pk+1 = (x1(k+1), x2(k+1), ..., xj(k+1), ..., xN(k+1)). El superíndice (k) de las coordenadas de Pk nos permite identificar la etapa a la que pertenece el vector de soluciones aproximadas. Las fórmulas de iteración usan la fila j-ésima para despejar xj(k+1) como una combinación lineal de los valores previamente obtenidos: Método iterativo de Jacobi: x ( k 1) i bi ai ,1 x1( k ) ai ,i 1 xi(k1) ai ,i 1 xi(k1) ai , N xN( k ) ai ,i bi ai , j x j ( k ) N j 1 j i ai ,i para i = 1, 2, ..., N. En el método iterativo de Jacobi se usan todos los valores aproximados de la etapa anterior en la obtención de los nuevos valores aproximados, mientras que en el método iterativo de GaussSeidel se emplean las últimas aproximaciones obtenidas conforme se van generando: Ampliación de Matemáticas – Ing. Técnica de Telecomunicación Resolución de sistemas de ecuaciones lineales. Métodos iterativos. 22 Método iterativo de Gauss-Seidel: b ai ,1 x1( k 1) ai ,i 1 xi(k11) ai ,i 1 xi(k1) ai , N xN( k ) xi( k 1) i ai ,i bi ai , j x j ( k 1) i 1 2.3.2.- j 1 ai ,i a N j i 1 i, j x j(k ) (i 1, 2, ..., N ) El metodo SOR El método SOR es parecido a los métodos de Jacobi y Gauss-Seidel, pero utiliza un factor de escala para reducir más rápidamente el error de la aproximación. La técnica SOR pertenece a una clase de métodos de relajación que calculan las aproximaciones x(k) mediante la siguiente expresión: i 1 n xi ( k 1) (1 ) xi ( k ) bi aij x j ( k 1) aij x j ( k ) aii j 1 j i 1 Donde es el factor de escala. Cuando = 1 tenemos el método de Gauss-Seidel. Cuando 0 < < 1 el procedimiento recibe el nombre de método de subrelajación y puede usarse para obtener la convergencia cuando Gauss-Seidel no converge. Cuando 1 < el procedimiento recibe el nombre de método de sobrerrelajación , y se emplea para acelerar la convergencia en sistemas para los que el método de Gauss-Seidel converge. 4.4.- Convergencia de los métodos iterativos Al utilizar un método iterativo para resolver un sistema de ecuaciones lineales conviene tener en cuenta los siguientes aspectos: - El error de redondeo producido en cada iteración no tiene tanta importancia como en los métodos directos: importa más el error de truncamiento del propio método. - Los métodos iterativos son apropiados para resolver sistemas grandes en los que la matriz de coeficientes es dispersa. - No se pretende obtener la solución exacta (en teoría sería necesario realizar infinitas iteraciones) sino una solución aproximada. - El criterio de parada es que la distancia absoluta o relativa entre los resultados obtenidos en las dos últimas iteraciones sea suficientemente pequeña. Para cuantificar esta distancia se utiliza la norma vectorial de su diferencia x ( k 1) x ( k ) . Con esta definición de la distancia entre dos vectores, el criterio de parada se puede representar en términos de: el error absoluto: x el error relativo: x ( k +1) ( k +1) x x x ( k +1) (k ) (k ) Ampliación de Matemáticas – Ing. Técnica de Telecomunicación Resolución de sistemas de ecuaciones lineales. Métodos iterativos. 23 Recordemos ahora un par de definiciones relativas a dos tipos de matrices, enunciadas en el capítulo anterior y que vuelven a aparecer en este capítulo, y la definición de radio espectral de una matriz, para pasar a continuación a enunciar un teorema general relativo a la convergencia de los métodos iterativos para la resolución de sistemas lineales. Definición: Se dice que una matriz A de orden n es estrictamente diagonal dominante si: akk akj n j 1 jk (k 1, 2, ..., n) Definición: Se dice que una matriz A de orden n es definida positiva si, siendo x un vector perteneciente a n: xt A x 0 x , y xt A x 0 si x = 0 Definición: Se define el radio espectral de una matriz A de orden n, y se representa como (A), al mayor de los valores propios de A en valor absoluto o módulo. Teorema: Sea el sistema de ecuaciones : Ax b El esquema iterativo: x T x c x( k 1) T x( k ) c Es convergente si y solo si el radio espectral de la matriz de paso T es menor que 1. En este caso la sucesión x(k) converge a la solución exacta del sistema cualquiera que sea la aproximación inicial x(0) Este teorema es válido para cualquier método iterativo para la resolución de un sistema de ecuaciones lineales. Sin embargo su aplicación puede resultar complicada ya que requiere el cálculo del radio espectral de la matriz de paso. La convergencia de los métodos de Jacobi y de Gauss-Seidel se puede asegurar si la matriz de coeficientes tiene ciertas propiedades. Se puede demostrar que: - Si en el sistema de ecuaciones lineales A x = b la matriz A es estrictamente diagonal dominante, entonces para cualquier aproximación inicial los métodos de Jacobi y de Gauss-Seidel son convergentes cualesquiera que sean el vector de términos independientes y la aproximación inicial. Teniendo esto en cuenta, en muchas ocasiones, para obtener la convergencia bastará con reordenar el sistema colocando en la diagonal principal los coeficientes de mayor valor absoluto. - El método de Gauss-Seidel también converge cuando la matriz A es definida positiva. En general el método de Gauss-Seidel converge más rápidamente que el de Jacobi. - Si A es una matriz definida positiva y 0 < < 2, entonces el método SOR converge para cualquier valor inicial x(0) . A partir de las matrices de paso de los métodos de Jacobi, Gauss-Seidel y SOR se puede determinar en el caso de que la matriz A sea tridiagonal, además de definida positiva, la elección óptima del valor de . Ampliación de Matemáticas – Ing. Técnica de Telecomunicación Resolución de sistemas de ecuaciones lineales. Métodos iterativos. 4.5.- 24 Métodos iterativos para sistemas no lineales. Conceptos previos. Para resolver sistemas de ecuaciones no lineales es preciso trabajar con funciones de varias variables, y hay que usar las derivadas parciales y la matriz jacobiana. f1 ( x, y ) 0 Sea el sistema no lineal: f 2 ( x, y ) 0 Definición. (Matriz jacobiana). Sean f1(x,y) y f2(x,y) funciones de dos variables independientes x e y. Entonces su matriz jacobiana J(x,y) es: f1 f1 x y J ( x, y ) f 2 f 2 x y 2.5.1.- La diferencial Cuando tenemos una función de varias variables, la diferencial es una magnitud que podemos usar para mostrar cómo afectan los cambios de las variables independientes a las variables dependientes. Consideremos las funciones: u = f1(x,y,z), v = f2(x,y,z) y w = f3(x,y,z) Supongamos que los valores de las funciones anteriores se conocen en el punto (x0,y0,z0) y que queremos estimar sus valores en un punto cercano (x,y,z). Si denotamos por du, dv y dw los cambios diferenciales en las variables dependientes y por dx, dy y dz los cambios diferenciales en las variables independientes, entonces estos cambios se pueden expresar: f f f du 1 ( x0 , y0 , z0 )dx 1 ( x0 , y0 , z0 )dy 1 ( x0 , y0 , z 0 )dz x y z f f f dv 2 ( x0 , y0 , z0 )dx 2 ( x0 , y0 , z0 )dy 2 ( x0 , y0 , z 0 )dz x y z f f f dw 3 ( x0 , y0 , z0 )dx 3 ( x0 , y0 , z0 )dy 3 ( x0 , y0 , z 0 )dz x y z Usando notación vectorial, puede escribirse de forma más compacta utilizando la matriz jacobiana. Si representamos du, dv y dw mediante la función vectorial dF y las diferenciales dx, dy y dz por dX, entonces: du dx dF dv J ( x0 , y0 , z0 ) dy J ( x0 , y0 , z0 ) dX dw dz 4.6.- El método de Newton-Raphson para sistemas no lineales Vamos a construir el método de Newton-Raphson en el caso bidimensional. Esta construcción se generaliza fácilmente a dimensiones mayores. u f1 ( x, y ) Consideremos el sistema: v f 2 ( x, y ) que puede interpretarse como una transformación del plano XOY en el plano UOV. Si estamos interesados en el comportamiento de esta transformación cerca del punto (x0,y0), cuya imagen es el punto (u0,v0), y si las dos funciones tienen derivadas parciales continuas, entonces podemos Ampliación de Matemáticas – Ing. Técnica de Telecomunicación Resolución de sistemas de ecuaciones lineales. Métodos iterativos. 25 usar la diferencial del sistema para escribir un sistema de aproximaciones incrementales lineales válidas cerca del punto (x0,y0) en cuestión: f f u u0 1 ( x0 , y0 ) x x0 1 ( x0 , y0 ) y y0 x y f f v v0 2 ( x0 , y0 ) x x0 2 ( x0 , y0 ) y y0 x y El sistema anterior es una aproximación lineal local que nos da una idea del efecto que pequeños cambios en las variables independientes producen en las variables dependientes. Si usamos la matriz jacobiana J(x0,y0), esta relación se escribe de forma más cómoda como: f1 f1 ( x0 , y0 ) ( x0 , y0 ) x y u u0 x x0 x x0 J ( x0 , y0 ) v v0 f 2 ( x , y ) f 2 ( x , y ) y y0 y y0 0 0 x 0 0 y Usaremos esta aproximación para desarrollar el método de Newton bidimensional. Consideremos el sistema de ecuaciones que resulta de igualar u y v a cero en: 0 f1 ( x, y ) 0 f 2 ( x, y ) Supongamos que (p,q) es una solución de este sistema, es decir, 0 f1 ( p, q ) , y 0 f 2 ( p, q) . Si consideramos pequeños cambios de las funciones cerca de un punto inicial (p0,q0) próximo a la solución (p,q): u u u0 ; p x p0 v v v0 ; q y q0 entonces u u0 f1 ( p, q ) f1 ( p0 , q0 ) 0 f1 ( p0 , q0 ) v v0 f 2 ( p, q ) f 2 ( p0 , q0 ) 0 f2 ( p0 , q0 ) Expresando en forma matricial el sistema lineal cuyas incógnitas son p y q: f1 f1 x ( p0 , q0 ) y ( p0 , q0 ) p f (p ,q ) 1 0 0 f 2 f 2 q f 2 ( p0 , q0 ) x ( p0 , q0 ) y ( p0 , q0 ) Si la matriz jacobiana J(p0,q0) es invertible, entonces podemos despejar P p q = p q p0 q0 t de manera que t t P J ( p0 , q0 ) 1 F ( p0 , q0 ) Esto nos proporciona la siguiente aproximación P1 a la solución P = [p q]: P1 P0 P P0 J ( p0 , q0 ) 1 F ( p0 , q0 ) Hagamos notar que la fórmula anterior es la generalización de la fórmula de iteración del método de Newton-Raphson para funciones de una variable que, como vimos, es: p1 p0 f ( p0 ) f ( p0 ) Ampliación de Matemáticas – Ing. Técnica de Telecomunicación Resolución de sistemas de ecuaciones lineales. Métodos iterativos. 2.6.1.- Esquema del método de Newton-Raphson Supongamos que hemos obtenido Pk. Paso 1. Evaluamos la función f1 ( pk , qk ) F ( Pk ) f 2 ( pk , qk ) Paso 2. Evaluamos la matriz jacobiana f1 x ( pk , qk ) J ( Pk ) f 2 x ( pk , qk ) f1 ( pk , qk ) y f 2 ( pk , qk ) y Paso 3. Calculamos P resolviendo el sistema lineal: J ( Pk )p F ( Pk ) Paso 4. Calculamos el siguiente punto: Pk 1 Pk P Y se repite el proceso. Ampliación de Matemáticas – Ing. Técnica de Telecomunicación 26