用Powell法优化设计程序及一维搜索黄金分割法组合.docVIP

用Powell法优化设计程序及一维搜索黄金分割法组合.doc

  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文档。上传文档
查看更多
用Powell法优化设计程序及一维搜索黄金分割法组合

用Powell法优化设计程序与一维搜索黄金分割法组合 编程求解函数 ε=0.001。 解:已知,初始点x0=[1,1]T,迭代精度ε=0.001。 在该优化设计过程中,黄金分割搜索法作为POWELL算法主程序中的一部分。在POWELL算法运行过程中会多次调用黄金分割搜索算法程序。这样可以缩短优化设计计算时间。 1. MATLAB源程序代码 1.1 关于α的目标函数源代码 function m = y(x1,x2,d1,d2,alpha)%建立关于α的一元函数y(α) m = (x1+alpha*d1)^2+2*(x2+alpha*d2)^2-4*(x1+alpha*d1)-2*(x1+alpha*d1)*(x2+alpha*d2); 1.2 一元函数最小值区间函数源代码 function [a,b] = section(x1,x2,d1,d2)%采用外推法求解一元函数的最小值区间 x11 = x1;x22 = x2;d11 = d1;d22 = d2;h0 = 1;h = h0; alpha1 = 0; y1 = y(x11,x22,d11,d22,alpha1); alpha2 = h; y2 = y (x11,x22,d11,d22,alpha2); t = 0; if y2y1 h = -h;alpha3 = alpha1;y3 = y1;t = 1; end while(1) if t == 1 alpha1 = alpha2;y1 = y2; alpha2 = alpha3;y2 = y3; else t = 1; end alpha3 = alpha2+h;y3 = y(x11,x22,d11,d22,alpha3); if y3y2 h = 2*h; else break; end end if alpha1alpha3 tem = alpha1;alpha1 = alpha3;alpha3 = tem; a = alpha1;b = alpha3; else a=alpha1;b = alpha3; end 1.3黄金分割搜索法函数源代码 function alpha = ALPHA(x1,x2,d1,d2,A,B)%利用黄金分割法求解关于α的函数y(α)的极小点α* x11 = x1;x22 = x2;d11 = d1;d22 = d2; a = A;b = B; ep = 0.001;r = 0.618; alpha1 = b-r*(b-a); y1 = y(x11,x22,d11,d22,alpha1); alpha2 = a+r*(b-a); y2 = y(x11,x22,d11,d22,alpha2); while(1) if y1=y2 a = alpha1;alpha1 = alpha2; y1 = y2; alpha2 = a+r*(b-a); y2 = y(x11,x22,d11,d22,alpha2); else b = alpha2;alpha2 = alpha1; y2 = y1; alpha1 = b-r*(b-a); y1 = y(x11,x22,d11,d22,alpha1); end if abs(b-a)ep abs(y2-y1)ep break; end end alpha = 0.5*(a+b); 1.4 POWELL算法程序源代码 function [z,fmin] = powell(f) %根据无约束优化方法POWELL算法,在二维空间中求解f(x1,x2)的最小值点,求解结果返回变量坐标(x1,x2)和极小值fmin k = 0;n = 2; x = [0;0;]; ff(1) = f(x(1),x(2)); ep = 0.001; d = [1;0;0;1]; while(1) x00 = [x(1);x(2);]; for i = 1:n [a(i),b(i)]=section(x(2*i-1),x(2*i),d(2*i-1),d(2*i)); alpha(i)=ALPHA(x(2*i-1),x(2*i),d(2*i-1),d(2*i),a(i),b(i)); x(2*i+1)=x(2*i-1)+alpha(i)*d(2*i-1);

文档评论(0)

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

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

1亿VIP精品文档

相关文档