复合形法作业_第1页
复合形法作业_第2页
复合形法作业_第3页
复合形法作业_第4页
复合形法作业_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

优化理论与最优控制作业——复合形法小组成员于童1122227010杜娟1122227005张健华1122227150王楠1122227034刘海珍1122227039复合形法流程图问题三:2-1函数的三维立体图3-2.复合形法求解寻优趋势图3-3.求解结果对照表方法复合形法Matlab工具箱x1-2.95611.5345x21.05581.5345f0.99031.9860四.结果分析对于求解此类问题,做出目标函数的大致图形(当然只限于三维以内)有利于我们判断函数的极值点位置以及估计函数值,同时也可以用来检验计算结果的正确性。对于问题一,两种求解方法的计算结果基本相同,但对于问题二和问题三的求解结果为何不同,我们猜想应该是matlab工具箱的求解方法对求解函数有着特殊的要求所导致的,例如,要求函数可导或者连续等。附录:程序(只给出问题三的求解程序,其他问题的求解类似)一.复合形法求解程序如下:symsstf=-((sin(sqrt(s^2+t^2)))^2-0.5)/(1+0.001*(s^2+t^2))^2+0.5;g=[s+44-st+44-t];r=rand(1,6);m=-4+(4-(-4))*r;X=reshape(m,2,3)[x,maxf,trace_value,trace_meanvalue]=Fuhexing(f,g,X,1.3,0.7,1,0.7,[st]);xmaxf[tvx,tvy]=size(trace_value);fxx=[1:tvy-1];fyy=ones(1,tvy-1);fyy=maxf*fyy;plot(fxx,trace_value(1,2:tvy),'green',fxx,trace_meanvalue(1,2:tvy),'blue',fxx,fyy,'red')legend('最大值','平均值','终值')gridfunction[x,maxf,trace_value,trace_meanvalue]=Fuhexing(f,g,X,alpha,sita,gama,beta,var,eps)%f目标函数%g约束函数%X初始复合形%alpha反射系数%sita压缩系数%gama扩展系数%beta收缩系数%var自变量向量%eps精度%x目标函数取最小值时的自变量%minf目标函数的最小值trace_value=[0];%用于记录最大值的轨迹trace_meanvalue=[0];%用于记录平均值的轨迹N=size(X);n=N(2);%n为复合形的顶点个数FX=zeros(1,n);%用于存放复合形的函数值ifnargin==8eps=1.0e-6;endN=size(X);n=N(2);Fx=zeros(1,n);while1%一直执行,知道找到满足收敛条件后用break跳出循环fori=1:nFX(i)=subs(f,var,X(:,i));%求出复合形的函数值end[XS,IX]=sort(FX);%对FX从大到小排序Xsorted=X(:,IX);%Xsorted为排好序的Xpx=(sum(Xsorted,2)-Xsorted(:,1))/(n-1);%求的除最小值以为的平均值trace_meanvalue=[trace_meanvalue,sum(FX)/n];Fpx=subs(f,var,px);%求的平均值的函数值aaa=subs(f,var,Xsorted(:,n));trace_value=[trace_value,aaa];SumF=sqrt(sum((FX-Fpx).^2)/(n-1));%计算收敛值ifSumF<=epsx=Xsorted(:,n);break;%如果收敛,则退出循环elsebcon_1=1;cof_alpha=alpha;%反射whilebcon_1x2=px+cof_alpha*(px-Xsorted(:,1));%x2为反射点坐标gx2=subs(g,var,x2);%计算约束值ifmin(gx2)>=0%在约束条件内bcon_1=0;elsecof_alpha=0.5*cof_alpha;%如不在约束条件内,则循环,直到到达约束条件endendfx2=subs(f,var,x2);%反射点函数值反射部分结束iffx2>XS(n)%如果反射部分优于最优值则进行扩张操作cof_gama=gama;x3=x2+cof_gama*(x2-px);%扩张gx3=subs(g,var,x3);fx3=subs(f,var,x3);ifmin(gx3)>=0%如果符合边界,iffx3>XS(n)count=1;%优于最优值elsecount=2;%比最优值差endelsecount=3;%不符合边界end%扩张结束ifcount==1Xsorted(:,1)=x3;%用扩张点代替最差点X=Xsorted;continueelseXsorted(:,1)=x2;%用反色点代替最差点X=Xsorted;continueendelse%如果反射部分比最优值差iffx2>XS(2)%如果反射部分大于次坏值,即反射部分优于次坏值则反射点代替Xsorted(:,1)=x2;X=Xsorted;continueelseiffx2>XS(1)%如果反射点比最差点好,比次差点差这用反射点代替最差点Xsorted(:,1)=x2;cof_beta=beta;bcon_3=1;whilebcon_3<4x4=Xsorted(:,1)+cof_beta*(px-Xsorted(:,1));gx4=subs(g,var,x4);ifmin(gx4)>=0%符合边界值bcon_3=5;%退出收缩elsecof_beta=0.5*cof_beta;bcon_3=bcon_3+1;%最多收缩系数调整4次endendifmin(gx4)>=0%符合边界值fx4=subs(f,var,x4);FNnew=subs(f,var,Xsorted(:,1));%计算最差点函数值iffx4>FNnew%如果收缩值优于最差值Xsorted(:,1)=x4;%收缩值代替最差值X=Xsorted;continueelse%收缩值比最差值差,则对所有点进行压缩x0=Xsorted(:,n);fori=1:nXsorted(:,i)=x0+sita*(Xsorted(:,i)-x0);endendelse%如果收缩后的值不符合边界x0=Xsorted(:,n);fori=1:nXsorted(:,i)=x0+sita*(Xsorted(:,i)-x0);X=Xsorted;%用压缩值代替原复合形continueendendelse

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论