单纯形法_单纯形搜索法
单纯形法由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单纯形搜索法”。
public cla Linear{ public static double[] c={-3,-2,0,0,0,0};public double W(double x[]){return c[0]*x[0]+c[1]*x[1]+c[2]*x[2]+c[3]*x[3]+c[4]*x[4]+c[5];} public static int cmin(double c1[]){ int min=0,i;for(i=0;ic1[i])min=i;return min;} public int xmin(double a,double b,double c){double []x={0,0,0};int min,i;x[0]=a;x[1]=b;x[2]=c;if(a>0)
{min=0;
for(i=1;i
if(x[min]>x[i]&&x[i]>0)min=i;
} else if(b>0)
{min=1;
if(x[min]>x[2]&&x[2]>0)min=2;
} else
min=2;
return min;} public static void main(String[]args){ Linear Linear=new Linear();double []x={0,0,10,24,8};int i,l,r,j,t;double cl;double [] al={0,0,0};double W=0;double[][] a={{2,1,1,0,0},{3,3,0,1,0},{2,0,0,0,1}};double[] b={10,24,8};double[] c={-3,-2,0,0,0,0};W=Linear.W(x);System.out.println(“ x1 ”+“ ”+“x2”+“
”+“x3”+“
”+“x5”+“
”+“W”);System.out.println(x[0]+“ ”+x[1]+“ ”+x[2]+“ ”+x[3]+“ ”+W);while(c[0]
r=(int)Linear.xmin(b[0]/a[0][l],b[1]/a[1][l],b[2]/a[2][l]);
cl=c[l];
c[5]=c[5]+b[r]*c[l]/a[r][l];
for(i=0;i
c[i]=c[i]-a[r][i]*cl/a[r][l];
for(j=0;j
{
if(j==r)
{al[j]=a[j][l];
b[j]=b[j]/al[j];
for(i=0;i
a[j][i]=a[j][i]/al[j];
}
else
{ al[j]=a[j][l];
“+”x4“+” “+x[4]+”
b[j]=b[j]-b[r]*al[j]/a[r][l];
for(i=0;i
a[j][i]=a[j][i]-a[r][i]*al[j]/a[r][l];
}
} for(j=0;j
for(i=0;i
{if(c[i]==0&&a[j][i]!=0)
{ t=j;
x[i]=b[t]/a[t][i];
}
if(c[i]!=0)x[i]=0;} W=Linear.W(x);System.out.println(x[0]+“ ”+x[1]+“ ”+x[2]+“ ”+x[3]+“ ”+W);} System.out.println(“最优解:”+“W*=-Wmin=”+-W);} }
“+x[4]+”