Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Metodo Gauss Seidel en C++ PDF
Metodo Gauss Seidel en C++ PDF
Pseudocódigo
#include <stdio.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#define L 10
#define P L
MAIN
cout<<"\n\n METODO DE GAUSS SEIDEL ";
cout<<"\n\n Numero de incognitas Posibles en el sistema: ";
scanf("%d",&n);
Gauss_Seidel(n);
titulo(n);
resultados();
cout<<"\n\nLos resultado son ";
for(x=0;x<n;x++)
{
RESULTADOS[x]=X[x];
cout<<"\nX["<<x<<"]= "<<RESULTADOS[x];
}
getch();
}
void resultados()
{
int q=0,i=1,t=3,s=n,r=0;
int sw=0,w=0,ite=0,h=0;
while((sw==0)&&(w<20))
{
h=0;
while(h<n)
{
if(tabla[r]==tabla[r+s])
{
cont++;
}
if(cont==n)
sw=1;
r++;
s++;
h++;
}
ite++;
w++;
}
w=ite-1;
for(int j=0;j<w;j++)
{
t=t+2;
if((i%10==0))
{
textcolor(LIGHTRED+BLINK);
gotoxy(5,t-2);
cprintf("\n\n Presione una tecla para ingresar ala tabla!!! ");
getch();
textcolor(GREEN);
clrscr();
t=5;
titulo(n);
}
gotoxy(15,t);cout<<i<<"ø";
int y=20,z=0;
for(int r=0;r<n;r++)
{
gotoxy(y+z,t);cout<<tabla[q];
q++;
z=z+10;
}
i++;
}
}
void main()
{
Diagrama de flujo
Diagrama Método Gauss-Seidel, a) main, b) leer, c) mostrar y c) Gauss-Seidel.
Programa C++
#include "conio.h"
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
int seidel(float [20][21], int , float [20] , float , int, float [20]);
void leemat(float [20][21], int , int);
void mostrar(float [20],int );
main()
{
int n,nit;
float eps, a[20][21], x[20],xs[20];
printf("Solucion de ecuaciones, Metodo iterativo");
printf("\nDame el numero de ecuaciones a resolver ");
scanf("%d",&n);
printf("\nDame la tolerancia permitida: ");
scanf("%f",&eps);
printf("\nDame el maximo de iteraciones permitidas: ");
scanf("%d",&nit);
clrscr();
printf("\nDame la matriz aumentada: ");
leemat(a, n, 4);
clrscr();
seidel( a, n, x, eps, nit, xs);
printf("\n\nPresiona una tecla para salir");
getch();
}
{
int i,j,col;
for(i=1;i<=n;i++)
{
col=2; /*Se define un calor de columna para empezar a capturar*/
for(j=1;j<=nc;j++) /*Se inicia el FOR para las columnas totales*/
{
gotoxy(col,fil+i); /*Se fijan las coordenadas de pantalla*/
scanf("%f",&a[i][j]); /*Se captura el valor de cada elemento de la matriz*/
col=col+5; /*Se avanzan cinco espacios para la próxima columna*/
}
}
}
int seidel(float a[20][21], int n, float x[20], float eps, int nit, float xs[20])
{
int i, j, k, ban; /*Se declaran las variables enteras*/
float aux, b[20][21], xc[20],xs1[20]; /*Se declaran las variables flotantes*/
}
if(ban==1) /*determina si converge o no el sistema*/
{
clrscr(); /*limpia la pantalla*/
printf("\nEl sistema converge");
mostrar(xs,n); /*muestra el arreglo con los resultados*/
return(1); /*devuelve 1 */
break; /*termina la condición if*/
}
else /condición sin cambio de referencia*/
{
for(j=1;j<=n;j++) /*inicia contador para cambiar los valores supuestos*/
{
xs[j]=xc[j]; /*cada supuesto es igual al calculado*/
xs1[j]=xs[j]; /*cada supuesto 1(auxiliary) igual al supuesto*/
}
}
}
if(ban==0) /*condición para el término del número de interaciones*/
{
clrscr(); /*limpia pantalla*/
printf("El sistema no converge");
return(0); /*devuelve cero*/
}
}
void mostrar(float xc[20],int n) /*Se declaran la función y los elementos a insertar*/
{
int i; /*Se declara una variable entera*/
printf("\nLos resultados son:");
for(i=1;i<=n;i++) /*Se inicia un contador para desplegar en pantalla los resultados*/
{
printf("\n xc[%d]= %f",i,xc[i]); /*Se presenta el elemento deseado*/
}
}