机械优化设计复合型法

上传人:博****1 文档编号:487108243 上传时间:2022-10-30 格式:DOC 页数:10 大小:175.50KB
返回 下载 相关 举报
机械优化设计复合型法_第1页
第1页 / 共10页
机械优化设计复合型法_第2页
第2页 / 共10页
机械优化设计复合型法_第3页
第3页 / 共10页
机械优化设计复合型法_第4页
第4页 / 共10页
机械优化设计复合型法_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《机械优化设计复合型法》由会员分享,可在线阅读,更多相关《机械优化设计复合型法(10页珍藏版)》请在金锄头文库上搜索。

1、机械优化设计实验报比(一)题目:用复合形法求约束优化问题mi nfxXi5 2 4 x?6 2 ;gi64 xjx?20 ;g3Xi100 的最优解。基本思路:在可行域中构造一个具有K个顶点的初始复合形。对该复合形各顶点的目标函数值进行比较,找到目标函数值最大的顶点(即最坏点),然后按定的法则求出目标函数值有所下降的可行的新点,并用此点代替最坏点,构成 新的复合形,复合形的形状每改变一次,就向最优点移动一步,直至逼近最优 点。(二)复合形法的计算步骤1)选择复合形的顶点数k, 一般取n 1 k 2n,在可行域内构成具有k个顶点的初始复合形2)计算复合形个顶点的目标函数值,比较其大小,找出最好点

2、xl、最坏点Xh、及此坏点Xg.3)计算除去最坏点xh以外的(k-1 )个顶点的中心xc。判别xc是否可行,若xc为可行点,则转步骤4);若Xc为非可行点,则重新确定设计变量的下限和上限值,即令a xL,bXc,然后转步骤1),重新构造初始复合形4)按式XrXcXcXh计算反射点XR,必要时改变反射系数a的值,直至反射成功,即满足式gj Xr 0, j 1,2, m ; f Xrf Xh。然后xR以取代Xh ,构成新的复合形。11 k25)若收敛条件 f Xjf Xl 2得到满足,计算终止。约束最优解k 1 j 1* *为:x xL,f x f xL 。(三)复合形法程序框图见下图:输入 n,

3、 k,a bXlXc4形成初始复合形的k个顶点xj (j=1,2 , ,k)计算各顶点的目标函数值 f(X)(j=1,2,k)是求反射点 Xr xC xCxHXhXr一次坏点Xg代替最坏点XH(四 )源程序如下 :#includedouble objfx(double x)double ff;ff=(x0-5)*(x0-5)+4*(x1-6)*(x1-6);return ff;#includevoid main()void comple(int n,int k,int kg,double ep,double x,double bl,double bu, double xcom100,doubl

4、e *f) ; double a=0,0,b=10,20,f,x2,xcom2100;comple(2,3,3,0.00001,x,a,b,xcom,&f);printf( nnn 输出最优解及目标函数值: n);printf(n x1=%.5f x2=%.5f f(x1,x2)=%.5fnn ,x0,x1,f);/*wsd说明 n优化模型维数k复合形顶点数kg约束函数个数ep收敛精度x a初始点下限b初始点上限 xcom 进程中的优化结果 *f */#include #include #include double objfx(double x);void constraint(double

5、 x,double g);void constraint(double x,double g)g0=64-x0*x0-x1*x1; g1=x1-x0-10;g2=x0-10;int gau(double x,double g,int kg)int i;constraint(x,g);for(i=0;i0)goto s33;return 1;s33:return 0;void xcent(int n,int k,int ll,int lh,double x0,double xcom100)int i,l;double xs;for(i=0;in;i+)xs=0;for(l=0;l-1)x0i=x

6、s/(ll-1);elsex0i=xs/ll;void fxse(int n,int k,double x,double xcom100,double fxk)int l,lp,lp1,i;double temp;for(l=0;lk-1;l+)for(lp=0;lpk-l;lp+)lp1=lp+1;if(fxklp=fxklp1)temp=fxklp;fxklp=fxklp1;fxklp1=temp;for(i=0;in;i+)xi=xcomilp;xcomilp=xcomilp1;xcomilp1=xi;void comple(int n,int k,int kg,double ep,do

7、uble x,double bl,double bu, double xcom100,double *f) int i,iw,l,ll,lh,it;double fx,fx0,sdx,fxh,fxr,alp;double *x0=(double*)calloc(n,sizeof(double);double *xh=(double*)calloc(n,sizeof(double);double *xr=(double*)calloc(n,sizeof(double);double *fxk=(double*)calloc(k,sizeof(double);double *g=(double*)

8、calloc(kg,sizeof(double);s5: for(i=0;in;i+)xi=bli+rand()/40000.0*(bui-bli);iw=gau(x,g,kg);if(iw=0)goto s5;for(i=0;in;i+)xcomi0=xi;for(l=1;lk;l+)for(i=0;in;i+)xcomil=bli+rand()/50000.0*(bui-bli);lh=-1;for(ll=1;llk;ll+) xcent(n,k,ll,lh,x0,xcom); iw=gau(x0,g,kg); if(iw=0) goto s5;for(i=0;in;i+)xi=xcomi

9、ll+1;s24: iw=gau(x,g,kg);if(iw=0)for(i=0;in;i+)xi=x0i+0.5*(xi-x0i);goto s24;elsefor(i=0;in;i+)xcomill+1=xi;for(l=0;lk;l+)for(i=0;in;i+) xi=xcomil;fx=objfx(x);fxkl=fx;it=0;s14: it=it+1;printf(nnn N= %2dn,it);lh=-1;xcent(n,k,k,lh,x0,xcom);fx0=objfx(x0);iw=gau(x0,g,kg);for(i=0;in;i+)printf(X(%d)min=%.5

10、f ,i+1,x0i);printf( Fmin=%.5fn,fx0);for(i=0;ikg;i+)printf( G(%d)min=%.5f,i,gi);sdx=0;for(l=0;lk;l+)sdx=sdx+(fx0-fxkl)*(fx0-fxkl); sdx=sqrt(sdx/(double)k); if(sdxep) goto s38; fxse(n,k,x,xcom,fxk); lh=0;s22: fxh=fxklh;for(i=0;in;i+)xhi=xcomilh; xcent(n,k,k,lh,x0,xcom); iw=gau(x0,g,kg); if(iw=0)goto s

11、36; alp=1.3;s12: for(i=0;i=fxh)if(alp1.0e-4)alp=alp*0.5; goto s12;lh=lh+1;if(lh3)goto s22;for(i=0;in;i+)xcomilh=xri;fxklh=fxr;goto s14;s36: for(i=0;in;i+)bli=xcomik;bui=x0i;goto s5;s38: for(i=0;in;i+)xi=x0i;*f=objfx(x);free(x0);free(xh);free(xr);free(g); free(fxk);(五)程序运行结果Xmir)=5.21896GRin=-0.80830

12、X(2nin=60丁 G(lnin=-9Fnin0.06394Gnin=-4.7S10N=41Kmir)=5.21S61Knin=G.0G527Fiin =0.0396Gmin=-0 00044Gnin=-9-15134G2)min=-4.7339M-42Kmir)=5.21,?93Xmin=6.0&412Fiin=0.36394Gnin=-9.1532Gd冶 in=-4.7207N =43Xmin=5.21918Xnin=6.06303FbiLn =0.96293G0)min=-0.88812Gmin=?-15615G(2)nin=-4-7a82匸输岀最优解及目标函数值:xl=5.21918x2=&.66303

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号