最优化最速下降法,阻尼牛顿效率比较.pptVIP

最优化最速下降法,阻尼牛顿效率比较.ppt

  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文档。上传文档
查看更多
最速下降法与阻尼牛顿法的比较 11信息与计算科学 陈伟民 118632011068 内容概述 一、算法思想 二、算法伪代码 三、程序 四、实验数据 五、结论 一、算法思想 1、最速下降法: 最速下降法是求解无约束优化问题最简单和古老的方法之一,虽然时至今日它不再具有使用性,但它却是研究其他无约束优化算法的基础,许多有效算法都是以它为及基础通过改进或修正而得到的。 2、阻尼牛顿法 初始点需要足够“靠近”极小点,否则,有可能导致算法不收敛。由于实际问题的精确极小点一般是不知道的,因此,初始点的选取给算法的实际操作带来了很大的困难,为了克服这一困难,可引入线搜索技术以得到大范围收敛的算法,即所谓的阻尼牛顿法.给出一个基于Armijo搜索的阻尼牛顿法。 二、算法伪代码 1、最速下降法伪代码: 1)选取初始点 ,容许误差 .令k:=1. 2)计算 .若 停算,输出 作为近似 最优解. 3) 取方向 . 4)由线搜索技术确定步长因子 . 5)令 ,k:=k+1,转1. 二、算法伪代码 2、阻尼牛顿法伪代码: 1、给定终止误差值 , , . , .初始点 .令k:=0. 2、计算 ,若 ,停算,输出 . 3、计算 ,并求解线性方程组得解 , . 4、记 是满足下列不等式的最小非负整数m. 5、令 ,转1. 三、程序 1、最速下降法程序 grad.m function [x,val,k]=grad(fun,gfun,x0) maxk=5000; rho=0.5;sigma=0.4; k=0;epsilon=1e-5; while(kmaxk) g=feval(gfun,x0); d=-g; if(norm(d)epsilon),break,end m=0;mk=0; while(m20) if(feval(fun,x0+rho^m*d)feval(fun,x0)+sigma*rho^m*g*d) mk=m;break; end m=m+1; end x0=x0+rho^mk*d; k=k+1; end x=x0; val=feval(fun,x0); gfun.m function g=gfun(x) xx=x; n=numel(x); for i=1:n syms ([x,num2str(i)]); end syms x; for i=1:n x=[x,[x,num2str(i)]]; end x=x(2:end); f=fun(x); for i=1:n g(i)=diff(f,[x,num2str(i)]); end g=inline(g); h=subs(g,xx(1)); for i=2:n h=subs(h,xx(i)); end g=h; 三、程序 阻尼牛顿法: dampnm.m function [x,val,k]=dampnm(fun,gfun, Hess,x0) maxk=100; rho=0.55;sigma=0.4; k=0; epsilon=1e-5; while(kmaxk) gk=feval(gfun,x0); Gk=feval(Hess,x0); dk=-Gk\gk; if(norm(gk)epsilon), break; end m=0; mk=0; while(m20) if(feval(fun,x0+rho^m*dk)feval(fun,x0)+sigma*rho^m*gk*dk) mk=m; break; end

文档评论(0)

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

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

1亿VIP精品文档

相关文档