最优化方法 powell法求解无约束优化问题.docVIP

最优化方法 powell法求解无约束优化问题.doc

  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文档。上传文档
查看更多
PAGE  PAGE 6 数学与计算科学学院 实 验 报 告 实验项目名称 powell法求解无约束优化问题 所属课程名称 最优化方法 实 验 类 型 算法编程 实 验 日 期 班 级 学 号 姓 名 成 绩 一、实验概述:【实验目的】 掌握Matlab数值计算的基本方法; 掌握powell法并利用powell法解课本第358页第五题,使用MATLAB编程实现; 调整参数并对数值结果进行分析。 【实验原理】 Powell方法是一种有效的直接搜索法,这种方法本质上是共轭方向法。 Powell方法把整个计算过程分成若干个阶段,每一阶段(一轮迭代)由n+1次一维搜索组成。在算法的每一阶段中,先依次沿着已知的n个方向搜索,得一个最好点,然后沿着本阶段的初点与该最好点连线方向进行搜索,求得这一阶段的最好点。再用最后的搜索方向取代前n个方向之一,开始下一阶段的迭代。 具体计算步骤如下: 1.给定初始点,n个线性无关的方向,允许误差,置; 2.置,从出发,依次沿方向进行搜索,得到点,再从出发,沿着方向作一维搜索,得到点; 3.若,则停止计算,得点;否则,令,置,返回步骤2. 改进的powell法与原来的方法主要区别在于替换方向的规则不同。 【实验环境】 Microsoft Windows 7 Matlab 二、实验内容:【实验方案】 1.选定题目,解的极小点,取初始点。 2.使用改进的powell算法解决问题,利用Matlab编写程序解决问题。 3.运行程序并调拭,得出结果。 4.分析结果。 【实验过程】(实验步骤、记录、数据、分析) 1. 编写出powell法解无约束优化问题的主程序: clc; clear; Function[a,b]=section(x1,x2,d1,d2) x11=x1;x22=x2; d11=d1;d22=d2; h0=1; h=h0;alphal=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=alphal;b=alpha3; else a=alpha1;b=alpha3; end clc; clear; Function mk = armijo(fun,xk,rho,sigma,gk) assert(rho0rho1); assert(sigma0sigma0.5); mk=0;max_mk=100; while mk=max_mk x=xk-rho^mk*gk; if feval(fun,x)=feval(fun,xk)-sigma*rho^mk*norm(gk)^2 break; end mk=mk+1; end return; 2.编写出使用改进的powell法来求解问题的Matlab程序(详细程序见附录源程序)。 3.运行程序,得出结果如图所示: 从上述运行结果可以得出,最优解为,最优值为。 【实验结论】(结果) 改进的powell法,当初始搜索方向线性无关时,能够保证每轮迭代中以搜索方向为列的行列式不为零,因此这些方向是线性无关的。而且随着迭代的延续,搜索方向接近共轭的程度逐渐增加。 虽然改进的powell法,不再具有二次终止性,但是,它的计算效果依然非常好。【实验小结】(收获体会) 通过本次实验,了解了powell法与改进后的powell法的区别,对于无约束最优化方法了解更深。经过多次Matlab编程,使得我更加熟悉Matlab编程语言。 三、指导教师评语及成绩:

文档评论(0)

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

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

1亿VIP精品文档

相关文档