最优化实验报告代码.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最优化实验报告代码

一维搜索进退法 ? function f=getvalue(t) f=t^3-2*t+1; ? function [a,b]=myfun(t,h,alpha) t0=t; k=0; fi0=getvalue(t0); for count=1:1:100 t1=t0+h; fi1=getvalue(t1); if(fi1fi0) h=alpha*h; t=t0; t0=t1; fi0=fi1; k=k+1; else if(k~=0) if(tt1) a=t1; b=t; else a=t; b=t1; end break; else h=-h; t=t1; end end end ? 结果: [a,b]=myfun(0,1,2) a=0,b=3 ? ? 黄金分割法 function [value,a,b]=myfun(m,n,alpha) tao=0.618; ephsilo=alpha; a=m; k=0; b=n; lamenda=a+(1-tao)*(b-a); miu=a+tao*(b-a); if(abs(lamenda-miu)ephsilo) value=(lamenda+miu)*0.5; else for count=1:1:100 if(getvalue(lamenda)getvalue(miu)) a=a; b=miu; miu=lamenda; lamenda=a+(1-tao)*(b-a); else a=lamenda; b=b; lamenda=miu; miu=a+tao*(b-a); end k=k+1; if(abs(b-a)ephsilo) value=(a+b)*0.5; break; end end end ? 结果: [value,a,b]=myfun(-3,5,0.3) value = -0.9736 a = -1.1114 b = -0.8358 ? 牛顿法 function f=getvalue(t) f=t^3-2*t+1; ? function dif1=diff1(t) dif1=3*t^2-2; ? function dif2=diff2(t) dif2=6*t; ? function [value,x]=myfun(t0,ephisilo) t=t0; while(abs(diff1(t))=ephisilo) t=t-diff1(t)/diff2(t); end x=t; value=getvalue(t); ? 结果 [value,x]=myfun(0.01,0.01) value =-0.0887 x =0.8165 ? ? function y1=fun(x) y1=(1-x(1))^2+2*(x(2)-x(1)^2)^2; ? function y2=gfun(x) y2(1,1)=2*x(1)-4*x(1)*x(2)+4*x(1)^3-2; y2(2,1)=2*x(2)-2*x(1)^2; ? function y3=Hess(x) y3(1,1)=12*x(1)^2-4*x(2)+2; y3(1,2)=-4*x(1); y3(2,1)=-4*x(1); y3(2,2)=2; 阻尼牛顿 ? function [x,val,k]=myfun(fun,gfun,Hess,x0) maxk=100; rho=0.55; sigma=0.4; k=0; epsilon=0.1; while(kmaxk) gk=feval(gfun,x0); Gk=feval(Hess,x0); dk=-Gk/gk; if(norm(gk)epsilon) break; end

文档评论(0)

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

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

1亿VIP精品文档

相关文档