1、ro-1) fprintf(write,x_bi); elserj for(j=0;j-1e-5) bxi=arrailin-1/arraiin; k=1; bxi=M; if(k=0) return M; min=bx0; j=0; for(i=1; if(bxi-1e-5&(bxi-min)xBj) j=i; return j;int c_in(float arraN,int ro,int lin) min=arraro-10; if(arraro-1i return M; else return j;void smj() float xxN;row; arrayiline=bi;line
2、; arrayrowi=ci; arrayrowline=0; xbrow-1-i=line-i; in_basic=c_in(array,row+1,line+1); out_basic=b_to_x(array,b_x,xb,row+1,line+1,in_basic); print(in,array,xb,row+1,line+1,in_basic,out_basic); while(in_basic!=M) if(in_basic! xbout_basic=in_basic+1; array_conv(array,row+1,line+1,in_basic,out_basic); in
3、_basic=c_in(array,row+1,line+1); out_basic=b_to_x(array,b_x,xb,row+1,line+1,in_basic); print(in,array,xb,row+1,line+1,in_basic,out_basic); if(out_basic=M) fprintf(in,n找不到出基变量,LP问题无解! break; if(out_basic! j=0; for(i=0; if(arrayrowi j+; if(jline) k=i; if(j!=0) out_basic=k; for(i=0; for(k=0;k1e-5|array
4、ki-1e5) if(i1e-5)|(arrayrowline+row-1e-5)因为:f*=%5.2f !=0n原LP问题没有最优解!,-arrayrowline+row);LP问题进入第二阶段。nn conv(); conve(); linezecon(k);main() char d=a; char name50=d:dcxf printf(n*单纯形法求解程序*nn请输入矩阵A的行数: scanf(%d,&row);请输入矩阵A的列数:line);请输入向量c= scanf(%fci);请输入向量bbi);请输入矩阵A为: scanf(arrayij); i=0; while(name
5、i!=0) i+;n请输入输出文件名:%s,name+i); namei+=.tx namei= if(i=access(dcxf,0)=-1) system(mkdir d: if(in=fopen(name,w)=NULL) printf(nn文件打不开! exit(0);nn-输入的数据如下-nnA = n,arrayij); nnntc = ( ,ci); )nntb,bi);n-具体步骤如下-nnn是否是典范式LP? y/n while(d!yd!n)%cd); if(d= smj(); _smj();n-END-n fclose(in);ntWaiting.n system(name);n-Ok!-nnn*结束*nn
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2