数值最优化实验一4页_第1页
数值最优化实验一4页_第2页
数值最优化实验一4页_第3页
数值最优化实验一4页_第4页
全文预览已结束

下载本文档

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

文档简介

1、实验一一、实验目的: 掌握Armijo线性搜索法的思想方法及程序编写。二、 实验要求: 给出Armijo类线性搜索法的Matlab程序,输出变量应包括算法是否确定满足条件的步长,步长,所需的函数值计算次数,梯度值计算次数,内迭代次数等三、 实验内容编写Armijo非精确线性搜索的Matlab程序,并分别求出下面问题的满足Armijo搜索的步长。方向采用最速下降方向 1、Armijio非精确线性搜索的Matlab程序(牛顿修正法)badsc.m文件,如下代码functionf,df,d=badsc(n,m,x)fvec=zeros(m,1);J=zeros(m,n); fvec=x(1)-106

2、;x(2)-2*10(-6);x(1)*x(2)-2;J=1 0;0 1;x(2) x(1);f=fvec'*fvec;df=2*J'*fvec;hessian=2+2*x(2)2,4*x(1)*x(2)-4;4*x(1)*x(2)-4,2+2*x(1)2;d=-inv(hessian)*df; 2、在MATLAB命令窗口中输入以下代码: x=1;1;n=2;m=3;k=0;%记录迭代次数w=0.9;p=0.5;a=1;%初始步长f,df,d = badsc(n,m,x);t=d;y=f;temp=w*df'*t;xtemp=x+a*t;f1,df1,d = badsc

3、(n,m,xtemp);if f1<=y+a*temp a=a; k=k+1;else a=w; f1<=y+a*temp; k=k+1;end while f1>y+a*temp; a=a*p; xtemp=x+a*t; f1,df1,d = badsc(n,m,xtemp); k=k+1;endh=astep=k 程序2:function flag,h,grad,stepsize=armijo(n,m,x,b)% flag 标记作用,h表示最终的步长,grad表示梯度,stepsize表示迭代次数% xn=xc+a*d xc已知,a已知,d已知,b已知% fn<=f

4、x+a*sigma*gc'*d-armijo型线性收缩公式(2.6)% d是下降方向,b是一个给定的常数且b>0% flag=0: satisfactory xn found;% flog=1: routine failed to locate satisfactory xn sufficiently distinctflag=1;stepsize=0;sigma=10(-4);%0<sigma<1a=1;fvec,J,grad,hessian,fc,d=badscb(n,m,x);slope=grad'*d;xc=x'while flag=1 xn=xc+a*d; fvec,J,grad,hessian,fn,d=badscb(n,m,x); if fn<=fc+a*sigma*slope flag=0; else a=b*a;xc=xn;fc=fn; stepsize=stepsize+1;%表示迭代一次 slope=grad'*d; endendh=a;%满足结果的步长四、 实验结果x = 1 1h = 0.1125step = 4五、讨论:在上面的Armijo型线性搜索中,试探步按比例b缩小让其逐渐逼近所需的合适步长。1 若b(b=)在(0,1)较大,则相邻两次试探步的改变相对较

温馨提示

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

评论

0/150

提交评论