- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最速下降法vs基本牛顿法程序
运筹与优化实验报告1日期:2016年11月17日班级14级信计2班姓名郭蕾学号1401214023实验名称求解无约束优化问题计算的问题:Generalized Rosebrock function的最优化问题?(1)二维求min f(x)=100()+.该问题的精确解为x*=,f(x*)=0.(2)多维求解min该问题的精确解为x*=,f(x*)=0.使用的算法:?1、最速下降法2、基本牛顿法3、阻尼牛顿法4、广义Rosenbrock函数的计算(以基本牛顿法为例)源程序:0、二维函数根据例题计算过程中所要用到的需要提前计算的具体函数(1)原f(x)函数function f=f(x)f=100*(x(1)^2-x(2))^2+(x(1)-1)^2;(2)f(x)的梯度函数function g=ggf(x)g=[400*x(1)^3-400*x(1)*x(2)+2*x(1)-2,(-200)*(x(1)^2-x(2))];(3)Armijo非精确搜索确定newxfunction [newx,fnewx]=armijo(xk,dk)bita=0.5;sigma=0.2;m=0;while (f(xk+bita^m*dk)f(xk)+sigma*bita^m*ggf(xk)*dk)(m=20) m=m+1;endmk=m;alpha=bita^mk;newx=xk+bita^mk*dk;fnewx=f(newx);(4)f(x)的Hesse矩阵function G=G(x)G=[1200*x(1)^2-400*x(2)+2,-400*x(1); -400*x(1),200];1、最速下降法函数文件function [x,y,k]=mygrad(xk)eps=10^(-5);k=0;g=ggf(xk);dk=-g;while norm(g)eps [newx,fnewx]=armijo(xk,dk); g=ggf(newx);xk=newx;dk=-g; k=k+1;endx=newx;y=fnewx;2、基本牛顿法函数文件function [x,y,k]=jibenniudunfa(xk)eps=10^(-6);k=0;while norm(ggf(xk))epsGk=G(xk);dk=-G(xk)\ggf(xk);xk=xk+dk; k=k+1;endx=xk;y=f(xk);3、阻尼牛顿法函数文件function [x,y,k]=zuniniudunfa(x0)eps=10^(-6);k=0;gk=ggf(x0);while norm(ggf(x0))eps Gk=G(x0);dk=-G(x0)\ggf(x0); [x0,fnewx]=armijo(x0,dk); k=k+1;endx=x0;y=f(x0);4、广义Rosenbrock函数的计算(以基本牛顿法为例)(1)广义f(x)函数function f=genf(x)f=0;n=length(x);c=100;fori=1:n-1 f=f+c*(x(i)^2-x(i+1))^2+(x(i)-1)^2;end(2)广义f(x)函数的梯度函数function g=geng(x)n=length(x);c=100;g=zeros(n,1);g(1)=4*c*x(1)*(x(1)^2-x(2))+2*(x(1)-1);g(n)=-2*c*(x(n-1)^2-x(n));fori=2:n-1 g(i)=-2*c*(x(i-1)^2-x(i))+4*c*x(i)*(x(i)^2-x(i+1))+2*(x(i)-1);end(3)广义f(x)函数的Hesse矩阵函数function G=genGG(x)n=length(x);c=100;G1=zeros(n,1);G1(1)=4*c*(3*x(1)^2-x(2))+2;G1(n)=2*c;fori=2:n-1 G1(i)=2*c+4*c*(3*x(i)^2-x(i+1))+2;endG2=zeros(n-1,1);fori=1:n-1 G2(i)=-4*c*x(i);endGG2=zeros(n,n);GG3=GG2;GG2(1:n-1,2:n)=diag(G2);GG3(2:n,1:n-1)=diag(G2);G=diag(G1)+GG2+GG3;(4)广义f(x)函数的基本牛顿法函数function [x,y,k]=genjibenniudunfa(xk)eps=10^(-6);k=0;% gk=geng(xk);while norm(geng(xk))epsGk=genGG(xk);dk=-genGG(xk)\geng(xk);xk=xk+dk; k=
原创力文档


文档评论(0)