最优化大作业.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最优化方法大作业 ---------用优化算法求解函数最值问题 摘 要 最优化(optimization) 是应用数学的重要研究领域.它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。最优化问题一般包括最小化问题和最大化问题,而最大化问题可以通过简单的转化使之成最最小化问题。最小化问题分为两类,即约束最小化和无约束最小化问题。在此报告中,前两个问题属于无约束最小化问题的求解,报告中分别使用了“牛顿法”和“共轭梯度法”。后两个问题属于有约束最小化问题的求解,报告中分别用“外点法”和“内点法”求解。虽然命名不一样,其实质都是构造“惩罚函数”或者“障碍函数”,通过拉格朗日乘子法将有约束问题转化为无约束问题进行求解。再此报告中,“外点法”和“内点法”分别用了直接求导和调用“牛顿法”来求解无约束优化问题。 在此实验中,用“共轭梯度法”对“牛顿法”所解函数进行求解时出现错误,报告中另取一函数用“共轭梯度法”求解得到正确的结果。此实验中所有的函数其理论值都是显见的,分析计算结果可知程序正确,所求结果误差处于可接受范围内。 报告中对所用到的四种方法在其使用以前都有理论说明,对“外点法”中惩罚函数和“内点法”中障碍函数的选择也有相应的说明,另外,对此次试验中的收获也在报告的三部分给出。 本报告中所用程序代码一律用MATLAB编写。 【关键字】 函数最优化 牛顿法 共轭梯度法 内点法 外点法 MATLAB 一,问题描述 分别用共轭梯度发法和牛顿法来求解一下优化问题 分别用外点法和内点发求解一下优化问题 二、问题求解 1.1 用牛顿法求解 1.1.1问题分析: 取步长为1而沿着牛顿方向迭代的方法称为牛顿法,在牛顿法中,初始点的取值随意,在以后的每次迭代中,,直到终止条件成立时停止。 1.1.2 问题求解 注:本程序编程语言为MATLAB,终止条件为,初始取值为[10 10 10 10] M文件(求解函数)如下: function s=newton1(f,c,eps) %c 是初值,eps为允许误差值 if nargin==2 eps=1.0e-16; elseif nargin1 error() % return end syms x1 x2 x3 x4 x=[x1 x2 x3 x4].; grad = jacobian(f).; hesse = jacobian(grad); a=grad; b=hesse; i=1; gradk=subs(a,[x1 x2 x3 x4],[c(1) c(2) c(3) c(4)]); hessek=subs(b,[x1 x2 x3 x4],[c(1) c(2) c(3) c(4)]); pk=-1*(hessek\gradk); x=tihuan(c); while norm(gradk)=eps x=x+pk; gradk=subs(a,[x1 x2 x3 x4],[x(1) x(2) x(3) x(4)]); hessek=subs(b,[x1 x2 x3 x4],[x(1) x(2) x(3) x(4)]); pk=-hessek\gradk; i=i+1; end disp(the times of iteration is:) disp(i) disp(The grad is:) disp(gradk) disp(and the result is:) x=x.; disp(x) return “tihuan”子函数: function x=tihuan(x) x(1)=x(1); x(2)=x(2); x(3)=x(3); x(4)=x(4); end 调用方式如下: syms x1 x2 x3 x4 f=(x1+10*x2)^2+5*(x3-x4)^2+(x2-2*x3)^4+10*(x1-x4)^4; c=[10 10 10 10];%初始值 newton1(f,c,eps); 1.1.3 计算结果如下: 由上述结果可知,当迭代次数达到47次时满足终止条件,此时x为 1.0e-005 * [-0.1111 0.0111 0.0095 0.0095], 显然,此题的理论解为[0 0 0 0],分析上述结果,与理论解的误差处于可接受范围之内。求解完成。 1.2 用共轭梯度法求解函数 用共轭梯度法求解上述函数的程序代码如下: 1.2.1 取,当搜索到时,共轭方向,此时,与A共轭,用右乘上式得,由得,若不满足条件,进行下一次迭代。 1.1.2 问题求解 注:程序所用语

文档评论(0)

186****6410 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档