Simplex

Arian
10 de Junio del 2005
alguien por favor podria mandarme a [email protected] el codigo fuente de el metodo simplex en c++ gracias

H?or
10 de Junio del 2005
Hola, tengo un codigo que si funciona, lo baje de internet.

/*
PROGRAMA REALIZADO EN LA UNIVERSIDAD DEL SOL , CUERNAVACA MORELOS ,MEXICO

PROGRAMA QUE RESUELVE UNA ECUACION POR EL METODO DE GAUSS 3*4

POR:JONATHAN VILLANUEVA TAVIRA.

LIMITACIONES:EL PROGRAMA NO DETERMINA QUE LA MATRIZ ES INCONSISTENTE.

Y EL PROGRAMA FALLA SI SE TECLEA UN CARACTER INCORRECTO.
*/

#include "stdio.h"

float arre[3][4],valor,temp,x1,x2,x3,var;
int x,y,ren=0,i,j;
char opc;

main()
{
do{
/****EJECUTA LA FUNCION QUE LIMPIA EL ARREGLO***/
limpia();
/****LIMPIO PANTALLA***/
clrscr();
gotoxy(20,1);printf("***METODO DE GAUSS POR:JONATHAN VILLANUEVA***");
/*INICIAMOS UN CICLO PARA INTRODUCIR VALORES*/
for(x=0;x<3;x++){
for(y=0;y<4;y++){
do{
gotoxy(1,ren+2);
printf("VALOR DE X[%d][%d]==> ",x+1,y+1); /*VALORES*/
despliega();
gotoxy(1,ren+2);printf("VALOR DE X[%d][%d]==>",x+1,y+1);
scanf("%f",&var); /*ALMACENO UNA VARIABLE*/
if(var==0)
printf("a");
}while(var==0); /*FORZO A QUE NO SEA CERO EL RESULTADO*/
ren+=1;
arre[x][y]=var; /*Y LA ALMACENO EN EL ARRAY*/
}
}

despliega(); /*FUNCION QUE ME DESPLIEGA LOS VALORES*/


valor=arre[0][0]; /*PARA PODER OBETENER EL1*/
for(x=0;x<4;x++){
arre[0][x]=arre[0][x]/valor;
}

valor=arre[1][0]*(-1); /*MULTIPLICO POR EL SEGUNDO RENGLON Y SUMO*/
for(x=0;x<4;x++){
temp=arre[0][x]*valor;
arre[1][x]=temp+arre[1][x];
}

valor=arre[1][1];
for(x=0;x<4;x++){ /*PARA PODER OBETENER EL 1*/
arre[1][x]=arre[1][x]/valor;
}

valor=arre[2][0]*(-1);
for(x=0;x<4;x++){
temp=arre[0][x]*valor;
arre[2][x]=temp+arre[2][x];
}

valor=arre[2][1]*(-1);
for(x=0;x<4;x++){
temp=arre[1][x]*valor;
arre[2][x]=temp+arre[2][x];
}

despliega2();
resultados();

gotoxy(30,23);printf("ĘDESEA VOLVER A CALCULAR [S/N]?=>>");
opc=getch();

}while(opc=='s' || opc=='S'); /*FORZAMOS A QUE SE REPITA*/
gotoxy(30,25);printf("PRESIONE UNA TECLA PARA FINALIZAR...");
getch();
clrscr();
exit(1);
return;
}

/*************************************FUNCIONES****************************/
/*FUNCION QUE DESPLIEGA LA MATRIZ*/
despliega()
{
gotoxy(35,3);printf("MATRIZ ORIGINAL");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
gotoxy(j*8+30,i*2+5);printf("%0.1f",arre[i][j]);
}
}
return;
}
/************************************************************************/

/********************FUNCION QUE DESPLIEGA LA SOLUCION*******************/
despliega2()
{
gotoxy(38,13);printf("METODO GAUSS");
for(x=0;x<3;x++){
for(y=0;y<4;y++){
gotoxy(y*8+30,x*2+15);printf("%0.2f",arre[x][y]);
}
}
return;
}
/**************************************************************************/
/*****************FUNCION QUE DESPLIEGA LOS RESULTADOS**********************/
resultados()
{
x3=arre[2][3]/(arre[2][2]);
gotoxy(3,20);printf("╚═════════════════╝");
gotoxy(3,16);printf("╔═════════════════╗");
gotoxy(21,17);printf("║");
gotoxy(21,18);printf("║");
gotoxy(21,19);printf("║");
gotoxy(3,19);printf("║ X3= %f",x3);
x2=arre[1][3]+(arre[1][2]*-1)*x3;
gotoxy(3,18);printf("║ X2= %f",x2);
x1=arre[0][3]+(arre[0][1]*x2*-1)+(arre[0][2]*x3*-1);
gotoxy(3,17);printf("║ X1= %f",x1);
gotoxy(3,15);printf("**RESULTADOS**");
return;
}
/*************************************************************************/
/*****************FUNCION QUE LIMPIA EL ARRAY*****************************/
limpia()
{
int w,z;
x=y=ren=var=i=j=0;
for(w=0;w<4;w++){
for(z=0;z<4;z++){
arre[w][z]=NULL;
}
}
return;
}
/************************************************************************/

mr.system
10 de Junio del 2005
lo siento mucho, erÓ muy bueno tu programa pero en realidad tiene problemas l˛gicos que hacen el mal funcionamiento.
te sugiero que lo cheques.