ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:254.73KB ,
资源ID:7056672      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7056672.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(复合形法作业.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

复合形法作业.docx

1、复合形法作业优化理论与最优控制作业复合形法小组成员于童 1122227010杜娟 1122227005张健华 1122227150王楠 1122227034刘海珍 1122227039复合形法流程图一复合形法的基本原理复合形法的基本思路是在n维空间的可行域中选取K个设计点(通常取n+1k2n)作为初始复合形(多面体)的顶点。然后比较复合形各顶点目标函数的大小,其中目标函数值最大的点作为坏点,以坏点之外其余各点的中心为映射中心,寻找坏点的映射点,一般说来此映射点的目标函数值总是小于坏点的,也就是说映射点优于坏点。这时,以映射点替换坏点与原复合形除坏点之外其余各点构成K个顶点的新的复合形。如此反复

2、迭代计算,在可行域中不断以目标函数值低的新点代替目标函数值最大的坏点从而构成新复合形,使复合形不断向最优点移动和收缩,直至收缩到复合形的各顶点与其形心非常接近、满足迭代精度要求时为止。最后输出复合形各顶点中的目标函数值最小的顶点作为近似最优点。补充:关于复合形法定点数目的选取数目多少的选取,要视具体情况而定,一般说来,为了防止迭代过程中产生降维,顶点数目取多一些较好。因为只要在k个顶点中有n+1个顶点所构成的n个矢量线性无关,搜索就不会在降维的空间里进行。所以k值大些,降维的可能性就小些。但是从另一方面看,顶点数目多,显然会降低计算速度。为此,对于优化问题维数n5的优化问题,一般应适当减少顶点

3、数目,而取k=(1.251.5)n(取整)。当然,顶点的最少数目不得低于n+1.二复合形法的优缺点复合形法不需要计算目标函数的导数,也不进行一维搜索,因此对目标函数和约束函数都没有特殊的要求,适用范围较广。复合形法的收敛速度较慢,特别当目标函数的维数较高和约束条件的数目增多时,这一缺点尤为突出。另外,复合形法不能用于求解具有等式约束的优化问题。三问题求解下面分别用复合形法和matlab工具箱分别进行求解并比较计算结果问题一:1-1函数的三维立体图1-2.复合形法求解寻优趋势图1-3.求解结果对照表方法复合形法Matlab工具箱x11.00041x21.00021f1.8048e-070问题二:

4、2-1函数的三维立体图2-2.复合形法求解寻优趋势图2-3.求解结果对照表方法复合形法Matlab工具箱x10.9950-0.1431* e-05x20-0.1431* e-05f0.99508.1197e-10问题三:2-1函数的三维立体图3-2.复合形法求解寻优趋势图3-3.求解结果对照表方法复合形法Matlab工具箱x1-2.95611.5345x21.05581.5345f0.99031.9860四结果分析对于求解此类问题,做出目标函数的大致图形(当然只限于三维以内)有利于我们判断函数的极值点位置以及估计函数值,同时也可以用来检验计算结果的正确性。对于问题一,两种求解方法的计算结果基本

5、相同,但对于问题二和问题三的求解结果为何不同,我们猜想应该是matlab工具箱的求解方法对求解函数有着特殊的要求所导致的,例如,要求函数可导或者连续等。附录:程序(只给出问题三的求解程序,其他问题的求解类似)一复合形法求解程序如下:syms s tf=-(sin(sqrt(s2+t2)2-0.5)/(1+0.001*(s2+t2)2+0.5;g=s+4 4-s t+4 4-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,s t

6、);xmaxftvx,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

7、反射系数 %sita 压缩系数 %gama 扩展系数 %beta 收缩系数 %var 自变量向量 %eps 精度 %x 目标函数取最小值时的自变量 %minf 目标函数的最小值 trace_value=0; %用于记录最大值的轨迹 trace_meanvalue=0; %用于记录平均值的轨迹 N=size(X); n=N(2); %n 为复合形的顶点个数 FX=zeros(1,n); %用于存放复合形的函数值 if nargin=8 eps=1.0e-6; end N=size(X); n=N(2); Fx=zeros(1,n);while 1 %一直执行,知道找到满足收敛条件后用 break

8、 跳出循环 for i=1:n FX(i)=subs(f,var,X(:,i); %求出复合形的函数值 end XS,IX=sort(FX); %对 FX 从大到小排序 Xsorted=X(:,IX); %Xsorted 为排好序的 X px=(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,a

9、aa; SumF=sqrt(sum(FX-Fpx).2)/(n-1); %计算收敛值 if SumF=0 %在约束条件内 bcon_1=0; else cof_alpha=0.5*cof_alpha; %如不在约束条件内,则循环,直到到达约束条件 end end fx2=subs(f,var,x2); %反射点函数值 反射部分结束 if fx2XS(n) %如果反射部分优于最优值 则进行扩张操作 cof_gama=gama; x3=x2+cof_gama*(x2-px); %扩张 gx3=subs(g,var,x3); fx3=subs(f,var,x3); if min(gx3)=0 %如果

10、符合边界, if fx3XS(n) count=1; %优于最优值 else count=2; %比最优值差 end else count=3; %不符合边界 end %扩张结束 if count=1 Xsorted(:,1)=x3; %用扩张点代替最差点 X=Xsorted; continue else Xsorted(:,1)=x2; %用反色点代替最差点 X=Xsorted; continue end else %如果反射部分 比最优值差 if fx2XS(2) %如果反射部分大于次坏值,即反射部分优于次坏值 则反射点代替 Xsorted(:,1)=x2; X=Xsorted; cont

11、inue else if fx2XS(1) %如果反射点比最差点好,比次差点差 这用反射点代替最差点 Xsorted(:,1)=x2; cof_beta=beta; bcon_3=1; while bcon_3=0 %符合边界值 bcon_3=5; %退出收缩 else cof_beta=0.5*cof_beta; bcon_3=bcon_3+1; %最多收缩系数调整 4 次 end end if min(gx4)=0 %符合边界值 fx4=subs(f,var,x4); FNnew=subs(f,var,Xsorted(:,1); %计算最差点函数值 if fx4FNnew %如果收缩值优于

12、最差值 Xsorted(:,1)=x4; %收缩值代替最差值 X=Xsorted; continue else %收缩值比最差值差,则对所有点进行压缩 x0=Xsorted(:,n); for i=1:n Xsorted(:,i)=x0+sita*(Xsorted(:,i)-x0); end end else %如果收缩后的值不符合边界 x0=Xsorted(:,n); for i=1:n Xsorted(:,i)=x0+sita*(Xsorted(:,i)-x0); X=Xsorted; %用压缩值代替原复合形 continue end end else %如果反射值比最差点还要差 x0=X

13、sorted(:,n); for i=1:n Xsorted(:,i)=x0+sita*(Xsorted(:,i)-x0); X=Xsorted; %用压缩值代替原复合形 continue end end end end end X=Xsorted; end maxf=subs(f,var,x);二matlab工具箱求解命令如下:x0=1;1;VLB=-4;-4;VUB=4;4;x,fval=fmincon(fun,x0,VLB,VUB)X Y=meshgrid(-4:0.01:4,-4:0.01:4);Z=0.5-(sin(X.2+Y.2).0.5).2-0.5)./(1+0.001.*(X.2+Y.2).2;mesh(X,Y,Z);shading interp;function f=fun(x)f=-0.5+(sin(x(1)2+x(2)2).(1/2).2-0.5)/(1+0.001*(x(1)2+x(2)2)2;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1