0% encontró este documento útil (0 votos)
235 vistas5 páginas

Metodo de Gauss Seidel Programacion en C

El método de Gauss-Seidel es una técnica para resolver grandes números de ecuaciones simultáneas. Itera los cálculos de cada incógnita usando los valores actualizados de las otras incógnitas hasta que la solución converge. El documento explica el algoritmo del método, que involucra asignar valores iniciales, calcular nuevos valores iterativamente basados en el coeficiente dominante en cada ecuación, y repetir hasta que los valores hayan convergido dentro de un error especificado. También presenta un código en C que implementa este método para resolver un sistema

Cargado por

Armando
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
235 vistas5 páginas

Metodo de Gauss Seidel Programacion en C

El método de Gauss-Seidel es una técnica para resolver grandes números de ecuaciones simultáneas. Itera los cálculos de cada incógnita usando los valores actualizados de las otras incógnitas hasta que la solución converge. El documento explica el algoritmo del método, que involucra asignar valores iniciales, calcular nuevos valores iterativamente basados en el coeficiente dominante en cada ecuación, y repetir hasta que los valores hayan convergido dentro de un error especificado. También presenta un código en C que implementa este método para resolver un sistema

Cargado por

Armando
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

lOMoARcPSD|6002935

Método de Gauss-Seidel - Programación en C

Métodos Numéricos (Universidad Autónoma de Zacatecas)

StuDocu no está patrocinado ni avalado por ningún colegio o universidad.


Descargado por Armando Partida ([email protected])
lOMoARcPSD|6002935

MÉTODO DE GAUSS-SEIDEL
El método de eliminación para resolver ecuaciones simultáneas suministra soluciones
suficientemente precisas hasta para 15 o 20 ecuaciones. El número exacto depende de las
ecuaciones de que se trate, del número de dígitos que se conservan en el resultado de las
operaciones aritméticas, y del procedimiento de redondeo. Utilizando ecuaciones de error, el
número de ecuaciones que se pueden manejar se puede incrementar considerablemente a
más de 15 o 20, pero este método también es impráctico cuando se presentan, por ejemplo,
cientos de ecuaciones que se deben resolver simultáneamente.
Sin embargo, existen varias técnicas que se pueden utilizar, para resolver grandes números
de ecuaciones simultáneas. Una de las técnicas más útiles es el método de Gauss-Seidel.
Ninguno de los procedimientos alternos es totalmente satisfactorio, y el método de Gauss-
Seidel tiene la desventaja de que no siempre converge a una solución o de que a veces
converge muy lentamente. Sin embargo, este método convergirá siempre a una solución
cuando la magnitud del coeficiente de una incógnita diferente en cada ecuación del conjunto,
sea suficientemente dominante con respecto a las magnitudes de los otros coeficientes de esa
ecuación.
Es difícil definir el margen mínimo por el que ese coeficiente debe dominar a los otros para
asegurar la convergencia y es aún más difícil predecir la velocidad de la convergencia para
alguna combinación de valores de los coeficientes cuando esa convergencia existe. No
obstante, cuando el valor absoluto del coeficiente dominante para una incógnita diferente
para cada ecuación es mayor que la suma de los valores absolutos de los otros coeficientes de
esa ecuación, la convergencia está asegurada. Ese conjunto de ecuaciones simultáneas
lineales se conoce como sistema diagonal.
Un sistema diagonal es condición suficiente para asegurar la convergencia, pero no es
condición necesaria. Afortunadamente, las ecuaciones simultáneas lineales que se derivan de
muchos problemas de ingeniería, son del tipo en el cual existen siempre coeficientes
dominantes.

Descargado por Armando Partida ([email protected])


lOMoARcPSD|6002935

Algoritmo del método de Gauss - Seidel


1. Asignar un valor inicial a cada incógnita que aparezca en el conjunto. Si es posible
hacer una hipótesis razonable de éstos valores, hacerla. Si no, se pueden asignar
valores seleccionados arbitrariamente. Los valores iníciales utilizados no afectarán la
convergencia como tal, pero afectarán el número de iteraciones requeridas para dicha
convergencia.

2. Partiendo de la primera ecuación, determinar un nuevo valor para la incógnita que


tiene el coeficiente más grande en esa ecuación, utilizando para las otras incógnitas los
valores supuestos.

3. Pasar a la segunda ecuación y determinar en ella el valor de la incógnita que tiene el


coeficiente más grande en esa ecuación, utilizando el valor calculado para la incógnita
del paso 2 y los valores supuestos para las incógnitas restantes.

4. Continuar con las ecuaciones restantes, determinando siempre el valor calculado de


la incógnita que tiene el coeficiente más grande en cada ecuación particular, y
utilizando siempre los últimos valores calculados para las otras incógnitas de la
ecuación. (Durante la primera iteración, se deben utilizar los valores supuestos para las
incógnitas hasta que se obtenga un valor calculado). Cuando la ecuación final ha sido
resuelta, proporcionando un valor para la única incógnita, se dice que se ha
completado una iteración.

5. Continuar iterando hasta que el valor de cada incógnita, determinado en una


iteración particular, difiera del valor obtenido en la iteración previa, en una cantidad
menor que cierto seleccionado arbitrariamente. El procedimiento queda entonces
completo.

Refiriéndonos al paso 5, mientras menor sea la magnitud del seleccionado, mayor será la
precisión de la solución. Sin embargo, la magnitud del épsilon no especifica el error que puede
existir en los valores obtenidos para las incógnitas, ya que ésta es una función de la velocidad
de convergencia. Mientras mayor sea la velocidad de convergencia, mayor será la precisión
obtenida en los valores de las incógnitas para un dado.

Descargado por Armando Partida ([email protected])


lOMoARcPSD|6002935

Código del método de Gauss-Seidel programado en C


#include <stdio.h> }
#include <math.h> */
#include <ivan.h> while(error >= 0.001)
{
int main (){ x1ant = x1;
float matriz[3][4]; x1 = (matriz[0][3] - (matriz[0][1] * x2) - (matriz[0][2] * x3)) /matriz[0]
[0];
float error=100;
x2 = (matriz[1][3] - (matriz[1][0] * x1) - (matriz[1][2] * x3)) /matriz[1]
float x1=0; [1];
float x1ant=0; x3 = (matriz[2][3] - (matriz[2][0] * x1) - (matriz[2][1] * x2)) /matriz[2]
float x2=0; [2];
float x3=0; error = fabs(((x1-x1ant)/x1)*100);
int i,j; }
implinea(); centrartexto("La matriz ingresada es:\n",wherey());
centrartexto("Solo para matrices aumentadas de 3x4\n\ gotoxy(23,wherey()+1);
n",2); for(i=0;i<3;i++){
implinea(); for(j=0;j<4;j++)
matriz[0][0]=3; printf("%.3f ",matriz[i][j]);
matriz[0][1]=-.1; printf("\n");
matriz[0][2]=-.2; gotoxy(23,wherey()+1);
matriz[0][3]=7.85; }
matriz[1][0]=.1; gotoxy(0,wherey());
matriz[1][1]=7; implinea();
matriz[1][2]=-.3; centrartexto("El Resultado Es:",wherey()+1);
matriz[1][3]=-19.3; gotoxy(33,wherey()+2);
matriz[2][0]=.3; printf("X1 = %f",x1);
matriz[2][1]=-.2; gotoxy(33,wherey()+1);
matriz[2][2]=10; printf("X2 = %f",x2);
matriz[2][3]=71.4; gotoxy(33,wherey()+1);
/* for(i=0;i<3;i++) printf("X3 = %f",x3);
for(j=0;j<4;j++) gotoxy(0,wherey()+2);
{ implinea();
printf("Ingresa el valor de la matriz en la posición getch();
[%d][%d]: ",i+1,j+1); getch();
scanf("%f",&matriz[i][j]); return 0;
}

Descargado por Armando Partida ([email protected])


lOMoARcPSD|6002935

Ejecución del Programa

Descargado por Armando Partida ([email protected])

También podría gustarte