您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 优化设计复合形法-C语言程序
1题目:求如下约束优化问题的最优解F(X)=2221)4()3(xxS.t.0)(11xXg0)(22xXg05.2)(213xxXg05)(214xxXg已知:N=2,,8,0,6,021xx取k=4,310E1#includemath.h#includestdio.h#includestdlib.h#defineE10.001#defineep0.00001#definen2#definek4doubleaf;inti,j;doubleX0[n],XX[n],X[k][n],FF[k];doublea[n],b[n];doublerm=2657863.0;doubleF(doubleC[n]){doubleF;F=pow(C[0]-3,2)+pow(C[1]-4,2);returnF;}intcons(doubleD[n]){if((D[0]=0)&&(D[1]=0)&&(D[0]=6)&&(D[1]=8)&&((2.5-D[0]+D[1])=0)&&((5-D[0]-D[1])=0))return1;elsereturn0;}voidbou(){a[0]=0;b[0]=6;2a[1]=0;b[1]=8;}doubler(){doubler1,r2,r3,rr;r1=pow(2,35);r2=pow(2,36);r3=pow(2,37);rm=5*rm;if(rm=r3){rm=rm-r3;}if(rm=r2){rm=rm-r2;}if(rm=r1){rm=rm-r1;}rr=rm/r1;returnrr;}voidproduce(doubleA[n],doubleB[n]){intjj;doubleS;sl:for(i=0;in;i++){S=r();XX[i]=A[i]+S*(B[i]-A[i]);}if(cons(XX)==0){gotosl;}for(i=0;in;i++){X[0][i]=XX[i];}for(j=1;jk;j++){for(i=0;in;i++){S=r();X[j][i]=A[i]+S*(B[i]-A[i]);}}for(j=1;jk;j++){for(i=0;in;i++){X0[i]=0;for(jj=1;jjj+1;jj++){X0[i]+=X[jj][i];}X0[i]=(1/j)*(X0[i]);3}if(cons(X0)==0){gotosl;}for(i=0;in;i++){XX[i]=X[j][i];}while(cons(XX)==0){for(i=0;in;i++){X[j][i]=X0[i]+0.5*(X[j][i]-X0[i]);XX[i]=X[j][i];}}}}main(){doubleEE,Xc[n],Xh[n],Xg[n],X1[n],Xr[n],Xs[n],w;intl,lp,lp1;bou();s111:produce(a,b);s222:for(j=0;jk;j++){for(i=0;in;i++){XX[i]=X[j][i];}FF[j]=F(XX);}for(l=0;lk-1;l++){for(lp=0;lpk-1;lp++){lp1=lp+1;if(FF[lp]FF[lp1]){w=FF[lp];FF[lp]=FF[lp1];FF[lp1]=w;for(i=0;in;i++){XX[i]=X[lp][i];X[lp][i]=X[lp1][i];X[lp1][i]=XX[i];}4}}}for(i=0;in;i++){Xh[i]=X[0][i];Xg[i]=X[1][i];X1[i]=X[k-1][i];}for(i=0;in;i++){Xs[i]=0;for(j=0;jk;j++){Xs[i]+=X[j][i];}Xs[i]=1/(k+0.0)*Xs[i];}EE=0;for(j=0;jk;j++){EE+=pow((FF[j]-F(Xs)),2);}EE=pow((1/(k+0.0)*EE),0.5);if(EE=E1){gotos333;}for(i=0;in;i++){Xc[i]=0;for(j=1;jk;j++){Xc[i]+=X[j][i];}Xc[i]=1/(k-1.0)*Xc[i];}if(cons(Xc)==1){af=1.3;ss:for(i=0;in;i++){Xr[i]=Xc[i]+af*(Xc[i]-Xh[i]);}if(cons(Xr)==1){5if(F(Xr)=F(Xh)){if(af=ep){for(i=0;in;i++){Xh[i]=Xg[i];}af=1.3;gotoss;}else{af=1/2.0*af;gotoss;}}else{for(i=0;in;i++){X[0][i]=Xr[i];}gotos222;}}else{af=1/2.0*af;gotoss;}}else{for(i=0;in;i++){if(X1[i]Xc[i]){a[i]=X1[i];b[i]=Xc[i];}else{a[i]=Xc[i];b[i]=X1[i];}}gotos111;}s333:printf(F(Xmin)=%f\n,F(X1));for(i=0;in;i++){printf(\nTheX%dis%f.,i,X1[i]);}}
本文标题:优化设计复合形法-C语言程序
链接地址:https://www.777doc.com/doc-5546047 .html