优化设计实验实用技术.docVIP

  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文档。上传文档
查看更多
第 4 章 一维搜索方法 2. 进退法的MATLAB程序 该程序是按照寻找最佳步长编写的,其数学模型为式(4-2)。 程序说明如下: 函数opt_range_serach(xk0,dir0,th)中输入参数; xk0:初始点; dir0:给定的搜索方向; th:步长增量。 %opt_range_serach1.m function [opt_step,fo,xx] = opt_range_serach1(f,xk0,dir0,th) %用进退法搜索三个点,使中点函数值最小;输出步长,函数值,设计变量值 %xk0:初始点 %th:步长 t1=0;t2=th; xk1=xk0;xk2=xk1+t2*dir0; x0=xk1; f1=feval(f,x0); x0=xk2; f2=feval(f,x0); if f2f1 t3=t2+th; xk3=xk1+t3*dir0; x0=xk3; f3=feval(f,x0); else th=-2*th;t3=t1;f3=f1;t1=t2;f1=f2;t2=t3;f2=f3; t3=th; xk3=xk1+t3*dir0; x0=xk3; f3=feval(f,x0); end ii=0; while f2f3 t1=t2;f1=f2;t2=t3;f2=f3; t3=t2+th; xk3=xk1+t3*dir0; x0=xk3; f3=feval(f,x0); end xx1=xk1+t1*dir0; xx2=xk1+t2*dir0; xx3=xk1+t3*dir0; if th0 opt_step=[t3 t2 t1]; xx=[xx3 xx2 xx1]; fo=[f3 f2 f1]; else opt_step=[t1 t2 t3]; xx=[xx1 xx2 xx3]; fo=[f1 f2 f3]; end end 【例4-1】用进退法计算函数 的单峰区间,初始点。 解:用户程序如下: %range_search_test1 clc; f=inline(2+x^2,x); xk0=2;th=0.5;dir0=1; [opt_step,fo,xx] = opt_range_serach1(f,xk0,dir0,th) opt_step = 结果为: opt_step=[-3 -2 -1] xo=[-1 0 1] fo=[3 2 3] 1. 黄金分割法的计算框图 图黄金分割法的计算图中为给定的任意小的精度为次数2. MATLAB程序%golden_search function [xo,fo] =golden_search(f,a,b,r,TolX,TolFun,k) kk=1; while kk0 h = b - a; rh = r*h; c = b - rh; d = a + rh; fc = feval(f,c); fd = feval(f,d); if k = 0 || abs(h) TolX abs(fc - fd) TolFun if fc = fd xo = c;fo = fc; kk=0; else xo = d;fo = fd; kk=0; end if k == 0;fprintf(达到计算次数);kk=0; end else if fc fd b=d;k=k-1; else a=c;k=k-1; end end end 【例4-2】计算目标函数 在区间内的极小点。 解:用户程序如下: %golden_s_test1.m function golden_s_test1 clc; clear all; gs_fun = inline(2+x^2,x); a =-2; b = 2; r =(sqrt(5)-1)/2; TolX =1e-7; TolFun = 1e-7; MaxIter =50; [xo,fo]=fminbnd(gs_fun,a,b) [xo,fo] =golden_search(gs_fun,a,b,r,TolX,TolFun,MaxIter) 计算结果: xo= 1.4142e-0082; fo=2 第 5 章 无约束优化问题的导数解法 5.1.2 最速下降法的Matalb程序 根据最速下降法步骤,编制下面的Matalb程序。 % opt_grad.m function [xo,fo] = opt_grad(f,x0,TolX,TolFun,alpha0,MaxIter) x = x0; fx0 = feval(f,x0); fx = fx0; alpha = alpha0; km

文档评论(0)

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

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

1亿VIP精品文档

相关文档