Você está na página 1de 8

Universidad Nacional

Autnoma de Mxico

FACULTAD DE INGENIERIA
Anlisis Numrico
Ing. Alfonso Salazar Moreno
Programario 2
Grupo: 11
Fecha: 10/mayo/2015
Flores Rodrguez Brbara Abihail
Sosa Gonzlez Alejandro

Mtodo de Gauss-Seidel

Captura de pantalla del trabajo funcionando:






(Algoritmo Pseudocodigo) :
Este programa obtiene las las races con respecto a una matriz
ordenada, y aplicando el mtodo de Gauss.

/* Metodo Gauss en tipo: seidel ********/

#include<math.h>
#include<conio.h>
#include<stdio.h> para las funciones printf, scanf, getch
#include<stdlib.h>
#include<ctype.h>

INICIO

ASIGNAR: auxiliar,error,error1[10],resultado[10],suma, tolerancia,


ASIGNAR: auxx[10],xy[10][10];
ASIGNAR: grado,i=0,j=0,k=0,l=0;
IMPRIMIR : "Bienvenido ingeniero
Este programa le ayudara a resolver sistemas de ecuaciones, utilizando matrices por
el metodo de Gauss-seidel"
IMPRIMIR: Vamos a comenzar"
ESPERAR Y PRESIONAR UNA TECLA
BORRAR PANTALLA
IMPRIMIR: Recuerde ingeniero que la matriz tiene que estar ordenada\n y
cumpliendo la convergencia en cada renglon"
ESPERAR
IMORIMIR: "Registre el numero de ecuaciones a calcular [1 - 10]:
LEER: GRADO
PARA: (j=0;j<10;j++)
HACER
auxx[j]=0;
PARA: (i=0;i<grado;i++)
HACER
IMPRIMIR: "Ingresa la Ecuacion %d\n",i+1
PARA(j=0;j<grado;j++)
HACER
IMRIMIR "X%d%d= ",i+1,j+1
LEER: "%f",&xy[i][j]
FIN PARA

IMPRIMIR "Y%d= ",i+1


LEER "%f",&resultado[i]
FIN PARA

/*****************************Imprime Ecuaciones*****************************/
IMPRIMIR: "Las Ecuaciones son.."
PARA (i=0;i<grado;i++)
PARA(j=0;j<grado;j++)

IMPRIMIR: "%.2f[X%d]",xy[i][j],j+1
SI (0<j<grado)
IMPRIMIR ("+")
FIN PARA
FIN PARA
IMPRIMIR: "=",i+1
IMPRIMIR "%.2f",resultado[i]
IMPRIMIR: "\n"
FIN SI
IMPRIMIR: "La Matriz a Resolver es..."
PARA (i=0;i<grado;i++)
IMPRIMIR: " %c ",179
SI(j=0;j<grado;j++)
IMPRIMIR " %.3f ",xy[i][j],j+1
FIN SI
IMPIMIR: " %c ",179
IMPRIMIR: " %.2f ",resultado[i]
IMPRIMIR: " %c \n",179
FIN PARA
IMPRIMIR "Ingresa la Exactitud o Tolerancia: "
LEER "%f",&tolerancia
/***************************Metodo de Gauss***************************/
PARA(;;)
IMPRIMIR "\n"
PARA(i=0;i<grado;i++)
suma=0;
auxiliar=auxx[i];
PARA(j=0;j<grado;j++)
SI(j!=i)
HACER: suma+=(xy[i][j]*auxx[j]);
FIN SI
FIN PARA
auxx[i]=(resultado[i]-suma)/xy[i][i];
printf("X%d= %.15f \n",i+1,auxx[i]);
error1[i]=fabs(auxx[i])-fabs(auxiliar);
FIN PARA
/****************************************************************************/
k=0;
MIENTRAS (k<grado)
SI (i=0;i<grado-1;i++)
SI(error1[i]<error1[i+1])
HACER
auxiliar=error1[i];
error1[i]=error1[i+1];
error1[i+1]=auxiliar;
FIN SI
FIN SI
k++;
FIN MIENTRAS
error=error1[0];
l++;
SI (error<tolerancia)
break;
FIN SI
IMPRIMIR: "Resultados en la Iteracion %d\n\n",l
PARA (i=0;i<grado;i++)
IMPRIMIR: "X%d=%.15f\n",i+1,auxx[i]
FIN PARA
ESPERAR
FIN















Cdigo Fuente:
/* Metodo Gauss en tipo: seidel ********/

#include<math.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
/********************************Funcion Main********************************/
main()
{

float auxiliar,error,error1[10],resultado[10],suma,tolerancia,
auxx[10],xy[10][10];
int grado,i=0,j=0,k=0,l=0;
/*******************************Captura Datos*******************************/
printf("\t\tBienvenido ingeniero\n\nEste programa le ayudara a resolver
sistemas de ecuaciones, utilizando matrices por el metodo de Gauss-
seidel\n");
printf("\nVamos a comenzar");
getch();
system("cls");
printf("\nRecuerde ingeniero que la matriz tiene que estar ordenada\n y
cumpliendo la convergencia en cada renglon");
getch();
printf("\n\nRegistre el numero de ecuaciones a calcular [1 - 10]: ");
scanf("%d",&grado);
for(j=0;j<10;j++)
{
auxx[j]=0;
}
for(i=0;i<grado;i++)
{
printf("\nIngresa la Ecuacion %d\n",i+1);
for(j=0;j<grado;j++)
{
printf("X%d%d= ",i+1,j+1);
scanf("%f",&xy[i][j]);
}
printf("Y%d= ",i+1);
scanf("%f",&resultado[i]);
}
/*****************************Imprime Ecuaciones*****************************/
printf("\n\nLas Ecuaciones son...\n\n");
for(i=0;i<grado;i++)
{
for(j=0;j<grado;j++)
{
printf("%.2f[X%d]",xy[i][j],j+1);
if(0<j<grado){
printf("+");
}
}
printf("=",i+1);
printf("%.2f",resultado[i]);
printf("\n");
}
printf("\n\nLa Matriz a Resolver es...\n\n");
for(i=0;i<grado;i++)
{
printf(" %c ",179);
for(j=0;j<grado;j++)
{
printf(" %.3f ",xy[i][j],j+1);
}
printf(" %c ",179);
printf(" %.2f ",resultado[i]);
printf(" %c \n",179);
}
printf("\nIngresa la Exactitud o Tolerancia: ");
scanf("%f",&tolerancia);
/***************************Metodo de Gauss***************************/
for(;;)
{
printf("\n");
for(i=0;i<grado;i++)
{
suma=0;
auxiliar=auxx[i];
for(j=0;j<grado;j++)
{
if(j!=i)
{
suma+=(xy[i][j]*auxx[j]);
}
}
auxx[i]=(resultado[i]-suma)/xy[i][i];
printf("X%d= %.15f \n",i+1,auxx[i]);
error1[i]=fabs(auxx[i])-fabs(auxiliar);
}
/****************************************************************************/
k=0;
while(k<grado)
{
for(i=0;i<grado-1;i++)
{
if(error1[i]<error1[i+1])
{
auxiliar=error1[i];
error1[i]=error1[i+1];
error1[i+1]=auxiliar;
}
}
k++;
}
error=error1[0];
l++;
if(error<tolerancia)
break;
}
printf("\n\n\nResultados en la Iteracion %d\n\n",l);
for(i=0;i<grado;i++)
{
printf("X%d=%.15f\n",i+1,auxx[i]);
}
getch();
}

Você também pode gostar