22
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.

Métodos computacionales Solución de sistemas de ecuaciones

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Métodos computacionales Solución de sistemas de ecuaciones

Métodos computacionales Solución de sistemas de ecuaciones

Método de Gauss Seidel

IntroducciónBreve repaso de métodos directos Método de Gauss SeidelComparación de Gauss Seidel con JacobiConvergencia 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.

Page 2: Métodos computacionales Solución de sistemas de ecuaciones

Solución de sistemas de ecuaciones

Tratamos en este tema ecuaciones algebraicas lineales que tienen la forma general :

=+++

=+++

=+++

nnnnnn

nn

nn

bxaxaxa

bxaxaxa

bxaxaxa

...

........................................

...

...

2211

22222121

11212111

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.

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.

D

aab

aab

aab

xi33323

23222

13121

=

Page 3: Métodos computacionales Solución de sistemas de ecuaciones

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

3x

1x

2x 4x

5xAlimentación

Alimentación 1x 1−ix 1x 1+ix.... .... nx

A

B

Modelo de una serie de reactores químicos

Page 4: Métodos computacionales Solución de sistemas de ecuaciones

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 significativas2) Pivoteo3) Escalamiento

Page 5: Métodos computacionales Solución de sistemas de ecuaciones

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 pivoteoparcial.

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

Page 6: Métodos computacionales Solución de sistemas de ecuaciones

Métodos directos: Gauss Jordan

Una modificatoria del mismo es el Método de Gausss-JordanDiferencia: 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.

Page 7: Métodos computacionales Solución de sistemas 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 SIMULTANEASMé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.

Page 8: Métodos computacionales Solución de sistemas de ecuaciones

Método de Gauss Seidel

Los métodos iterativos constituyen una alternativa muy usada:Suponga un sistema de n ecuaciones:

[ ]{ } { }BXA =

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 SeidelProceso de solución:

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.

11

31321211

a

xaxabx

−−=(1)

22

32312122

a

xaxabx

−−=(2)

33

2321313

3

a

xaxabx

−−=

(3)

Page 9: Métodos computacionales Solución de sistemas de ecuaciones

Método de Gauss Seidel

La convergencia se verifica usando el criterio:

Para todas las i, j y j-1 son las iteraciones actuales y previas, respectivamente.

sj

i

j

i

j

iia

x

xxεε <

−=

%1001

,

(4)

(5)

Error relativo porcentual

)%105.0( 2 n

s x−=εεεε 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

4.71102.03.0

3.193.071.0

85.72.01.03

321

321

321

=+−

−=−+

=−−

xxx

xxx

xxx

;31 =x ;5.22 −=x ;73 =x

Page 10: Métodos computacionales Solución de sistemas de ecuaciones

Resolución de un ejercicio

Solución:

3

2.01.085.7 321

xxx

++=

7

3.01.03.19 312

xxx

+−−=

10

2.03.04.71 213

xxx

+−=

616667.23

0085.71 =

++=x

794524.27

0)616667.2(1.03.192 −=

+−−=x

005610.710

)794524.2(2.0)616667.2(3.04.713 =

−+−=x

Primera iteración

Resolución de un ejercicio

990557.23

)005610.7(2.0)794524.2(1.085.71 =

+−+=x

Segunda Iteración

499625.27

)005610.7(3.0)990557.2(1.03.192 −=

+−−=x

000291.710

)499625.2(2.0)990557.2(3.04.713 =

−+−=x

%31.0=tε

%015.0=tε

%0042.0=tε

Page 11: Métodos computacionales Solución de sistemas de ecuaciones

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:

sj

i

j

i

j

iia

x

xxεε <

−=

%1001

,

Para estimar el error.

E(a,i) = error aproximado/valor aproximado * 100%

Resolución de un ejercicio

Errores

%5.12%100990557.2

616667.2990557.21, =

−=aε

%8.112, =aε

%076.03, =aε

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

Page 12: Métodos computacionales Solución de sistemas de ecuaciones

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

Page 13: Métodos computacionales Solución de sistemas de ecuaciones

Criterio de Convergencia para el método de Gauss Seidel

1<+x

v

x

u

δδ

δδ

y;

1<+y

v

y

u

δδ

δδ

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:

Este criterio se aplica también al método de Gauss Seidel

(c.1)

(c.2)

Criterio de Convergencia para el método de Gauss Seidel

211

12

11

121 ),( x

a

a

a

cxxu −=

122

21

22

221 ),( x

a

a

a

cxxv −=

01

=x

u

δδ

22

21

1 a

a

x

v−=

δδ

Dado el caso de 2 ecuaciones simultáneas, las ecuaciones (1) y (2) del algoritmo quedarán así:

Se evalúan las derivadas parciales con respecto a cada una de las incógnitas:

(c.3)

(c.4)

Page 14: Métodos computacionales Solución de sistemas de ecuaciones

Criterio de Convergencia para el método de Gauss Seidel

11

12

2 a

a

x

u−=

δδ

02

=x

v

δδ

122

21 <a

a y1

11

12 <a

a

Que se sustituyen en las ecuaciones (c.1) y (c.2)

O sea el valor absoluto de las pendientes de las ec. (c.3) y (c.4) son menores que 1, para asegurar la convergencia.

(c.5) (c.6)

Criterio de Convergencia para el método de Gauss Seidel

2122 aa >1211 aa >

∑≠=

>n

ijj

jiii aa1

,

De igual manera las ecuaciones anteriores se reformulan:

La generalización de lo anterior para n ecuaciones es directa:

Criterio suficiente pero no necesario para asegurar la convergencia. Los sistemas que cumplen esta condición son diagonalmente dominantes.

Page 15: Métodos computacionales Solución de sistemas de ecuaciones

Representaciones gráficas de la

convergencia

X1

X2

v

ua)

u

X2

X1

v

b)

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.

Page 16: Métodos computacionales Solución de sistemas de ecuaciones

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)

Para resolver A x = b dada una aproximación inicial INPUT número de ecuaciones e incógnitas n; los elementos ,

1<=i, j<=n de la matriz A; los elementos ,1<=i<=n de b;los elementos ,1<=i<=n de XO= ; tolerancia TOL; máximo número de iteraciones N.

OUTPUT la solución aproximada 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

Sea

ija

)0(x

)0(xib

iXO

nxxx ,.......,, 21

ii

i

n

ij

jij

i

j

jij

ia

bXOaxa

x

+−−

=∑∑

+=

= 1

1

1

Page 17: Métodos computacionales Solución de sistemas de ecuaciones

Algoritmo DE GAUSS-SEIDEL (II)

Paso 4 Si ||x-XO|| < TOL entonces OUTPUT (Procedimiento terminado con éxito.)

STOPPaso 5 Sea k = k + 1.Paso 6 Para i = 1,……..,n sea Paso 7 OUTPUT (‘Número máximo de iteraciones excedido’);

(Procedimiento terminado sin éxito.)STOP.

),.......,,( 21 nxxx

ii xXO =

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 ,1<=i<=n de b; los elementos , 1<=i<=n de XO= 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.

ib

iXO)0(x

Page 18: Métodos computacionales Solución de sistemas de ecuaciones

Método Iterativo de Jacobi

� Paso 2 Mientras (K<=N) haga pasos 3-6.� Paso 3 para i=1,……..n, tome

( )

ij

n

ijj

ijij

ia

bXOa

x

∑≠=

+−

=1

� 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

Page 19: Métodos computacionales Solución de sistemas de ecuaciones

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:

( ) anterior

i

nuevo

i

nuevo

i xxx λλ −+= 1

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 λ ?.

Page 20: Métodos computacionales Solución de sistemas de ecuaciones

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

Page 21: Métodos computacionales Solución de sistemas de ecuaciones

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.

Page 22: Métodos computacionales Solución de sistemas de ecuaciones

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