Métodos computacionales Solución de sistemas de ecuaciones

Anuncio
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
Descargar