Sei sulla pagina 1di 17

ANLISIS NUMRICO

PRCTICA 6
Gauss-Seidel

165/2013 Fecha de entrega del reporte: / . Grupo:_ 3AV3____

Nombre del Alumno: ____Gerardo Daniel Aguilar Jurez_ Boleta: __2012302343__

Nombre del Profesor: __Miguel Jimnez Guzmn

GAUSS-SEIDEL

NDICE
1. Objetivos 2. Anlisis del mtodo 3. Aplicaciones del mtodo 4. Programacin en MATLAB 5. Observaciones 6. Conclusiones

ANLISIS NUMRICO

1. OBJETIVO DE LA PRCTICA
1. Anlisis del mtodo: Comprender el concepto del mtodo descomposicin LU. 2. Aplicacin del mtodo : Una vez comprendido la teora del mtodo, se realiza un ejercicio a mano como ejemplo del uso de este. 3. Programacin en MATLAB: Analizar el mtodo para generar un cdigo de programacin que funcione en MATLAB.

2. ANLISIS DEL MTODO


MTODO DE GAUSS-SEIDEL

El mtodo de eliminacin para resolver ecuaciones simultneas suministra soluciones suficientemente precisas hasta para 15 o 20 ecuaciones. El nmero exacto depende de las ecuaciones de que se trate, del nmero de dgitos que se conservan en el resultado de las operaciones aritmticas, y del procedimiento de redondeo. Utilizando ecuaciones de error, el nmero de ecuaciones que se pueden manejar se puede incrementar considerablemente a ms de15 o 20, pero este mtodo tambin es imprctico cuando se presentan, por ejemplo, cientos de ecuaciones que se deben resolver simultneamente. El mtodo de inversin de matrices tiene limitaciones similares cuando se trabaja con nmeros muy grandes de ecuaciones simultneas. Sin embargo, existen varias tcnicas que se

GAUSS-SEIDEL

pueden utilizar, para resolver grandes nmeros de ecuaciones simultneas. Una de las tcnicas ms tiles es el mtodo de Gauss-Seidel. Ninguno delos procedimientos alternos es totalmente satisfactorio, y el mtodo de Gauss-Seidel tiene la desventaja de que no siempre converge a una solucin o de que a veces converge muy lentamente. Sin embargo, este mtodo convergir siempre a una solucin cuando la magnitud del coeficiente de una incgnita diferente en cada ecuacin del conjunto, sea suficientemente dominante con respecto a las magnitudes de los otros coeficientes de esa ecuacin. Es difcil definir el margen mnimo por el que ese coeficiente debe dominar a los otros para asegurar la convergencia y es an ms difcil predecir la velocidad de la convergencia para alguna combinacin de valores de los coeficientes cuando esa convergencia existe. No obstante, cuando el valor absoluto del coeficiente dominante para una incgnita diferente para cada ecuacin es mayor que la suma de los valores absolutos de los otros coeficientes de esa ecuacin, la convergencia est asegurada. Ese conjunto de ecuaciones simultneas lineales se conoce como sistema diagonal .Un sistema diagonal es condicin suficiente para asegurar la convergencia pero no es condicin necesaria. Afortunadamente, las ecuaciones simultneas lineales que se derivan de muchos problemas de ingeniera, son del tipo en el cual existen siempre coeficientes dominantes. La secuencia de pasos que constituyen el mtodo de Gauss-Seidel es la siguiente: 1. Asignar un valor inicial a cada incgnita que aparezca en el conjunto. Si es posible hacer una hiptesis razonable de stos valores, hacerla. Si no, se pueden asignar valores seleccionados arbitrariamente. Los valores iniciales utilizados no afectarn la convergencia como tal, pero afectarn el nmero de iteraciones requeridas para dicha convergencia.2.

ANLISIS NUMRICO

2. Partiendo de la primera ecuacin, determinar un nuevo valor para la incgnita que tiene el coeficiente ms grande en esa ecuacin, utilizando para las otras incgnitas los valoressupuestos.3.

3. Pasar a la segunda ecuacin y determinar en ella el valor de la incgnita que tiene el coeficiente ms grande en esa ecuacin, utilizando el valor calculado para la incgnita del paso 2 y los valores supuestos para las incgnitas restantes.4.

4. Continuar con las ecuaciones restantes, determinando siempre el valor calculado de la incgnita que tiene el coeficiente ms grande en cada ecuacin particular, y utilizando siempre los ltimos valores calculados para las otras incgnitas de la ecuacin. (Durante la primera iteracin, se deben utilizar los valores supuestos para las incgnitas hasta que se obtenga un valor calculado). Cuando la ecuacin final ha sido resuelta, proporcionando un valor para la nica incgnita, se dice que se ha completado una iteracin.

5. Continuar iterando hasta que el valor de cada incgnita, determinado en una iteracin particular, difiera del valor obtenido en la iteracin previa, en una cantidad menor que cierto seleccionado arbitrariamente. El procedimiento queda entonces completo.

Refirindonos al paso 5, mientras menor sea la magnitud del seleccionado, mayor ser la precisin de la solucin. Sin embargo, la magnitud del psilon no especifica el error que puede existir en los valores obtenidos

GAUSS-SEIDEL

para las incgnitas, ya que sta es una funcin de la velocidad de convergencia. Mientras mayor sea la velocidad de convergencia, mayor ser la precisin obtenida en los valores de las incgnitas para un dado. Ejemplo Resolver el siguiente sistema de ecuacin por el mtodo Gauss-Seidel utilizando un error menor a 0.001.
0.1 X1 + 7.0 X2 - 0.3 X3 = -19.30 3.0 X1 - 0.1 X2 - 0.2 X3 = 7.850 0.3X1 - 0.2 X2 - 10.0 X3 = 71.40

SOLUCIN: Primero ordenamos las ecuaciones, de modo que en la diagonal principal es ten los coeficientes mayores para asegurar la convergencia.
3.0X1 - 0.1 X2 - 0.2 X3 = 7.850 0.1X1 + 7.0 X2 - 0.3 X3 = -19.30 0.3X1 - 0.2 X2 - 10.0 X3 = 71.40

Despejamos cada una de las variables sobre la diagonal:

Suponemos los valores iniciales X2 = 0 y X3 = 0 y calculamos X1.

ANLISIS NUMRICO

Este valor junto con el de X3 se puede utilizar para obtener X2.

La primera iteracin se completa sustituyendo los valores de X1 y calculados obteniendo:

X2

En la segunda iteracin, se repite el mismo procedimiento:

Comparando los valores calculados entre la primera y la segunda iteracin:

GAUSS-SEIDEL

Como podemos observar, no se cumple la condicin:

Entonces tomamos los valores calculados en la ltima iteracin y se toman como supuestos para la siguiente iteracin. Se repite entonces el proceso:

Comparando de nuevo los valores obtenidos:

Como se observa todava no se cumple la condicin:

As que hacemos otra iteracin:

ANLISIS NUMRICO

Comparando los valores obtenidos:

Dado que se cumple la condicin, el resultado es:

Como se puede comprobar no se tiene un nmero exacto de iteraciones para encontrar una solucin. En este ejemplo, se hicieron 3 iteraciones, pero a menudo se necesitan ms iteraciones.

3. APLICACIN DEL MTODO


Una compaa minera extrae mineral de dos minas, el cual contiene para la mina I el 1% de nquel y 2% de cobre, para la mina II el 2% de nquel y 5% de

10

GAUSS-SEIDEL

cobre. Qu cantidad de mineral se deber extraer de cada mina para obtener 4 toneladas de nquel y 9 toneladas de cobre? Solucin: Cul es el problema? Qu se busca? Queremos saber el nmero de toneladas de mineral que hay que extraer de cada mina, asignemos literales a esos nmeros. Sean x el nmero de toneladas que se extrae de la mina I. y el nmero de toneladas que se extrae de la mina II. Establezcamos ahora relaciones algebraicas entre las literales. Cunto se obtiene de nquel de la mina I? 0.01 x Y de la mina II? 0.02 Entonces la ecuacin queda: 0.01x + 0.02y =4 Anlogamente para el cobre tenemos: 0.02x+0.05y=9 As, para saber cuntas toneladas hay que extraer de cada mina debemos resolver el sistema Dedos ecuaciones lineales con dos incgnitas:

La matriz queda de la siguiente forma:

ANLISIS NUMRICO

11

Despejando las incgnitas:

Tomando como primer valor inicial a y1=75 resolvemos para x1para obtener posteriormente y2:

Calculamos el error:

que aun es mayor al 1%. As que repetimos el proceso de iteracin las veces necesarias:

12

GAUSS-SEIDEL

Este proceso continua dndonos como resultado: X=100 Y=200 Que son las toneladas de material necesarias que se deben extraer de cada mina para obtener 4toneladas de nquel y 9 toneladas de cobre.

ANLISIS NUMRICO

13

4. PROGRAMACIN EN MATLAB.
clear clc disp('Metodo de Gauss - Seidel \n'); disp('Para Un sistema de 3 ecuaciones con 3 incognitas'); A=input('Digite la matriz de la ecuacin 1:\nEjemplo\n[1 2 3 4]\n '); B=input('Digite la matriz de la ecuacin 2:\nEjemplo\n[1 2 3 4]\n '); C=input('Digite la matriz de la ecuacin 3:\nEjemplo\n[1 2 3 4]\n '); Y=input('Digite la estimacin para Y\n '); Z=input('Digite la estimacin para Z\n '); Tol=input('La tolerancia de error:\n'); X1=(A(1,4)-A(1,2)*Y-A(1,3)*Z)/A(1,1); Y1=(B(1,4)-B(1,1)*X1-B(1,3)*Z)/B(1,2); Z1=(C(1,4)-C(1,1)*X1-C(1,2)*Y1)/C(1,3); eaX=100; eaY=100; eaZ=100; i=1;

Cdigo en MATLAB

14

GAUSS-SEIDEL

while (Tol<eaX && Tol<eaY && Tol<eaZ) X=X1; Y=Y1; Z=Z1; X1=(A(1,4)-A(1,2)*Y-A(1,3)*Z)/A(1,1); Y1=(B(1,4)-B(1,1)*X1-B(1,3)*Z)/B(1,2); Z1=(C(1,4)-C(1,1)*X1-C(1,2)*Y1)/C(1,3); eaX=abs((X1-X)/X1)*100; eaY=abs((Y1-Y)/Y1)*100; eaZ=abs((Z1-Z)/Z1)*100; i=i+1; end

fprintf('El resultado de X1=\n %.2f\n\n',X1); fprintf('El error absoluto de X1=\n %.2f\n\n',eaX);

fprintf('El resultado de X2=\n %.2f\n\n',Y1); fprintf('El error absoluto de X2=\n %.2f\n\n',eaY);

ANLISIS NUMRICO

15

fprintf('El resultado de X1=\n %.2f\n\n',Z1); fprintf('El error absoluto de X1=\n %.2f\n\n',eaZ);

fprintf('Numero de iteraciones\n%f\n\n',i);

16

GAUSS-SEIDEL

Capturas

ANLISIS NUMRICO

17

5. OBSERVACIONES
Este mtodo es iterativo, lo que puede ser un poco tardado encontrar el resultado en los ejercicios a mano. Adems de que hay que extremar la atencin para no cometer errores dentro de las iteraciones.

6. CONCLUSIONES
El mtodo de Gauss-Seidel es el principio de los mtodos iterativos, que nos ayudar a facilitar el concepto de iteracin para hacer ejercicios con mtodos para solucin de ecuaciones no lineales.

Potrebbero piacerti anche