Ir al contenido principal

3.5 Método de Gauss-Seidel







3.5 Método de Gauss-Seidel
Resultado de imagen para METODO DE GAUSS SEIDEL

Este método es iterativo o de aproximación y es similar a las técnicas para obtener raíces vistas en el tema anterior. Aquellos métodos consisten en la determinación de un valor inicial a partir del cual, mediante una técnica sistemática se obtiene una mejor aproximación a la raíz. La razón por la cual los métodos iterativos son útiles en la disminución de los errores de redondeo en sistemas, se debe a que un método de aproximación se puede continuar hasta que converga dentro de alguna tolerancia de error previamente especificada. Las técnicas iterativas se emplean rara vez para resolver problemas de dimensiones pequeñas ya que el tiempo requerido para lograr una precisión suficiente excede al de las técnicas directas. Sin embargo, para sistemas grandes con un gran porcentaje de ceros, ésta técnica es eficiente. Los sistemas de este tipo surgen frecuentemente en la solución numérica de problemas de valores frontera y de ecuaciones diferenciales parciales.Este método iterativo utiliza la misma transformación que el método de Jacobi, de hecho es una mejora al método de Jacobi.

La mejora consiste en utilizar la incógnita encontrada, en la misma iteración para calcular la siguiente incógnita. Por ejemplo, en el método de Jacobi se obtiene en el primer cálculo xi+1, pero este valor de x no se utiliza sino hasta la siguiente iteración.
En el método de Gauss-Seidel en lugar de eso se utiliza de xi+1 en lugar de xi en forma inmediata
para calcular el valor de yi+1 de igual manera procede con las siguientes variables; siempre se utilizan las variables recien calculadas.

Entrada el número de ecuaciones o incógnitas n; los elementos de axn de la matriz A; los elementos bi, 1 ? i ? n de b; los elementos X0i, 1 ? i ? n de X0 = x0;
la tolerancia Es (error sugerido); el número máximo de iteraciones, iter.



Algoritmo:

1) Se debe despejar da cada ecuación despejar la variable sobre la diagonal principal.

2) Dar un valor inicial a las incógnitas (X generalmente se establecen ceros).

3) Sustituir los valores iniciales en la primera ecuación para obtener un nuevo valor para la primera incógnita.

4) Ese nuevo valor es usado para obtener el valor de la siguiente incógnita. Este procedimiento se repite hasta obtener los nuevos valores de todas las incógnitas despejadas.

5) Se evalúa la aproximación relativa de todas las incógnitas hasta que la solución converja bastante cerca de la solución real, según la tolerancia establecida para el método.


Se puede observa que los resultados obtenidos son prácticamente iguales a los obtenidos con los métodos directos y con el método de Jacobi, con la ventaja de un número menor de iteraciones.
CODIGO:
Método de Gauss-Seidel
Este método es básicamente igual al método de Jacobi, la principal diferencia es que cada valor calculado de xk es usado para recalcular el valor de xk+1 por ende converge más rápido a la solución que el método de Jacobi. Matricialmente se define igual que Jacobi.
X(k+1)=Tg Xk+Cg
Pero:
Tg=(D-L)-1U
Cg=(D-L)-1b
Al igual que Jacobi este método es particularmente eficiente cuando se tienen matrices diagonal dominante estrictamente y definidas positivas. De no ser el caso se puede verificar que el radio espectral de Tg sea menor que 1 y por ende convergiría para cualquier aproximación inicial de X.
El método se itera hasta que || X(k+1)- Xk||<tolerancia

Pseudocódigo gauss-seidel

Lea A,b,n,x0,tol,D,L,U,radioespectral


para i=1hasta n
    si A(i,i)>sum(abs(A(i,1:(i-1)))) + sum(abs(A(i,(i+1):n)))
    sino
        muestre ('A no es de Diagonal Estrictamente Dominante, puede que no converja')      
    fin si
fin si

Nmax=100;

T=(D-L)^-1*U
C=(D-L)^(-1)*(b);

si radioespectral>=1
   muestre('El Radio espectral de la matriz de iteracion es mayor o igual a 1el método no converge')
   paro=1;
   terminar
end

i=1;
error=tol+1;
mientras i<=Nmax o error>tol
    x=T*x0+C;   
    error=norma(x-x0);    
    i=i+1;
   x0=x;  
fin mientras

si error<tol
    muestre ('La solucion es: x ')   
    else
    muestre: Fracaso en i iteraciones.
Fin si




MATHLAB:
function [solucion,num_iteraciones]=metodo_jacobi(A,B,punto_inicial,error)
cont_iteraciones=0;
s=size(A);
num_ecuaciones=s(1);
for k=1:num_ecuaciones
B(k)=B(k)/A(k,k);
A(k,:)=A(k,:)/A(k,k);
A(k,k)=0;
end
M=-A;
x_ant=punto_inicial';
x_sig=M*x_ant+B;
deltax_n=x_sig-x_ant;
while norm(deltax_n,inf) > error
x_sig=M*x_ant+B;
deltax_n=x_sig-x_ant;
x_ant=x_sig;
cont_iteraciones=cont_iteraciones+1;
end
solucion=x_sig;
num_iteraciones=cont_iteraciones;
end

Comentarios

Entradas populares de este blog

6.3 Métodos de pasos múltiples

6.3 Métodos de pasos múltiples Los métodos de un paso descritos en las secciones anteriores utilizan información en un solo punto xi para predecir un valor de la variable dependiente yi+1 en un punto futuro xi+1. Procedimientos alternativos, llamados métodos multipaso, se basan en el conocimiento de que una vez empezado el cálculo, se tiene información valiosa de los puntos anteriores y esta a nuestra disposición. La curvatura de las líneas que conectan esos valores previos proporciona información con respecto a la trayectoria de la solución. Los métodos multipaso que exploraremos aprovechan esta información para resolver las EDO. Antes de describir las versiones de orden superior, presentaremos un método simple de segundo orden que sirve para demostrar las características generales de los procedimientos multipaso. Observe la ecuación ec. 2  alcanza ) a expensas de emplear un tamaño de paso mas grande, 2h. Además, ob

6.2 Métodos de un paso: Método de Euler, Método de Euler mejorado y Método de Runge-Kutta

6.2 Métodos de un paso: Método de Euler, Método de Euler mejorado y Método de Runge-Kutta   Método de Euler El método de Euler es un procedimiento de integración numérica para resolver ecuaciones diferenciales ordinarias a partir de un valor inicial dado. El método de Euler es el más simple de los métodos numéricos para resolver un problema del siguiente tipo: Consiste en multiplicar los intervalos que van de x0 a xf en n subintervalos de ancho h; Osea: de manera que se obtiene un conjunto discreto de n+1 puntos: x0, x1, x2, ... , xn del intervalo de interés [x0,xf]. Para cualquiera de estos puntos de cumple que:  0<i<n. La condición inicial y(x0)=y0, representa el punto P0=(x0,y0) por donde pasa la curva solución de la ecuación del plantamiento inicial, la cual se denotará cmo F(x)=y. Ya teniendo el punto P0 se puede evaluar la primera derivada de F(x) en ese punto; por lo tanto: Con esta información se traza una recta, aquella que pasa por

6.1 Fundamentos de Ecuaciones Diferenciales

UNIDAD 6 ECUACIONES DIFERENCIALES ORDINARIAS 6.1 Fundamentos de Ecuaciones Diferenciales Una  ecuación diferencial  es una  ecuación  en la que intervienen  derivadas  de una o más funciones desconocidas. Dependiendo del número de variables independientes respecto de las que se deriva, las ecuaciones diferenciales se dividen en Ecuaciones diferenciales ordinarias : aquellas que contienen derivadas respecto a una sola variable independiente. Ecuaciones en derivadas parciales : aquellas que contienen derivadas respecto a dos o más variables. Una ecuación diferencial es una ecuación que incluye expresiones o términos que involucran a una función matemática incógnita y sus derivadas. Algunos ejemplos de ecuaciones diferenciales son: es una ecuación diferencial ordinaria, donde   representa una función no especificada de la variable independiente  , es decir,  ,   es la derivada de   con respecto a  . La expresión es una ecuación en derivadas pa