复合形法C语言程序
Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】
现代设计理论与方法实验
一、实验名称:复合形法参考程序上机实验
二、实验目的:1:掌握复合形法优化问题的寻优策略 2:能读懂程序并应用程序计算一些目标函数的最优解 三、实验流程:
1、题目:求如下约束优化问题的最优解
F(X)=(x1?3)2?(x2?4)2
.
已知:N=2,x1??0,6?,x2??0,8?,取k=4,E1?10。
?32、编写黄金分割法的C语言程序代码; 3、利用visualc程序运行C程序代码;
#include\#include\#include\# #
#definen2 #definek4 doubleaf; inti,j;
doubleX0[n],XX[n],X[k][n],FF[k]; doublea[n],b[n]; doublerm=;
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)&&([0]+D[1])>=0)&&((5-D[0]-D[1])>=0)) return1;
else return0; }
voidbou() { a[0]=0;b[0]=6; a[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;i if(cons(XX)==0) {gotosl;} for(i=0;i for(j=1;j for(j=1;j X0[i]=0; for(jj=1;jj 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;j w=FF[lp];FF[lp]=FF[lp1];FF[lp1]=w; for(i=0;i for(i=0;i for(i=0;i EE=0; for(j=0;j EE=pow((1/(k+*EE),; if(EE<=E1) { gotos333; } for(i=0;i if(cons(Xc)==1) { af=; ss:for(i=0;i
复合形法C语言程序



