实用最优化方法Matlab程序设计.docxVIP

  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文档。上传文档
查看更多
实用最优化方法 Matlab 程序设计 程序如下: function lambda = nonexact(x0,s0) g0 = grad(x0); f0=f(x0); a=0; c1=0.1; c2=0.5; lambdak=1; sk=s0; d=-c1*lambdak*g0*sk; xk=x0 + lambdak*sk; f1=f(xk); e=f0-f1; while de lambdak=(lambdak+a)/2; xk=x0 + lambdak*sk; fk=f(xk); e=f0-fk; d=-c1*lambdak*g0*sk; end lambdak function g=grad(x) g=zeros(2,1); g(1)=-4*x(1)*(x(2)-x(1)^2)-2*(1-x(1)); g(2)=2*(x(2)-x(1)^2); function fa=f(x) fa=(x(2)-x(1)^2)^2+(1-x(1))^2; 在命令窗口中输入 x0=[0;1]; s0=[-1;1];nonexact(x0,s0) 输出结果为: 程序如下: function x_star = cong(x0,eps) g0 = grad(x0); res0 = norm(g0); resk=res0; k = 0; xk =x0; while reskeps k=k+1; if k==1 sk=-grad(xk); else end  sk=-grad(xk)+resk^2/res0^2*s0; lambdak=step(xk,sk); x0=xk; xk=x0 + lambdak*sk; res0=resk; resk=norm(grad(xk)); s0=sk; fprintf(------the%d-th iteration, the residual is %f, the lambdak is %f\n\n, k ,resk,lambdak); end x_star=xk; disp(the optimal solution is); x_star %sub functions function g=grad(x) g=zeros(4,1); g(1)=2*x(1)-2*x(2)+2; g(2)=4*x(2)-2*x(1)-x(3)+3; g(3)=2*x(3)-x(2)-1; g(4)=2*x(4); function lambda=step(x,s) a=2*x(1)*s(1)-2*x(2)*s(1)-2*x(1)*s(2)+4*x(2)*s(2)+2*s(3)*x(3)+2*x(4)*s(4)-s(2)*x (3)-s(3)*x(2)+2*s(1)+3*s(2)-s(3); b=2*s(1)^2+4*s(2)^2-4*s(1)*s(2)+2*s(3)^2+2*s(4)^2-2*s(2)*s(3); lambda=-a/b; 在命令窗口中输入 x0=[0;0;0;0];eps=1e-6;cong(x0,eps) 输出结果为 - 当Hk = I2 时 程序如下: function x_star = dfph(x0,eps) g0 = grad(x0); res0 = norm(g0); res=res0; k = 0; xk =x0; while reseps k=k+1; H=eye(length(x0)); sk=-H*grad(xk); lambdak = nonexact(xk,sk); x0=xk; xk=x0 + lambdak*sk; res=norm(grad(xk)); fprintf(------the%d-th iteration, the residual is %f, the lambdak is %f\n\n, k ,res,lambdak); end x_star=xk; disp(the optimal solution is); x_star function lambda = nonexact(x0,s0) g0 = grad(x0); f0=f(x0); a=0; c1=0.1; c2=0.5; lambdak=1; d=-c1*lambdak*g0*s0; xk=x0 + lambdak*s0; f1=f(xk); e=f0-f1; while de lambdak=(lambdak+a)/2; xk=x0 + lambdak*s0; fk=f(xk); e=f0-fk; d=-c1*lambdak*g0*s0; end lambda=lambdak; function g=grad(x) g=zeros(2,1); g(1

文档评论(0)

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

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

1亿VIP精品文档

相关文档