- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 线搜索技术
第二章 线搜索技术 前章知识回顾与本章知识提要 2.1精确线搜索及其Matlab实现 2.2非精确线搜索及其Matlab实现 2.3线搜索法的收敛性 前章知识回顾 1.无约束优化问题: 对于函数hi(x), gj(x),若集合E={i: hi(x)=0}与 I={i: gj(x)≥0}构成的指标集E∪I为空集,则称之为无约束优化问题。 2.凸函数: 设函数f:D包含于Rn→R,其中D为凸集。 称f是D上的凸函数,是指对任意的x,y∈D及任意的实数λ∈[0,1],都有 f(λx+(1-λ)y)≤λf(x)+(1-λ)f(y). 当等号不成立时f是严格的凸函数。 本章知识提要 研究无约束优化问题的数值方法,不仅是出于实际问题的需要,同时也是研究约束优化问题数值方法的基础,本章主要讨论一维线搜索算法及其收敛性分析。 我们考虑下面的无约束优化模型 通过某种搜索方式确定步长因子 使得 (2.1) 这实际上是怒变函数 在一个规定的方向上移动所形成的单变量优化问题,也就是所谓的“线搜索”或“一维搜索”技术。令 (2.2) 2.1精确线搜索及其Matlab实现 精确线搜索分为两类,一类是使用导数的搜索,如插值法,牛顿法,及抛物线法等;另一类是不用导数的搜索,如0.618法,分数法及成功-失败法等,这里仅介绍0.618法和二次插值法。 1.黄金分割法 设 其中 是搜索区间 上的单峰函数,在第i次迭代时的搜索区间为 ,取两个试探点 且 ,计算 ,根据单峰函数的性质,可能会出现如下两种情形之一 (1)若 则令 ① 程序1 (0.618 法程序) 用0.618 法求单变量函数?? 在单峰区间[a,b]上的近似极小点. function [s,phis,k,G,E]=golds(phi,a,b,delta,epsilon) %输入: phi是目标函数, a, b 是搜索区间的两个端点 % delta, epsilon分别是自变量和函数值的容许误差 %输出: s, phis分别是近似极小点和极小值, G是nx4矩阵, % 其第k行分别是a,p,q,b的第k次迭代值[ak,pk,qk,bk], % E=[ds,dphi], 分别是s和phis的误差限. t=(sqrt(5)-1)/2; h=b-a; phia=feval(phi,a); phib=feval(phi,b); p=a+(1-t)*h; q=a+t*h; phip=feval(phi,p); phiq=feval(phi,q); k=1; G(k,:)=[a, p, q, b]; while(abs(phib-phia).epsilon)—(h.delta) if(phip.phiq) b=q; phib=phiq; q=p; phiq=phip; h=b-a; p=a+(1-t)*h; phip=feval(phi,p); else a=p; phia=phip; p=q; phip=phiq; h=b-a; q=a+t*h; phiq=feval(phi,q); end k=k+1; G(k,:)=[a, p, q, b]; end ds=abs(b-a); dphi=abs(phib-phia); if(phip.=phiq) s=p; phis=phip; else s=q; phis=phiq; end E=[ds,dphi]; 程序2 (抛物线法程序) 求函数 在区间[a,b]上的局部极小值, 从初始 开始, 然后在区间 和 上进行搜索. function [s,phis,ds,dphi,S]=qmin(phi,a,b,delta,epsilon) %输入: phi 是目标函数, a和b是搜索区间的端点 % delta,epsilon是容许误差 %输出: s是近似极小点, phis是对应的近似极小值; k是迭代次数 % ds是迭代终止时的步长, dphi是—phi(s1)-phi(s)—; S是迭
文档评论(0)