多变量约束优化算法实例.docx_第1页
多变量约束优化算法实例.docx_第2页
多变量约束优化算法实例.docx_第3页
多变量约束优化算法实例.docx_第4页
多变量约束优化算法实例.docx_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、非线性不等式约束【例1】已知 fx=ex1*(4x12+2x22+4x1x2+2x2+1) ,且满足非线性约束:x1x2-x1-x2-1.5x1x2-10,求minxf(x)。【分析】fmincon函数要求的约束一般为 c(x)0。故对约束条件要变形。【程序清单】%编写目标函数:function y=objfun(x)y=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);%编写返回约束值得函数:functionc,ceq=confun(x)%非线性不等式约束c=1.5+x(1)*x(2)-x(1)-x(2); -x(1)*x(2)-10;%线性等式约束ceq=;x0=-1,1;%采用标准算法options=optimset(largescale,off); %这是对寻优函数搜索方式的设定,LargeScale指大规模搜索,off表示在规模搜索模式关闭。 x,fval=fmincon(objfun,x0,confun,options)【输出结果】x = -9.5474 1.0474fval =0.02362、边界约束问题【例2】已知 fx=ex1*(4x12+2x22+4x1x2+2x2+1) ,求minxf(x) 。且满足非线性约束:x1x2-x1-x2-1.5x1x2-10边界约束:x10x20【分析】此类问题在非线性约束的基础上增加了变量x的边界条件,在fmincon函数输入参数中加上Ib和ub 参数即可。【程序清单】%编写目标函数:function y=objfun(x)y=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);%编写返回约束值得函数:functionc,ceq=confun(x)%非线性不等式约束c=1.5+x(1)*x(2)-x(1)-x(2); -x(1)*x(2)-10;%线性等式约束ceq=;x0=-1,1;%设置下界Ib=0,0;%无上界ub=;%采用标准算法options=optimset(largescale,off); %这是对寻优函数搜索方式的设定,LargeScale指大规模搜索,off表示在规模搜索模式关闭。x,fval=fmincon(objfun,x0,Ib,ub,confun,options)【输出结果】x = 0 1.5000fval = 8.5000 c,ceq=confun(x)c = -0.0000 -10.0000ceq = 0 1.50003、利用梯度求解约束优化问题【例3】已知 fx=ex1*(4x12+2x22+4x1x2+2x2+1) ,且满足非线性约束:x1x2-x1-x2-1.5x1x2-10 ,求minxf(x) 。【分析】一般来说,标准算法求解函数的最小值常使用由有限差分逼近的到的离散数字梯度,在这个过程中,为了计算目标函数约束的偏微分,所有变量被系统地加以调动。当使用梯度求解上述问题时,效率更高并且结果更精确。题目中目标函数的偏微分为:fx= ex1*4x12+2x22+4x1x2+2x2+1+ex1*(8*x1+4*x(2) ex1*(4x1+4x2+2) 【程序清单】%编写目标函数和梯度的m文件:function f,g=objfun(x)f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);t=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);% g中包涵着目标函数的偏微分信息g=t+ exp(x(1)*(8*x(1)+4*x(2); exp(x(1)*( 4*x(1) +4*x(2)+2);%编写不等式约束及其梯度的.m文件:functionc,ceq,dc,dceq=confun(x)%不等式约束c=1.5+x(1)*x(2)-x(1)-x(2); -x(1)*x(2)-10;%约束的梯度dc=x(2)-1,-x(2);x(1)-1,-x(1) ;%没有非线性约束ceq=;dceq=;% dc的列包涵着不同约束各自的偏微分,也就是说,dc的第i列是第i个约束条件对x的偏微分,在此处dc为:c1x1c2x1c1x2c2x2=x2-1-x1x1-1-x2 x0=-1,1;%设置下界Ib=0,0;%无上界ub=;%采用标准算法options=optimset(largescale,off); %这是对寻优函数搜索方式的设定,LargeScale指大规模搜索,off表示在规模搜索模式关闭。options=optimset( options,GradObj,on,GradConstr,on);x,fval=fmincon(objfun,x0,Ib,ub,confun,options) c,ceq=confun(x)【输出结果】x = 0 1.5000fval = 8.5000 c,ceq=confun(x)c = 0 -10ceq = 4、等式约束优化【例4】已知 fx=ex1*(4x12+2x22+4x1x2+2x2+1) ,且满足非线性约束:x1x2-x1-x2-1.5x1x2-10x12+x2-1=0 求minxf(x)。【分析】此问题在前述问题的基础上增加了一个等式约束,等式约束的信息可以含在MATLAB优化工具箱函数的输入参数:矩阵Aeq和向量b中,为符合优化函数的调用形式,将约束转化为:x1x2-x1-x2+1.50-10-x1x20x12+x2-1=0【程序清单】%编写目标函数:function f=objfun(x)f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);%编写返回约束值得函数:functionc,ceq=confun(x)%非线性不等式约束c=1.5+x(1)*x(2)-x(1)-x(2); -x(1)*x(2)-10;%线性等式约束ceq=x(1)2+x(2)-1; % 是否可以加 ceq=x(1)2+x(2)-1;x0=-1,1;%无边界约束Ib=;ub=;%采用标准算法options=optimset(largescale,off); %这是对寻优函数搜索方式的设定,LargeScale指大规模搜索,off表示在

温馨提示

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

最新文档

评论

0/150

提交评论