Beto

Solo disponible en BuenasTareas
  • Páginas : 3 (665 palabras )
  • Descarga(s) : 0
  • Publicado : 3 de octubre de 2010
Leer documento completo
Vista previa del texto
Algoritmo en C del Método Simplex.
int main ( ) {
unsigned n,e,*x; float *c,**a,*h,*v; unsigned i,j,bi,bj;
Toma de datos.
printf ("Num. var.: ");
scanf ("%u",&n);
printf ("Num. inec.:");
scanf ("%u",&e);
c = calloc ( n+1, sizeof( float));
a = calloc ( e+1, sizeof( float*));
x = calloc ( e+1, sizeof( unsigned));
h = calloc ( n+1, sizeof( float));
v = calloc ( e+1, sizeof(float));
for ( i=0;i<n;i++) {
printf ("Coef. x(%u) en la ec. del Maximo:",i+1);
Algoritmo en C del Método Simplex.
int main ( ) {
unsigned n,e,*x; float *c,**a,*h,*v; unsigned i,j,bi,bj;Toma de datos.
printf ("Num. var.: ");
scanf ("%u",&n);
printf ("Num. inec.: ");
scanf ("%u",&e);
c = calloc ( n+1, sizeof( float));
a = calloc ( e+1, sizeof( float*));
x = calloc (e+1, sizeof( unsigned));
h = calloc ( n+1, sizeof( float));
v = calloc ( e+1, sizeof( float));
for ( i=0;i<n;i++) {
printf ("Coef. x(%u) en la ec. del Maximo:",i+1);

scanf ("%f",&c[i]);}for ( j=0;j<e;j++) {
a[j] = calloc ( n+1, sizeof(float));
for ( i=0;i<n;i++) {
printf ("Coef. x(%u) en la %u ec.:",i+1,j+1);
scanf ("%f",&a[j][i]);
}printf ("Term.Indep. de la %uec.:",j+1);
scanf ("%f",&a[j][n]);
printf ("Subindice de variable aux. de la inecuacion h(i)");
scanf ("%u",&x[j]);
x[j]--;
}
Preparación de la matriz de datos.
for ( i=0; i<=n;i++){
a[e][i]=-c[i];
for ( j=0;j<e;j++){
a[e][i]+=a[j][i]*c[x[j]];
}
}for (i=0; i< n; i++ ){
printf ("c(%u)= %7.2f\n", i+1,c[i]);
}
Obtención de la columna del elemento pivote.
bi=1;for ( i=0;i<n;i++){
if ( a[e][i]< a[e][bi] ) bi=i;
}if ( a[e][bi]>=0 ) break;
Obtención de la fila del elemento pivote.
bj=1;
for ( j=0;j<e;j++){
if ( a[j][n]*a[bj][bi] <a[bj][n]*a[j][bi] ) bj=j;
}printf ("+");
for ( i=0;i<n+2;i++) printf ("--------");
printf ("+\n");
for ( j=0; j< e; j++){
printf ("| x%u | %7.2f | ",x[j]+1,a[j][n] );
for ( i=0;...
tracking img