« Problemas con la codificación en MySQL | Principal | Seguridad Informática »
Método Gauss Seidel
By geronimo | Marzo 2, 2008
Este es uno de los métodos mas interesantes del análisis numérico y particualmente útil ya que nos permite encontrar la solución de un sistema de “n” ecuaciones con “n” incógnitas.
Para comenzar es preciso mencionar que es un método iterativo, es decir que debe aplicarse recursivamente hasta encontrar una solucion adecuada o con un error considerablemente pequeño.
En cada iteración obtenemos una solución posible del sistema con un error determinado, a medida que aplicamos nuevamente el método, la solución puede ser más precisa, entonces se dice que el sistema converge, pero si al aplicar el método reiteradas veces la solución tiene un error (ya explicaremos como se calcula este error) cada vez mayor se dice que el sistema no converge y no se puede resolver el sistema de ecuaciones por este método.
Bien proseguiré con la explicación del método y luego aclararé los detalles necesarios para determinar la eficacia del mismo.
Teniendo el siguiente sistema de ecuaciones:

Despejamos x1 de la ecuación 1, x2 de la ecuación 2, … , xn de la ecuación n, quedando:

Desde la formula anterior resultan las fórmulas que se deberán ir aplicando en las diferentes iteraciones. Para comenzar a aplicar el método debemos asignar un valor arbitrario a las variables x2,…xn con el fin de obtener x1. Lo mas conveniente en este caso es que los valores comiencen en cero, lo cual nos facilitaría el trabajo ya que se reduce el cálculo de las primeras soluciones, entonces de esto resulta que:

Ahora despejamos x2 de la ecuación 2 y reemplazamos a x1 por el valor obtenido en la ecuación anterior. De esto nos queda:

Una vez que tenemos x2, despejamos x3 de la ecuación 3 y así sucesivamente con las n ecuaciones, cada vez asignando el valor de las x1, x2, … xn-1 obtenido en el paso anterior.
Cuando hemos despejado las xn, tenemos lo que se conoce como primera solución o solución de la primer iteración:

Con los nuevos valores de x1, x2,…,xn aplicamos los mismos pasos anteriores pero con los nuevos valores de las xn, de esta manera conseguimos una segunda solución:

Al tener esta segunda solución estamos en condiciones de calcular el error que se calcula como sigue:

Así, repetimos el método tantas veces hasta que el error sea muy pequeño o los suficientemente aceptable.
Ahora solo queda mencionar que para que un sistema sea convergente se debe cumplir que la matriz de coeficientes sea diagonalmente dominante, y para ello se debe verificar la siguiente expresión:


Si no se cumple esa condición, se puede permutar las filas de la matriz, con el fin de poder convertirla en una diagonalmente dominante.
Ahora mostraré un ejemplo, mediante el uso de un programa hecho en Visual Basic que hice para aplicar el método. El programa podrá ser descargado desde aqui. Para que todos los puedan ver y tratar de entender el funcionamiento del método.
Al iniciar el programa indico que la matriz de coeficientes es de 3 filas y 3 columnas (la matriz siempre tiene que ser cuadrada). Entonces supongamos los siguientes coeficientes:

Luego cargo la matriz “b” que es la que contiene el valor de los resultados de las ecuaciones:

Hago clic en el botón verificar convergencia y si el programa me dice que se verifica, indico cuantas iteracciones quiero realizar y pulso en el botón “Calcular solución”.
De esta forma el programa me arroja la solución del sistema (el valor de x1, x2,…xn) y me muestra el error, denominado por el programa como “Norma Infinito”.

Se puede apreciar que la norma infinito no las muestra en notación científica, ya que es un error muy pequeño.
También el programa tiene la opción de guardar todas las iteracciones que hizo, hasta llegar a la ultima, esta opción es muy útil ya que se pude ver como fueron variando las soluciones hasta llegar a la última iteracción indicada, a medida que se hacen mas iteracciones, mas precisa es la solución.
Para finalizar, aquí muestro la secuencia que me arrojó el programa para este ejemplo:
Resolucion de Sistema de Ecuaciones Lineales
--------------------------------------------
Matriz A
--------
9 -3 2
-5 25 3
-4 2 11
Matriz B
--------
-9
2
15
--------------------------------------------
Solucion N°:1
------------
X1=-1
X2=-0,12
X3= 1,02181818181818
Norma Infinito: 1,02181818181818
——————————————–
Solucion N°:2
————
X1=-1,26707070707071
X2=-0,296032323232323
X3= 0,956707438016529
Norma Infinito: 0,267070707070707
——————————————–
Solucion N°:3
————
X1=-1,31127909397
X2=-0,297060711355984
X3= 0,940818640621087
Norma Infinito: 4,42083868992962E-02
——————————————–
Solucion N°:4
————
X1=-1,30809104614557
X2=-0,294516446103644
X3= 0,941515337056819
Norma Infinito: 3,18804782443349E-03
——————————————–
Solucion N°:5
————
X1=-1,30739777915829
X2=-0,294461396278475
X3= 0,941757425083982
Norma Infinito: 6,93266987283891E-04
——————————————–
Solucion N°:6
————
X1=-1,30743322655593
X2=-0,294497536321264
X3= 0,941751106038073
Norma Infinito: 3,61400427889014E-05
——————————————–
Solucion N°:7
————
X1=-1,30744386900444
X2=-0,294498906525456
X3= 0,941747485184833
Norma Infinito: 1,06424485053491E-05
——————————————–
Solucion N°:8
————
X1=-1,30744352110511
X2=-0,294498402443203
X3= 0,941747520042359
Norma Infinito: 5,04082253327542E-07
——————————————–
Solucion N°:9
————
X1=-1,30744336082381
X2=-0,294498374569846
X3= 0,941747573258585
Norma Infinito: 1,60281300898291E-07
——————————————–
Solucion N°:10
————
X1=-1,30744336335852
X2=-0,294498381462735
X3= 0,941747573590125
Norma Infinito: 6,89288898181317E-09
——————————————–
Descargar Programa Método Gauss Seidel
Topics: Analisis Numerico | 64 Comentarios »
Junio 3rd, 2008 at 1:24 pm
muchas gracias deveras, muy util la verdad me salvo de no salir mal ya q me pusiero una ecucion de 6×6 y por desordenado no salia .. pero con este programita digo proyecto ..nos da mucha solucion….gracias y reitero muy util
Junio 3rd, 2008 at 1:49 pm
Bueno Mario! me alegro que te haya servido y gracias por tu comentario!
Junio 19th, 2008 at 6:19 pm
Disculpa tengo un proyecto que realizar y para eso necesito la Codificacion de Este metodo , de verdad me seria muy util tu ayuda, por tu comprension te doy las gracias anticipadamente.
Junio 19th, 2008 at 6:48 pm
Ok Miguel, dejame buscar en los archivos de mi pc y te envio al email el código fuente para que lo puedas analizar. Saludos.
Junio 19th, 2008 at 6:57 pm
Estimado Miguel, he tratado de enviarte los módulos, pero el correo que me indicas es incorrecto. Si los quieres ponte en contacto conmigo en geronet@geronet.com.ar
Saludos.
Junio 27th, 2008 at 6:07 pm
disculpa no había podido ponerme en contacto pero de verdad es urgente la codificación del método de gauss- seidel que tu creaste, aqui esta mi otro correo que espero si sirva; arcangel_77788@hotmail.com
magonzalezc@yahoo.com.mx
Septiembre 7th, 2008 at 5:39 pm
Hola, soy Gianela de Ecuador, soy estudiante de ing en sistemas y tengo que presentar este proyecto me podrias ayudar con el codigo fuente para cogerlo de referencia…..please….please….
contactame a mi correo giarom_89@hotmail.com
Septiembre 7th, 2008 at 5:49 pm
De antemano gracias… pero lo necisito urgente…
si… gracias
Septiembre 7th, 2008 at 5:52 pm
Hola Gianela, ahi te envio al correo que me indicas, los módulos en visual basic que contienen la codificación del método.
Espero que te sea de utilidad.
Saludos.
Septiembre 15th, 2008 at 4:45 pm
hi!
solo ecribo para agradecete esta informacion que en vdd es muy util,estudio ingenieria en sistemas computacionales y estoy viendo metodos numricos por lo cual tu informacion es de gran ayuda,gracias…
Septiembre 17th, 2008 at 3:21 pm
disculpen necesito la codificacion para resolver jacobi en visual basic lo mas urgente posible a mi correo rakell_1409@hotmail.com plis GRACIAS
Octubre 11th, 2008 at 6:08 pm
hola, si pudieras mandarme el codigo en visual basic e lo agredecreria mucho ya que lo necesito entregar un ese proyecto, porfa
Octubre 11th, 2008 at 6:08 pm
ahhh se me olvidaba, mi correo es alan_jg3@hotmil.com o andres.garcia.1988.aajg@gmail.com
gracias
Noviembre 17th, 2008 at 11:35 pm
oye sera que me los puedes mandar ami tambienlos codigos o el formulario si no es mucha molestia porfabor mi correo es robert0288@hotmail.com te agradesco mucho
gracias
Diciembre 4th, 2008 at 11:47 am
Hola soy de bolivia y te pido el fvor que me mndes el codigo y que me lo pidieron en la universidad mi correo es lost_windom@hotmail.com te la agrdecere mucho….
Diciembre 7th, 2008 at 8:56 pm
hoa soy vanessa sabes me mandaron este proyecto y queria pedirte si porfavor me pudieras mandar el codigo de tu programa…te agradesco de antemando mi corre es anavanessa13@gmail.com
Enero 7th, 2009 at 10:20 am
Hola Gerónimo ..esta muy interesante tu programa…puedes enviarme el proyecto en visual necesito tener una guia para hacer el mio…de antemano muchas gracias..
mi mail es christian_sick@hotmail.com
Abril 20th, 2009 at 11:01 am
Estimado Gerónimo,
Te agradecería si puedes mandarme el código al e-mail castroroberto@hotmail.com para ver si lo puedo tener como guia para un proyecto de mi universidad.
Gracias/Saludos.
Mayo 7th, 2009 at 6:20 pm
Hola Gerónimo, espero no hayas hecho una limpieza en tu pc y hayas borrado los módulos de este proyecto. La verdad que me serviría de mucho porque tengo que hacer este proyecto para la universidad, sólo que en Gambas.
Mi correo es jjeaa461@hotmail.com
Desde ya muy agradecido, saludos.
Mayo 10th, 2009 at 2:53 am
Hola gerónimo, pues al igual que José espero que no hayas eliminado la codificación de tu programa. Me ayudarías mucho si me haces el favor de enviar el código a noe.t@hotmail.com ya que tengo que hacer la implementación de este método en MatLab.
De antemano muchas gracias, y que tengas un buen día.
Mayo 10th, 2009 at 2:54 am
De nuevo yo, perdon por omitir la mayúscula en tu nombre, pero lo ví hasta después de dar clic al botón.
Saludos
Mayo 10th, 2009 at 10:19 pm
Hola Noe! y un saludo a todos los que han dejado un comentario. Ahí te envio a tu correo la codificación del método. Espero que te sea de ayuda.
Junio 3rd, 2009 at 1:19 pm
Hola mira ya cheque tu trabajo y talvez no tenga que ver pero de casualidad tendras el diagrama de flujo y codigo para el metodo de Jacobi es muy similar a este solo que es mas largo ya que se requieren de mas iteraciones.
Gracias y espero tu repuesta
Junio 3rd, 2009 at 1:23 pm
Ah y mi correo es lilith95_dhs@hotmail.com y abusando de ti podrias tambien mandarme el de este metodo; Gauss Seidel; por favor!!!
Junio 21st, 2009 at 10:25 pm
hola geronimo como topdos los de por qui te comento que ando en busca de este codigo para analizar y crear uno aun muy simple pero creo que me serviria de mucho su analisis te agradezco me envies el codigo fuente a mi mail consnapy@hotmail.com estoy estudiando 6 cuatrimestre de ingenieria civil en Peubla Mexico BUAP y voy atrasado en metodos asi que te agradeciaria ese favcor
Agosto 5th, 2009 at 6:27 pm
Hola geronimo te agradeceria que me enviaras el codigo fuente de este programa debido a que tengo que hacer como proyecto un programa de gauss seidel, de este ultimo periodo, es solo para basarme en el y pasarlo a vb net.si puedes mandarlo lo mas pronto posible a micorreo muchas gracias.
Agosto 5th, 2009 at 6:29 pm
mi correo es jansat_27@hotmail.com
Septiembre 5th, 2009 at 4:12 pm
[...] Método Gauss Seidel | GERONET [...]
Septiembre 11th, 2009 at 10:26 am
geronimoooooooo..!! help meeeeee..!!! necesito el codigo fuente ya que tengo un proyecto que presentarlo, quisiera que me lo envies ami correo: geoffrytt_2400@hotmail.com y yo me guiaria conforme a ee codigo fuente .
Septiembre 25th, 2009 at 9:14 pm
Hola Gerónimo te agradecería muchísimo me enviaras el código fuente de gauss seidel y método de relajación en visual basic 6.0 a pecasljbm@hotmail.com
Septiembre 26th, 2009 at 12:24 am
hola Geronimo, por favor podrias enviarme el codigo de tu programa. a misheliz_17@hotmail.com , me seria de mucha utilidad. Gracias
Septiembre 26th, 2009 at 12:25 am
es de mucha urgencia por favor
Octubre 14th, 2009 at 6:29 pm
hola geronimo, por favor me podrias mandar tu codigo de tu programa en visaul basic 6.0 me seria de mucha ayuda para mi proyecto .este es mi correo antonito_256@hotmail.com
Octubre 24th, 2009 at 9:38 pm
Hola sabes creo que debes estar un poco molesto pero, por que muchos te piden la codifcacion pero yo tambien necesito lo mismo, si me puedes enviar a mi correo fuera grandioso pero si no ni modo, de ante mano muchas gracias mi amil es: bambinounos@yahoo.es
Octubre 27th, 2009 at 8:46 pm
Hola saludos, me uno a los que te solicitan el codigo ya que lo necesito para agregarle la implementación con numeros complejos y asi tenerlo como ayuda en la solución de sistemas electricos de potencia
Octubre 29th, 2009 at 2:22 pm
Saludos..
Estoy interesado, si es posible que me puedas facilitar el codigo para el calculo de gaus seidel, ya que lo necesito para ver si le puedo agregar soporte de números complejos. Gracias de todos modos (jhonny_mo@hotmail.com)
Noviembre 4th, 2009 at 5:46 pm
Muchas gracias por el programa, estoy estudiando ingenieria electronica y precisaria el codigo fuente… no podras postearlo??
Gracias.
Noviembre 10th, 2009 at 6:01 pm
holas! desearia q pudieses ayudarme a encontrar el algoritmo para escribir este metodo en lenguje de Meple. La verdad es q no me sale. Y ya me di por vencida. Desde ya, muchas gracias!
Noviembre 12th, 2009 at 8:41 pm
Saludos Gerónimo me podrías enviar el código fuente mi correo es: mariosequeda@gmail.com gracias de antemano.
Noviembre 29th, 2009 at 10:46 am
Hola Gerónimo, genial el desarrollo del programa. Me podrías ayudar por favor con la codificación? Veo que mencionaste VisualBasic, me ayudaría bastante porque tengo que realizar un proyecto similar pero en JAVA. Espero tu pronta respuesta mi mail ericklucas29@hotmail.com
Marzo 11th, 2010 at 8:36 am
Hola,oye,queria saber si me pudieras ayudar,lo que pasa es que necesito tener el codigo de gauss-seidel en lenguaje C(solo lo encuentro en C++),lo intente varias veces pero no me resulta,y el programa es para mañana,crees que me lo puedas enviar a mi cuenta de correo? estudio ing en sistemas automotrices,en mexico,si pudieras ayudarme seria bastante genial de tu parte,igual muchas gracias,el correo es simpathy_for_the_devil_@hotmail.com,vale,pues gracias por tu atencion y hasta luego
Marzo 15th, 2010 at 2:54 pm
Muchisimas gracias, lo desarrolle en java y me fue de gran ayuda la informacion
Marzo 15th, 2010 at 6:32 pm
Saludos Gerónimo me podrías enviar el código fuente mi correo es: mariosequeda@gmail.com gracias de antemano
Marzo 16th, 2010 at 7:26 am
Hola Gerónimo te agradecería muchísimo me enviaras el código fuente de gauss seidel en Visual Basic. mi correo electronico es : Onelopezr@hotmail.com. debo entregar muy pronto este proyecto.
Gracias.
Marzo 22nd, 2010 at 12:21 pm
Estimados, ahi les envio el codigo a su correo.
Saludos.
Marzo 22nd, 2010 at 4:37 pm
hola primero k nada muchas gracias por tu programa me sirvio de mucho oye kisiera pedirte un favor me podrias pasar el codigo fuente para darme una idea te lo agradesco muchisimo, mi correo es bon424@hotmail.com
Marzo 30th, 2010 at 5:49 pm
Geronimo: Muchas gracias por el codigo. me sirvio mucho..Saludos.
Abril 6th, 2010 at 4:56 pm
hola ojala pudieras ayudarme con el codigo de este metodo por favor de verdad me seria de gran ayuda para la universidad”"” muchas gracias e ante mano
Abril 29th, 2010 at 6:43 pm
Hola gero….veo que fue muy solicitado tu sistema y me gustaria que me envies el codigo,de verdad lo necesito urgente….soy estudiantes de sistemas en la utn argentina…mi correo es luismolina10@hotmail.com
desde ya muchas gracias.
Abril 29th, 2010 at 6:44 pm
y una consulta mas……podria ser implementado en Gamba un sistema realizado en vBasic?
Mayo 1st, 2010 at 5:17 pm
se puede aplicar a fortran? plis me urge la respusta
Mayo 5th, 2010 at 10:23 am
hola geronimo he chekado que tu sistema resulta muy util para los que estamos estudiando metodos numericos, y quisiera pedirt que si fuera posible me mandaras el codigo de tu sistema gracias.
Mayo 5th, 2010 at 11:32 am
mi correo es g.u.s.h@hotmail.es gracias anticipadas
Mayo 8th, 2010 at 10:33 am
Hola Gerónimo, que buen proyecto, justo lo que estoy buscando, quiero pedirte de que si te es posible me mandes la codificación en matlab es para un trabajo que tengo que presentar y hasta ahora no he podido dar con él. y abusando de tu generosidad si te es posible el de los trapecios y el de simpson tambien en matlab. te estaré muy agradecido, mis correos son eace_ro@hotmail.com, eace_ro@yahoo.com y acero.e@gmail.com …. tiene que llegar en alguno….. gracias
Mayo 15th, 2010 at 10:01 am
Hola Geronimo, muy buen proyecto, podrias mandarme el codigo? gracias
Mayo 16th, 2010 at 7:00 am
geromino, buenos dias quisiera pedrile un favor, si pudiera enviarme el codigo en java, ya que tengo un proyecto qu realizar y veo que su proyecto esta excelente, me gustaria saber si me lo pudiera enviar al correo gracias
Mayo 18th, 2010 at 10:32 am
GRACIAS GRACIAS GRACIAS GRACIAS!!!! Sera posible que desarrolles alguna aplicacion para otros metodos numericos como por ejemplo polinomio de taylor o metodo de jacobi para resolver matrices es muy parecido a este.
Mayo 23rd, 2010 at 9:38 am
hola, sería posible recibir el codigo por correo.
muchas gracias
Mayo 24th, 2010 at 12:37 pm
SEÑOR GERONIMO, EXCELENTE TRABAJO LO QUE USTED HIZO CON GAUSS_SEIDEL, RECIBA USTED MIS MAS SINCERAS FELICITACIONES. POR OTRO LADO APROVECHO LA OPORTUNIDAD PARA PEDIRLE SU AYUDA, YA QUE ESTOY NECESITANDO EL CODIGO FUENTE DEL METODO JACOBI EL CUAL ES MUY PARECIDO A ESE(EL ALGORITMO Y EL EXE) SALUDOS
RICARDITO DE VENEZUELA MI CORREO ES : ricarditogollarza@hotmail.com
Mayo 26th, 2010 at 5:31 pm
Hola me podrías ayudar con el código de tu programa y como podría aplicarlo pero en Matlab, supongo que la programación debe ser similar. Soy de Quito mi mail es danielsebastian_14@hotmail.com, Gracias
Junio 3rd, 2010 at 6:10 pm
HOLA TA BUENO EL PROGRAMA
Y SERA Q TENEJ DEL METODO DE ITERATIVO DE JACOBI LO NESECITO URGENTE PARA UNA EXPOSICION
MIRA TE LO VOY AGRADECER DE ANTE MANO.
SI ES POSIBLE MANDALO A MAIL.
jhon_zero7@hotmail.com
por favor es de vida o muerte te cuidas ok bay….
Junio 7th, 2010 at 5:43 am
Mmm, si, la aplicacion y funcionamiento del metodo lo tengo claro, y esta genail explicado peor me podrias mandar el codigo? es que ando contra reloj y perdi loq eu habia hecho
dragonfly_1317@yahoo.es
te lo agradezco
Junio 20th, 2010 at 6:21 am
Muy buen dia oye esta exelente este proyecto pero le falta porne para numeros complejos o si lo tiene me podrias decir como le puedo hacer para meter los datos porfavor mi correo es lain_ito186@hotmail.com.
Gracias.
Julio 18th, 2010 at 1:21 pm
hola, podrias ayudarme con lo siguiente: ¿cual es la codificacion para ejecutar el programa? y si puedes contestarme enviame el codigo de gauss jordan en visual basic