最优化方法Armijo非精确搜索DFP_第1页
最优化方法Armijo非精确搜索DFP_第2页
最优化方法Armijo非精确搜索DFP_第3页
最优化方法Armijo非精确搜索DFP_第4页
最优化方法Armijo非精确搜索DFP_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数学与计算科学学院实 验 报 告实验项目名称 Armijo非精确搜索+DFP 所属课程名称 最优化方法 实 验 类 型 算法编程 实 验 日 期 班 级 学 号 姓 名 成 绩 一、实验概述:【实验目的】(1) 掌握Matlab数值计算的基本方法;(2) 掌握DFP算法;(3) 在Armijo非精确搜索下使用DFP算法并进行MATLAB编程实现;(4) 进行数值实验并对数值结果进行分析。【实验原理】Armijo条件是一种一维搜索的停止条件。不精确的一维搜索条件规定ak首先应该保证使目标函数充分减小,这个条件使用以下不等式描述: 其中的常数。也就是说,目标函数f的下降要与步长和下降方向成一定的比

2、例。是一个很小的值。DFP算法又称为变尺度法。其公式为: DEP算法的计算步骤如下:1.给定初始点,允许误差;2.置(单位矩阵),计算出在处的梯度,置。3.令;4.从出发,沿方向搜索,求步长,使其满足令;5.检验是否满足收敛准则,若,则停止迭代,得到点;否则,进行步骤6;6.若,则令,返回步骤2;否则,进行步骤7;7.令,利用DFP公式计算,置,返回步骤3.【实验环境】Microsoft Windows 7Matlab二、实验内容:【实验方案】1.选定题目,解的极小点,取初始点。2.在Armijo非精确线性搜索下,使用DFP算法,利用Matlab编写程序解决问题。3.运行程序并调拭,得出结果。

3、4.分析结果。【实验过程】(实验步骤、记录、数据、分析)1.编写出Armijo非精确线性搜索的主程序:clc;clear;Function mk = armijo(fun,xk,rho,sigma,gk)assert(rho>0&&rho<1);assert(sigma>0&&sigma<0.5);mk=0;max_mk=100;while mk<=max_mk x=xk-rhomk*gk; if feval(fun,x)<=feval(fun,xk)-sigma*rhomk*norm(gk)2 break; end mk=m

4、k+1;endreturn;2.编写出使用拟牛顿法中的DFP算法来求解的Matlab程序(详细程序见附录源程序)。3.运行程序,得出结果如图所示:从上述运行结果可以得出:最优解为x=1.0000,最小值约为f=0。【实验结论】(结果)拟牛顿法是无约束最优化方法中的最有效的一类算法。使用拟牛顿法中的DFP算法,不需要计算Hesse矩阵。当时,算法产生的方向均为下降方向,具有二次终止性,且对于数据的存储量相对较大。【实验小结】(收获体会)通过这个实验,我对于拟牛顿法的了解更深更加透彻,我们学习的算法使用编程语言实现时,仍然会有很多问题无法独立解决,求助了组员和同学们,自己还要多学习Matlab编程

5、,这样在解决问题时才能更得心应手。三、指导教师评语及成绩:评 语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确. 成 绩: 指导教师签名: 批阅日期:附录1:源 程 序clc;clear;syms x1,x2;f=(x1-1)2+5*(x2-x12)2;v=x1,x2;df=jacobian(f,v);df=df'x0=2,0'g1=subs(df,x1,x2,x0(1,1),x0(2,1);k=0;H0=1,0;0,1;while(norm(g1)>

6、;0.001&k<300) if k=0 p=H0*g1; else vk=sk/(sk'*yk)-(H0*yk)/(yk'*H0*yk); w1=(yk'*H0*yk)*vk*vk' H1=H0-(H0*yk*yk'*H0)/(yk'*H0*yk)+(sk*sk')/(sk'*yk)+w1; p=H1*g1; H0=H1; end x00=x0; result=Usearch1(f,x1,x2,df,x0,p); arf=result(1); x0=x0+arf*p; g0=g1; g1=subs(df,x1,x2

7、,x0(1,1),x0(2,1); p0=p; yk=g1-g0;sk=x0-x00; k=k+1;end Function result=Usearch1(f,x1,x2,df,x0,p)mu=0.001;sgma=0.99;a=0;b=inf;arf=1;pk=p;x3=x0;x4=x3+arf*pk;f1=subs(f,x1,x2,x3(1,1),x3(2,1);f2=subs(f,x1,x2,x4(1,1),x4(2,1);gk1=subs(df,x1,x2,x3(1,1),x3(2,1);gk1=subs(df,x1,x2,x4(1,1),x4(2,1);while(f1-f2<

8、;=-mu*arf*gk1'*pk) b=arf;arf=(a+arf)/2;x4=x3+arf*pk; f2=subs(f,x1,x2,x4(1,1),x4(2,1); gk2=subs(df,x1,x2,x4(1,1),x4(2,1);endwhile(1>0) if(gk2'*pk<sgma*gk1'*pk) a=arf;a=min(2*arf,(a+b)/2);x4=x3+arf*pk; f2=subs(f,x1,x2,x4(1,1),x4(2,1); gk2=subs(df,x1,x2,x4(1,1),x4(2,1); while(f1-f2<

9、;=-mu*arf*gk1'*pk) b=arf;arf=(a+arf)/2;x4=x3+arf*pk; f2=subs(f,x1,x2,x4(1,1),x4(2,1); gk2=subs(df,x1,x2,x4(1,1),x4(2,1); end else break; endendresult=arf;附录2:实验报告填写说明 1实验项目名称:要求与实验教学大纲一致。2实验目的:目的要明确,要抓住重点,符合实验教学大纲要求。3实验原理:简要说明本实验项目所涉及的理论知识。4实验环境:实验用的软、硬件环境。5实验方案(思路、步骤和方法等):这是实验报告极其重要的内容。概括整个实验过程。对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。对于创新性实验,还应注明其创新点、特

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论