[多变量约束优化算法实例.docxVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[多变量约束优化算法实例

1、非线性不等式约束【例1】已知,且满足非线性约束:求。【分析】fmincon函数要求的约束一般为。故对约束条件要变形。【程序清单】%编写目标函数: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);%编写返回约束值得函数:function[c,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】已知,求。且满足非线性约束:边界约束:【分析】此类问题在非线性约束的基础上增加了变量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);%编写返回约束值得函数:function[c,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】已知,且满足非线性约束:,求。【分析】一般来说,标准算法求解函数的最小值常使用由有限差分逼近的到的离散数字梯度,在这个过程中,为了计算目标函数约束的偏微分,所有变量被系统地加以调动。当使用梯度求解上述问题时,效率更高并且结果更精确。题目中目标函数的偏微分为:【程序清单】%编写目标函数和梯度的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文件:function[c,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为: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】已知,且满足非线性约束:【分析】此问题在前述问题的基础上增

文档评论(0)

caiyl9924 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档