Contenido principal

Método de Jacobi y Gauss-Seidel: Visual Basic 6

Agosto 31, 2008

Son dos métodos númericos, que nos permite hallar soluciones a sistemas con el mismo número de ecuaciones que incognitas.

En los dos métodos se realiza el siguiente proceso, con una pequeña variación en Gauss-Seidel

Tenemos estas ecuaciones:

5x-2y+z=3
-x-7y+3z=-2
2x-y+8z=1

1. Despejar cada incógnita en función de las demás.

x=(3+2y-z)/5
y=(x-3z-2)/-7
z=(1-2x+y)/8

2. Dar valores iniciales a las incógnitas

x1=0
y1=0
z1=0


Por Jacobi:
Reemplazar en cada ecuación los valores iniciales, esto nos dará nuevos valores que serán usados en la próxima iteración

x=(3+2*0-0)/5=0,60
y=(0-3*0-2)/-7=0,28
z=(1-2x+y)/8=0,12

Por Gauss-Seidel
Reemplazar en cada ecuación los valores mas próximos hallados.

x=(3+2*0-0)/5=0,6
y=(0,6-3*0-2)/-7=0,2
z=(1-2*0,6+0,2)/8=0

Se realiza cuantas iteraciones se desee, usando como valores iniciales los nuevos valores hallados. Se puede detener la ejecución del algoritmo al calcular el error del cálculo, el cual lo podemos hallar con esta fórmula: sqr( (x1-x0)^2 + (y1-y0)^2 +(z1-z0)^2 )

Con jacobi
Método de Jacobi

Con Gauss-Seidel

La principal diferencia, es que como el método de gauss_seidel utiliza los valores inmediatamente encontrados, entonces hace que todo el proceso sea más rápido, y como consecuencia hace de éste, un método mas eficaz.

Las fórmulas usadas en la hoja de excel para el método de Jacobi son

=(3+2*D5-E5)/5
=(C5-3*E5-2)/-7
=(1-2*C5+D5)/8
=RAIZ((C6-C5)^2 + (D6-D5)^2 + (E6-E5)^2)

Que corresponde a la variable X,Y,Z y Error respectivamente.

Y para el método de Gauss-Seidel:

=(3+2*J5-K5)/5
=(I6-3*K5-2)/-7
=(1-2*I6+J6)/8
=RAIZ((I6-I5)^2 + (J6-J5)^2 + (K6-K5)^2)

El código fuente y el ejecutable del programa en visual basic 6 puede ser descargado de ACÁ
La clave del comprimido es

www.sinfocol.org

Archivado en: Programación |

49 comentarios

  1. omar Octubre 20, 2008 @ 8:35 am

    ES CHEVERE SABER QUE HAY PROGRAMAS QUE TE AYUDAN PARAR TUS ESTUDIOS

  2. Sysroot Octubre 20, 2008 @ 4:32 pm

    Omar: Creo que el estudio es una actividad personal e independiente. ES necesario elaborar un programa para el correcto funcionamiento de estos dos métodos, por que recuerda que son métodos iterativos (Cíclicos), esto implica que el hacer los dos métodos a lápiz y papel, se desperdiciaría demasiado tiempo, además, en la mayoría de veces, tendrás que hacer tantas operaciones que al final terminarías cansado, así que nunca llegarías a una aproximación de las incógnitas.

  3. Jose Diciembre 11, 2008 @ 12:05 pm

    MUY BUENO SABER QUE PERSONAS SE DEDICAN A OTROS CAMPOS DE LA CIENCIA FELICIDADES

  4. aldo Enero 12, 2009 @ 1:49 am

    hola que tal, mi nombre es Aldo de Mexico, los ejemplos son muy buenos al igual que la aplicacion. Sin embargo, tanto Jacobi como Gauss-Seidel tienen la restriccion de que la matriz A tiene que ser diagonalmente dominante, es decir que el valor absoluto del elemento de la diagonal sea mayor que la suma del resto de los elementos del renglon, de lo contrario la solucion tendra problemas de convergencia, creo que el programa no realiza esta verificacion y seria muy util si lo hiciera ya que me parece muy buena manera de comparar ambos metodos. Por favor si estoy equivocado te agradeceria como puedo aplicar esta parte, gracias y felicidades!!

  5. Sysroot Enero 12, 2009 @ 3:07 pm

    Claro que estás en lo correcto, ambos métodos tienen problemas de convergencia si la diagonal principal no es digonalmente dominante, pero aunque tenga problemas muchas veces se encuentra la solución. Cuando tenga tiempo actualizo el programa para que siempre sea diagonalmente dominante y de paso actualizo la publicación. Gracias.

  6. xD Marzo 18, 2009 @ 3:16 am

    hola, como le hago para insertar en el array los valores que yo quiera, y que no se me generen numeros aleatorios
    gracias

  7. Roberto Abril 20, 2009 @ 11:01 am

    Estimado SYSROOT,

    Me baje el archivo .ZIP pero me solicita un password. Podrias pasarmelo a x@hotmail.com ?

    Gracias/Saludos.

  8. Sysroot Abril 20, 2009 @ 3:16 pm

    La clave del archivo comprimido está en la misma publicación...

  9. antonio Mayo 13, 2009 @ 5:30 pm

    muy bueno esta onda
    es lo k andaba buscando
    soy estudiante de estadistica
    felicidades saludos

  10. edgar Mayo 15, 2009 @ 6:01 pm

    gracias por el programa hermano, esta muy bueno, felicitaciones

  11. alejandra Mayo 25, 2009 @ 10:02 am

    gaus seidel este metodo es efectivo para hacerlos port aqui??? por q estube haciendo uno de gaus seidel y como tenia 13 iteraciones ademas de lo tedioso que es hacer todo ese proceso al final no me dio el resultado esperado......

  12. alejandra Mayo 25, 2009 @ 11:18 am

    el progrma me pide un login cual es???

  13. DRAMIREZ Junio 1, 2009 @ 1:21 pm

    Como hago para ingresar una matriz distinta

  14. Sysroot Junio 4, 2009 @ 4:53 pm

    Alejandra: La clave está indicada en la publicación

    DRamirez: Tienes que modificar el código donde se inicializan los valores de la matriz

  15. IVAN Junio 9, 2009 @ 10:23 am

    POR FA ME PUEDES DAR LA CLAVE DEL ALGORITMO JACOBI -SEIDEL

  16. Christian Junio 17, 2009 @ 3:39 pm

    Hola AYUDA, NO ME DESCARGA EL LINK, Y MI EXPOCISION ES ESTE VIERNES PORFA MANDAMELO POR CORREO AYUDAAAA

  17. DIANA Junio 25, 2009 @ 8:28 pm

    hola AYUDA¡¡ al abrir el programa en visual y ejecutarlo me manda un error en FG.Clear (en el clear) me dice que no se encuentra el metodo o el miembro de datos, que puedo hacer???? ME PUEDES AYUDAR PORFA¡¡¡¡

  18. Sysroot Junio 27, 2009 @ 6:46 pm

    Diana: Tienes que descomprimir TODO el código en una sola carpeta y abrir el archivo que dice "Proyecto1.vbp". Para descomprimir todos los archivos le das clic derecho al archivo comprimido, y después le das en "extraer todo aquí".

  19. osvaldo Junio 27, 2009 @ 6:47 pm

    los programas son buenos, yo tengo el programa que soluciona por la matriz inversa pero no se como subirla a la red ayudame

  20. LEONARDO Junio 28, 2009 @ 7:24 pm

    hola muchar gracias por subir ese programa

  21. Sysroot Junio 28, 2009 @ 10:24 pm

    Osvaldo: Si deseas, envíame el programa, y una breve explicación del método que usa el programa, y lo publico acá en mi página.

  22. LEONARDO Junio 29, 2009 @ 8:46 am

    HOLA DE NUEVO HE DISCULPA ME PODRIAS ENVIAR A MI CORRE UNA EXPLICASION DE COMO USAR ESTOS METODOS EN EXCEL PORFAVOR DE ANTEMANO MUCHAS GRACIAS

  23. DIANA Junio 29, 2009 @ 6:49 pm

    hola de nuevo¡¡¡¡ justamente descomprimi todo y abri el proyecto1 en visual,pero no se porque a la hora de ejecutarlo me manda un error como el que te habia comentado,el unico que me mostro fue la aplicacion que se llama algebra.exe,me urge poder correr el programa en visual porfis podrias agregarme o mandarme tu correo porfa x@hotmail.com

  24. Alberto Julio 13, 2009 @ 1:45 pm

    Hola necesito la clave para descomprimir por que no aparece por ningun lado en esta publicacion Ayudenme por favor

  25. Sysroot Julio 13, 2009 @ 4:05 pm

    Si te fijas bien Alberto, antes de "XX Comentarios" se encuentra el siguiente escrito:
    "La clave del comprimido es
    http://www.sinfocol.org"

    Así que la clave si está en esta publicación...

  26. Alberto Julio 15, 2009 @ 10:30 am

    OK Muchas Gracias

  27. jose daniel Septiembre 7, 2009 @ 11:33 am

    muy bueno los ejemplos me aclaron mis dudas

  28. Bambino Octubre 23, 2009 @ 11:29 am

    Exelente hermano gracias por el aporte, es bueno que existan personas como tu.

  29. HIRAM Octubre 28, 2009 @ 6:05 pm

    MUY BUENA EXPLICACION. SENCILLA PERO BUENA

  30. gts_2009 Noviembre 30, 2009 @ 12:27 pm

    hey man me podrias mandar el Algoritmo de Gauss-Seidel gracias

  31. Fran Diciembre 7, 2009 @ 9:44 pm

    muchas gracias por la explicacion!
    me ha sido de gran ayuda para comprender bien estos 2 metodos!
    un saludo desde España

  32. Sol Enero 21, 2010 @ 4:58 pm

    como descargo el preograma necesito entregar una actividad y no hallo como llevarlo a excel

  33. Sysroot Enero 23, 2010 @ 1:52 pm

    Lo siento pero no tenemos la hoja de excel por el momento.

  34. zero cool Enero 24, 2010 @ 9:35 am

    muy buena explicacion mi pana, pero ya llevo dos dias intentando llevarlo a excel y nada, no manejo par nada el excel :S podrias subir la hoja de excel o enviarmela a mi e-mail???

  35. ADYS Marzo 9, 2010 @ 10:28 pm

    OYE, GRACIAS POR EL PROGRAMA ME SIRVIO MUCHO, ADEMÁS ES MUY PRACTICO...SALUDOS CORDIALES...

  36. mario Abril 15, 2010 @ 10:23 pm

    la verdad no ocupo mucho la compu pero es muy raro
    encontrar sitios como este y te agradezco que lo espliques con esta sensilles de verdad gracias

  37. felipe Abril 22, 2010 @ 12:19 am

    Buen dia a todos los usuarios, primero que nada doy creditos a sysroot por tomarse el tiempo de subir info util, mi pregunta es ¿que pasa si la matriz no es diagonalmente dominante, yo estoy cursando en una materia este tema y me dejaron un ejercisio donde la matriz no es diagonalmente dominante, segun nos explicaron brevemente que se puede mover los renglones de la matriz para poder encontrar la mejor combinacion buscando con esto tener la matriz diagonal dominante como se requiere, ya aplique ese criterio a mi matriz y encontre que en dos renglones la suma de los restantes es menor asi que en ese aspecto si convergeria pero en uno de los tres renglones no cuadra ese criterio, mi pregunta es tambien si es posible calcularlo por es metodo de jacobi aun asi y si seria asi el procedimiento ya que llevo varios pasos y no veo que se le acerque al resultado, y en caso de no poderse por jacobi que metodo me recomiendas para resolver una matriz que no converga en jacobi, agradesco todas las atenciones y espero obtener respuesta, saludos a todos.

  38. Sysroot Abril 26, 2010 @ 6:09 pm

    Hola Felipe.
    El teorema sobre los dos métodos dice: "Si un sistema de n ecuaciones lineales con n variables tiene una matriz de coeficientes estrictamente dominante, entonces tiene una
    solución única y tanto la del método de Jacobi como la del de Gauss-Seidel convergen en ella".

    Este teorema es una implicación de un sólo sentido!, el hecho de que un sistema no sea diagonal estrictamente dominante, no significa que los métodos iterativos vayan a ser divergentes. Ellos pueden o no converger. Lo importante cuando convergen, es que si lo hacen lo deben hacer hacia una única solución.

    Dos ejemplos que ilustran como matrices que no son diagonalmente estrictas pueden converger usando los métodos:

    -4x + 5y = 14
    1x - 3y = -7


    5x - 2y + 3z = -8
    x + 4y - 4z = 102
    -2x - 2y + 4z = -90

    Los únicos dos métodos que conozco para resolver este tipo de problemas son el método de Jacobi y el de Gauss-Seidel.

  39. niels Junio 9, 2010 @ 4:06 pm

    amigo ejecute el programa pero no entiendo como es la carga de la matriz A, no me permite introducir cada elemento de la matriz solo un termino a y un termino b, si puedes x favor explicarme te lo agradeceria mucho...

    gracias...

  40. Sysroot Junio 10, 2010 @ 9:01 pm

    Niels: El programa hace la matriz él solo, próximamente en la página de ingeniería informática en colombia agregaré el respectivo programa un poco más flexible.
    http://ingcol.wordpress.com/

  41. celeste Septiembre 6, 2010 @ 10:27 am

    graciaas a la persona que se encarga se brindarnos esta información que es de suma ayuda para los que damos esta materia.... gracias nuevamente

  42. conejillodeindias Septiembre 20, 2010 @ 3:50 pm

    Amigo deveras mcuhas gracias el ejercicio de ejmeplo me sirvio para enteder como funciona este metodo, ahora quisiera pedirte una ayuda estoy intentando hacer lo mismo del jacobioano pero con el metodo de newton-rapson quisera saber si puedes porfavor colgar informacion y ejemplos y si puedes el algoritomo de antemano gracias

  43. Sysroot Septiembre 30, 2010 @ 6:42 pm

    Una actualización de esta publicación junto con otros métodos utilizados serán publicados en el blog de ingeniería (http://ingcol.wordpress.com/)

  44. Fritz Chevry Diciembre 6, 2010 @ 9:21 am

    De verdad no encuentro como agradecer a SYSROOT por esta importantisima herramienta que el subio a nustro favor. Esta me ha ayudado mucho. De nuevo te agradezco mucho.
    Que Dios te amplie el conocimiento!

    Desde Santo Domingo, Rep. Dom.
    Saludos,

  45. yreta Abril 11, 2011 @ 3:46 pm

    PRIMERO QUE NADA GRACIAS ESTOS PEQUEÑOS TIPS MARCAN LA DIFERENCIA Y BUENO NO SE SI PUDIERA AYUDARLOS EN ALGO SERIA UN GUSTO

  46. ronald Enero 10, 2012 @ 9:26 pm

    un favor bien grande me podrían ayudar con el método de richardson......

  47. ches Abril 8, 2013 @ 11:33 am

    Hola que tal, tengo que desarrollar el metodo de jacobi para ecuaciones no lineales. Se puede utilizar para ese caso? Donde puedo enconrar informacion sobre el tema?

  48. Jose Jairo Octubre 14, 2013 @ 11:09 pm

    quisiera saber como funciona, lo e descargado ..pero nose como usarlo

  49. AlbinJSRO Marzo 7, 2014 @ 2:26 am

    Muchas gracias amigo por haberte tomado la molestia en brindarnos este programa, bueno soy aprendiz de visual basic, sé algunas cosas, pero podría decirse que aún me falta mucho, tal como dije, estoy aprendiendo apenas. El programa está muy bueno, y tengo una pregunta:

    ¿Cómo cambiarías el formulario para hacer que en el programa le introduzcas los valores que quieras a la matriz?

    Revisé los comentarios y ví que respondiste a uno que debe "modificar el código donde se inicializan los valores de la matriz", ahora mi problema es hacerlo, ¿podrías orientarme más o menos cómo hacerle?

    Nuevamente, muchas gracias y saludos desde México.

Deja un comentario