Métodos computacionales Solución de sistemas de ecuaciones Método de Gauss Seidel Introducción Breve repaso de métodos directos Método de Gauss Seidel Comparación de Gauss Seidel con Jacobi Convergencia del método Conclusiones Solución de sistemas de ecuaciones Método de Gauss Seidel Objetivos. Resolver sistemas de ecuaciones algebraicas lineales y valorar su aplicación en diversos campos de la ciencia y la técnica. Conocer varias técnicas y su confiabilidad, así como sus ventajas y desventajas. Entender la importancia del método de Gauss Seidel para grandes sistemas de ecuaciones dispersos. Comprender el valor de la diagonal dominante de un sistema. Entender el fundamento de la relajación y cuando es apropiada su aplicación. Desarrollar un software para implementar el método de Gauss – Seidel. Solución de sistemas de ecuaciones Tratamos en este tema ecuaciones algebraicas lineales que tienen la forma general : a11 x1 +a12 x 2 + ... +a1n x n =b1 a x +a x + ... +a x =b 21 1 22 2 2n n 2 .......... .......... .......... .......... a n1 x1 +a n 2 x2 + ... +a nn x n =bn Donde las a son los coeficientes constantes, las b los términos independientes constantes y n es el número de ecuaciones. Solución de sistemas de ecuaciones Introducción. Es necesario considerar el nro. de ecuaciones a resolver: Si n ≤ 3 las técnicas son simples Pueden aplicarse entonces el método gráfico y la regla de Cramer. xi = b1 a12 a13 b2 b3 a22 a32 a23 a33 D De manera que aumenta el nro de ecuaciones los determinantes consumen tiempo al tener que evaluarlos. Se utilizan entonces otras técnicas mas eficientes para la resolución de dichos sistemas. Solución de sistemas de ecuaciones Se introduce el uso de la computadora Esta permite la resolución de grandes conjuntos de ecuaciones algebraicas lineales simultáneas. Los sistemas de ecuaciones lineales simultáneas surgen de sistemas físicos o en diferentes contextos de problemas matemáticos. Estos resultan cuando se requiere de funciones matemáticas que satisfagan varias condiciones en forma simultánea. Cada condición resulta en una ecuación que contiene coeficientes conocidos y variables desconocidas Es posible considerar dos tipos de sistemas que se modelan mediante ecuaciones algebraicas lineales: Sistemas que se modelan A) Sistemas de variables agrupadas que involucran componentes finitos relacionados B) Sistemas de variables distribuidas que involucran un continuo Modelo de una serie de reactores químicos x3 A x2 B Alimentación x5 x1 Alimentación x1 .... xi −1 x4 x1 xi +1 .... xn Solución de sistemas de ecuaciones Para resolver numéricamente, este tipo de sistemas se utilizan: • MÉTODOS DIRECTOS: •Son provistos por la matemática pura, y llevan a una solución exacta del problema, luego de un número finito de pasos. Este número depende exclusivamente de la cantidad de ecuaciones que componen el sistema. •El error de los resultados se debe, si no hubiese errores inherentes en los parámetros, únicamente a los redondeos realizados durante los cálculos. Métodos directos Hemos visto ya la técnica fundamental para resolver sistemas algebraicos lineales-> Método de Eliminación de GAUSS Consta de dos procesos centrales: eliminación hacia delante ( se obtiene una matriz triangular ) y substitución inversa Versión simple para entender la técnica y algunas modificaciones para minimizar problemas. Evitar o minimizar errores, se pueden utilizar 3 técnicas: 1) Uso de mas cifras significativas 2) Pivoteo 3) Escalamiento Métodos directos: Eliminación 1) Uso de mas cifras significativas: Es la manera mas simple para el mal condicionamiento de los sistemas. Si se utiliza precisión extendida se reduce el problema. Se paga un precio en calculo y memoria. 2) Pivoteo: Antes de normalizar es conveniente determinar el coeficiente mas grande disponible en la columna debajo del pivote. Si los renglones se intercambian se realiza pivoteo parcial. 3) Escalamiento: Minimiza los errores de redondeo, en aquellos casos que ciertos coeficientes de la ecuación son mucho mas grandes que otros. Por ej. Escalar las ecuaciones de forma tal que el elemento máximo en cualquier renglón sea igual a 1. Métodos directos: Eliminación 1) Sistemas singulares: Un sistema de ec. puede estar mal condicionado cuando dos o mas de las ec. son casi idénticas. En tales casos se pierde un grado de libertad y se daría un caso imposible de n-1 ecuaciones con n incógnitas. 2) Si los sistemas son grandes esto podría no ser tan obvio. Entonces sería útil tener una forma de detectar la singularidad de manera automática. 3) La respuesta esta dada: el determinante de un sistema singular es cero. 4) Un algoritmo puede efectuar una prueba para discernir si se crea un cero en la diagonal durante la etapa de eliminación. Si descubre uno, el cálculo se puede parar inmediatamente y en la pantalla aparecerá un mensaje de alerta Métodos directos: Gauss Jordan Una modificatoria del mismo es el Método de Gausss-Jordan Diferencia: en que cuando una incógnita se elimina, esta es eliminada de todas las otras ecuaciones, no sólo de las subsecuentes. Todos los renglones se normalizan al dividirlos por su elemento pivote Se obtiene una matriz identidad en vez de una triangular . No es necesaria la substitución hacia atras para obtener la solución. Para disminuir los errores por redondeo: técnicas de pivoteo parcial y el uso de mayor nro. de cifras significativas en los cálculos. Comparación de los métodos Método Eliminación de Gauss: Ventajas: Algoritmo de solución mas básico Desventaja: Solución de un único conjunto de ecuaciones lineales a la vez. Método de Gauss-Jordán: Ventajas: La base para calcular la inversa; puede resolver conjuntos múltiples de ecuaciones. Desventaja: Menos eficiente para un único conjunto de ecuaciones. ECUACIONES LINEALES SIMULTANEAS •MÉTODOS ITERATIVOS. •Los métodos iterativos, son estrictamente numéricos y dan una solución aproximada del sistema de ecuaciones lineales, obtenida como límite de una sucesión de vectores construida mediante un proceso de aproximaciones sucesivas. ECUACIONES LINEALES SIMULTANEAS Método de Gauss Seidel Se presenta una alternativa a los métodos de eliminación, es decir métodos iterativos Particularmente adecuado cuando se tienen gran número de ecuaciones. En estos casos los métodos de eliminación pueden estar sujetos a errores. Error en Gauss Seidel determinado por el nro. de iteraciones. Método de Gauss Seidel Los métodos iterativos constituyen una alternativa muy usada: Suponga un sistema de n ecuaciones: [A]{X } = {B} Si los elementos de la diagonal no son todos cero-> La primer ecuación se puede utilizar para despejar x1 La segunda para x2 y la tercera para obtener x3 Método de Gauss Seidel Proceso de solución: (1) x1 = b1 − a12 x2 − a13 x3 a11 (2) x2 = b2 − a21 x1 − a23 x3 a22 (3) x3 = b3 − a31 x1 − a32 x2 a33 1) Escoger los valores iniciales para los x. 2) Suponer los xi = 0 y substituir en (1) 3) Obtener x1= b1/ a11 4) Luego x1 y x3 se reemplazan en la (2) 5) Este proceso se repite en (3) para obtener un nuevo valor de x 3 6) Después se regresa a la primera ecuación y se repite todo el procedimiento hasta que la solución converja suficientemente cercana a los valores verdaderos. Método de Gauss Seidel La convergencia se verifica usando el criterio: (4) ε a ,i = Error relativo xij − xij −1 100 % < ε porcentual s xij Para todas las i, j y j-1 son las iteraciones actuales y previas, respectivamente. (5) ε s = (0.5 x10 2− n )% Criterio de Scarborough Las ec. 4 y 5 son conservadoras. Es decir aseguran que el resultado es, por lo menos tan bueno como lo especifican Resolución de un ejercicio 3x1 − 0.1x2 − 0.2x3 = 7.85 0.1x1 + 7x2 − 0.3x3 = −19.3 0.3x1 − 0.2x2 + 10x3 = 71.4 x1 = 3; x2 = −2.5; x3 = 7; Resolución de un ejercicio Primera iteración Solución: x1 = 7.85 + 0.1x2 + 0.2 x3 x1 = 3 − 19.3 − 0.1x1 + 0.3 x3 x2 = 7 x3 = 71.4 − 0.3 x1 + 0.2 x2 10 x2 = x3 = 7.85 + 0 + 0 = 2.616667 3 − 19.3 − 0.1(2.616667 ) + 0 = −2.794524 7 71.4 − 0.3(2.616667 ) + 0.2(−2.794524) = 7.005610 10 Resolución de un ejercicio Segunda Iteración x1 = 7.85 + 0.1(−2.794524) + 0.2(7.005610) = 2.990557 3 x2 = x3 = − 19.3 − 0.1( 2.990557 ) + 0.3(7.005610) = −2.499625 7 71.4 − 0.3( 2.990557 ) + 0.2(−2.499625) = 7.000291 10 ε t = 0.31% ε t = 0.015% ε t = 0.0042% Resolución de un ejercicio Observamos entonces que el método es convergente hacia la verdadera solución Es posible iterar En un problema a priori podría no saberse el resultado correcto. Entonces se utiliza la ecuación: ε a ,i = xij − xij −1 100% < ε s xij E(a,i) = error aproximado/valor aproximado * 100% Para estimar el error. Resolución de un ejercicio Errores ε a ,1 = 2.990557 − 2.616667 100% = 12.5% 2.990557 ε a , 2 = 11 . 8 % ε a ,3 = 0.076% Estas proveen una valoración conservativa de la convergencia. Así cuando se satisfacen, aseguran que el resultado se conozca con al menos, la tolerancia especificada por Es Un método alternativo. Jacobi Gauss Seidel: Cada valor de xi calculado se introduce inmediatamente en la siguiente ecuación -> se utiliza la mejor aproximación disponible Jacobi: Emplea una táctica levemente diferente Se usan las ecuaciones (1),(2), y (3) para calcular un conjunto de nuevas x con base en un conjunto de x anteriores. Así los nuevos valores no se usan inmediatamente, sino se guardan hasta la próxima iteración. Es útil en algunos casos, pero Gauss Seidel es el método preferido. Comparativo de Gauss Seidel y Jacobi Gauss Jacobi Criterio de Convergencia para el método de Gauss Seidel Retomando la idea desarrollada anteriormente donde se especificó que las condiciones suficientes para resolver dos ecuaciones no lineales: u(x,y) y v(x,y) son: δu δv + <1 δx δx (c.1) y; δu δv + <1 δy δy (c.2) Este criterio se aplica también al método de Gauss Seidel Criterio de Convergencia para el método de Gauss Seidel Dado el caso de 2 ecuaciones simultáneas, las ecuaciones (1) y (2) del algoritmo quedarán así: c1 a12 − x2 a11 a11 (c.3) u ( x1 , x2 ) = (c.4) v( x1 , x2 ) = c2 a21 − x1 a22 a22 Se evalúan las derivadas parciales con respecto a cada una de las incógnitas: δu =0 δx1 δv a = − 21 δx1 a22 Criterio de Convergencia para el método de Gauss Seidel δu a = − 12 δx2 a11 δv =0 δx2 Que se sustituyen en las ecuaciones (c.1) y (c.2) (c.5) a21 <1 a22 y (c.6) a12 <1 a11 O sea el valor absoluto de las pendientes de las ec. (c.3) y (c.4) son menores que 1, para asegurar la convergencia. Criterio de Convergencia para el método de Gauss Seidel De igual manera las ecuaciones anteriores se reformulan: a22 > a21 a11 > a12 La generalización de lo anterior para n ecuaciones es directa: n aii > ∑ ai , j j =1 j ≠i Criterio suficiente pero no necesario para asegurar la convergencia. Los sistemas que cumplen esta condición son diagonalmente dominantes. Representaciones gráficas de la convergencia X2 v X2 v u X1 X1 a) b) u Las dos mismas funciones son graficadas. Dependiendo del orden en que se implementan las ecuaciones, determina si el cálculo converge. METODO DE GAUSS-SEIDEL (4) Pasos, para la aplicación del método de Gauss-Seidel: 1.- Asignar un valor inicial a cada incógnita. Si es posible hacer una hipótesis razonable, se mejorará substancialmente la rapidez de convergencia, si no, fijar arbitrariamente estos valores. 2.- Partir de la primera ecuación, determinar un nuevo valor para la incógnita dominante, utilizando para las otras incógnitas los valores supuestos según lo descripto en 1. METODO DE GAUSS-SEIDEL (5) 3.- Pasar a la segunda ecuación y calcular el valor de la incógnita dominante, utilizando para ello, el ya calculado en el paso anterior y los valores supuestos en las otras incógnitas. 4.- Reiterar el procedimiento descripto, con todas las demás ecuaciones, siempre para la incógnita dominante, utilizando los últimos valores calculados. Completado este paso se dice que se ha concluido una ITERACIÓN. 5.- Iterar los pasos 2; 3 y 4 hasta que el valor de cada incógnita difiera del valor respectivo obtenido en la iteración previa, en una cantidad menor que un E positivo y arbitrario previamente fijado. Algoritmo DE GAUSS-SEIDEL (I) ( 0) Para resolver A x = b dada una aproximación inicial x INPUT número de ecuaciones e incógnitas n; los elementos ij , 1<=i, j<=n de la matriz A; los elementos bi ,1<=i<=n de b; ( 0) los elementos XOi ,1<=i<=n de XO= x ; tolerancia TOL; máximo número de iteraciones N. OUTPUT la solución aproximada x 1 , x 2 ,......., x n o un mensaje de que el número de iteraciones fue excedido. Paso 1 Sea k = 1. Paso 2 Mientras sea (k<=N) realizar Pasos 3-6. Paso 3 Para i = 1,…….,n a Sea − x i = i − 1 ∑ j = 1 a ij x j − n ∑ j = i + 1 a ii a ij XO j + b i Algoritmo DE GAUSS-SEIDEL (II) Paso 4 Si ||x-XO|| < TOL entonces OUTPUT ( x1 , x2 ,......., xn ) (Procedimiento terminado con éxito.) STOP Paso 5 Sea k = k + 1. Paso 6 Para i = 1,……..,n sea XO i = x i Paso 7 OUTPUT (‘Número máximo de iteraciones excedido’); (Procedimiento terminado sin éxito.) STOP. Método Iterativo de Jacobi Para resolver Ax=b dada una aproximación inicial x(0): ENTRADA el numero de ecuaciones e incógnitas n; los elementos aij, 1<=i, j<=n de la matriz A; los elementos bi ( 0) ,1<=i<=n de b; los elementos XOi , 1<=i<=n de XO= x tolerancia TOL; máximo número de iteraciones N. SALIDA: la solución aproximada x1……… xn o el mensaje de que rebasó el numero de iteraciones. Paso 1 Tome k=1. Método Iterativo de Jacobi Paso 2 Mientras (K<=N) haga pasos 3-6. Paso 3 para i=1,……..n, tome − ∑ (a ij XO j ) + bi n xi = j =1 j ≠i a ij Paso 4 si ||x-XO||< TOL entonces SALIDA (x1……… xn); (procedimiento terminado exitosamente). PARAR Método Iterativo de Jacobi Paso 5 tome k=k+1 Paso 6 para i=1,……..n tome XOi=xi Paso 7 SALIDA (‘Numero máximo de iteraciones excedido’); (Procedimiento terminado sin éxito) PARAR Mejoramiento de la convergencia La relajación permite mejorar la convergencia. Después que se calcula cada nuevo valor de x por medio de las ecuaciones de Gauss Seidel Este se modifica mediante un promedio ponderado de los resultados de las iteraciones anterior y actual: x nuevo i = λ x nuevo i + (1 − λ )x anterior i es un factor ponderado que vale entre 0 y 2 Mejoramiento de la convergencia Si λ = 1 , ( 1- λ ) = 0 el resultado no cambia Si 0 < λ <1 el resultado es un promedio ponderado de los resultados anteriores. Esto se conoce como subrelajación. Objetivo: para que el sistema no convergente converja o apresure la convergencia. Si 1< λ < 2 -> se supone que el nuevo valor se mueve en la dirección correcta pero lentamente. Esto se conoce como sobrerrelajación. Este método se conoce como sobrerrelajación simultánea o SOR. El λ se determina de forma empírica. Cuando se justifica la introducción de λ ?. Técnicas de Gauss Seidel •Adecuada cuando las matrices son grandes y esparcidas, ya que los métodos de eliminación desperdician gran espacio de memoria para guardar 0. •Esto impone una limitación al tamaño de los sistemas que manejan •La estructura de las ecuaciones permite que se desarrollen programas concisos para sistemas específicos. •Sólo se necesitan incluir coeficientes que no sean 0-> se logran ahorros de memoria. •Para sistemas grandes son eficientes en almacenamiento y en tiempo de computo. •El error de redondeo no es un tema que preocupe en este método. Software •EXCEL posee funciones para manipulación de matrices •1) Herramienta SOLVER o 2) usando la inversión de matrices y las funciones de multiplicación. •=minverse(B1..D3); =mmult(B5..D7;F1..F3) •Emplea números de doble precisión •Si se sospecha que el sistema esta mal condicionado el nro. de condición de la matriz es útil Software •MATLAB: Explorar como se utiliza para resolver y analizar ecuaciones algebraicas. •IMSL: Programa principal en FORTRAN 90, llamando a distintas rutinas, según categorías para solución de sistemas lineales, inversión de matrices y calculo determinante: •LSARG: Solución de sistemas lineales con alta exactitud •LINRG: Invierte •LFDRG: Calculo del determinante Conclusiones Por su sencillez, la cantidad de operaciones a realizar y su manejo adecuado de la memoria es muy útil para grandes sistemas de ecuaciones. La condición de sistema diagonalmente dominante asegura la convergencia a la solución del sistema Sino habrá que realizar comprobaciones del condicionamiento de la matriz. La relajación es una técnica para acelerar la convergencia en ciertos casos. A partir de los algoritmos presentados el alumno desarrollará un software para implementar el método de Gauss – Seidel. Bibliografía Métodos Numéricos para ingenieros.- Chapra y Canale. Editorial MacGraw Hill.- 5ta. Edición. Métodos Numéricos – Pace G.- Editorial EUDENE – 1997 Análisis Numérico-Burden & Faires- Editorial Iberoamericana. 1996 Algoritmo implementado de Gauss Seidel Gauss-Seidel