无约束最优化问题的基本研究毕业论文(29页).doc

上传人:1595****071 文档编号:38589393 上传时间:2022-09-04 格式:DOC 页数:28 大小:1.79MB
返回 下载 相关 举报
无约束最优化问题的基本研究毕业论文(29页).doc_第1页
第1页 / 共28页
无约束最优化问题的基本研究毕业论文(29页).doc_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《无约束最优化问题的基本研究毕业论文(29页).doc》由会员分享,可在线阅读,更多相关《无约束最优化问题的基本研究毕业论文(29页).doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-无约束最优化问题的基本研究毕业论文-第 - 26 - 页关于无约束最优化问题求解的基本研究摘要无约束最优化计算方法是数值计算领域中十分活跃的研究课题之一,快速的求解无约束最优化问题,除了自身的重要性以外,还体现在它也构成一些约束最优化问题的子问题.因此,对于无约束最优化问题,如何快速有效的求解一直是优化工作者十分关心的事.论文研究求解无约束最优化问题的几种主要的导数法,并且讨论了这些方法的优缺点以及每种方法的适用范围.同事论文分别对每种方法给出了具体实例,并对例子进行了matlab软件实现关键词:无约束最优化; 导数法 ;极值 ; 精确度 AbstractUnconstrained opti

2、mization numerical calculation method is very active in the field of research, one of the most rapidly solving unconstrained optimization problems, in addition to its importance, is also reflected in some of the constraints that it also constitutes a sub-problem of optimization problems. Therefore,

3、for unconstrained optimization problems, how fast and effective solution has been optimized workers very concerned about. Thesis for solving unconstrained optimization problems several major derivative method, and discusses the advantages and disadvantages of these methods as well as the scope of ap

4、plication of each method. Colleagues papers for each method were specific examples are given, and examples of the matlab softwareKeyword:Unconstrained optimization Derivative method Extremum AccuracyAlpha目录摘要- 1 -ABSTRACT- 2 -第一章 绪论- 4 -1.1研究背景与意义- 4 -1.2问题阐述及简介- 4 -第二章 无约束问题的极值条件- 6 -2.1. 无约束极值问题-

5、6 -2.2 必要条件- 6 -2.3 二阶充分条件- 8 -2.4 充要条件- 8 -第三章 求解无约束最优化的几种主要方法- 10 -3.1最速下降法- 10 -3.2 牛顿法- 15 -3.3 修正牛顿法- 19 -3.4 共轭梯度法- 23 -3.5 变尺度法- 26 -结束语- 37 -参考文献- 38 -致谢- 39 -第一章 绪论1.1研究背景与意义追求最优化目标是人类共同的理想,最优化就是从众多可能方案中选出最佳方案,以达到最优目标.最优化理论和算法是在第二次世界大战后迅速发展起来的一门新兴的应用数学分支,它是一门应用性很强的年轻学科.虽然最优化可以追朔到很古老的极值问题,但是

6、直到1947年Dantzig提出一般线性规划问题的单纯形法之后,它才成为一门独立的学科.近三、四十年来随着现代科技的发展和电子计算机的广泛应用,进一步推动了最优化的迅猛发展及其理论和算法的研究.现在最优化理论已广泛应用与生产、管理、军事国防、政府决策、交通运输、经济规划等方面.无约束最优化计算方法不仅本身有着不少实际应用,而且与约束最优化计算方法有着紧密的联系:一方面有些处理无约束最优化问题的方法能直接推广应用于约束最优化问题;另一方面,还可以把一些约束最优化问题转化为无约束最优化问题来处理.因此从这个意义上讲,无约束最优化计算方法也是处理约束最优化问题的基本方法.研究求解无约束最优化问题的有

7、关理论和算法,在近几十年来迅速发展并且日趋成熟.随着计算机的发展和普遍应用,作为一种有效的最优化方法无约束最优化方法在工程设计、管理优化、系统分析等方面的应用日益开拓,愈来愈受到应用部门的重视,所以研究无约束最优化问题的计算方法是意义重大的1.2问题阐述及简介 无约束法指寻求 元实函数在整个维向量空间上的最优值点的方法.这类方法的意义在于:虽然实用规划问题大多是有约束的,但许多约束最优化方法可将有约束问题转化为若干无约束问题来求解. 无约束最优化方法大多是逐次一维搜索的迭代算法.这类迭代算法可分为两类.一类不涉及导数,只用到函数值,称为直接法.另一类需要用目标函数的导函数,称为解析法.这些迭代

8、算法的基本思想是:在一个近似点处选定一个有利搜索方向,沿这个方向进行一维寻查,得出新的近似点.然后对新点施行同样手续,如此反复迭代,直到满足预定的精度要求为止.根据搜索方向的取法不同,可以有各种算法.属于直接型的算法有交替方向法(又称坐标轮换法)、模式搜索法、旋转方向法、鲍威尔共轭方向法和单纯形加速法等.属于解析型的算法有:梯度法:又称最速下降法.这是早期的解析法,收敛速度较慢.牛顿法:收敛速度快,但不稳定,计算也较困难.共轭梯度法:收敛较快,效果较好.变尺度法:这是一类效率较高的方法.其中达维登-弗莱彻-鲍威尔变尺度法,简称 DFP法,是最常用的方法.本文主要研究无约束最优化问题中主要的几种

9、解析法的算法理论,并对各个方法进行了举例分析和matlab软件实现.第二章 无约束问题的极值条件2.1. 无约束极值问题考虑非线性规划问题 (2.1)其中是定义在上的实函数,这个问题是求在维欧式空间的极小点,称为无约束极值问题,这是一个古典的极值问题.2.2 必要条件为研究函数的极值条件,先介绍一个定理定理2.1 设函数 在点可微,如果存在方向,使,则存在,使得对每个,有.证明 函数在的一阶Taylor展开式为 (2.2)其中当时,.由于,当充分小时,在(1.3.2)式中因此存在,使得时,有从而由(2.2)式得出利用上述定理可以证明局部极小点的一阶必要条件.定理2.2 设函数在点可微,若时局部

10、最小点,则梯度证明 用反证法,设,令方向,则有根据定理2.1,必存在,使得当时,成立这与是局部极小点矛盾下面,利用函数的Hesse矩阵,给出局部极小点的二阶必要条件定理2.3 设函数在点处二次可微,若是局部极小点,则梯度,并且Hesse矩阵半正定证明 定理1.3.2已经证明,现在只需证明Hesse矩阵半正定.设是任意一个维向量,由于在处二次可微,且,则有经移项整理,得到 (2.3)由于是局部极小点,当充分小时,必有因此由(2.3)式推得即是半正定的.2.3 二阶充分条件 下面给出局部极小点的二阶充分条件 定理2.4 设函数在点处可微,若梯度,且Hesse矩阵正定,则是局部极小点.证明 由于在的

11、二阶Taylor展开式为 (2.4)设的最小特征值为,由于正定,必有从而由(1.3.4)式得出当时,因此存在的邻域,当时,即是的局部极小点2.4 充要条件前面的几个定理分别给出无约束极值的必要条件和充分条件,这些条件都不是充分必要条件,而且利用这些条件只能研究局部极小点.下面在函数凸性的假设下,给出全局极小点的充分必要条件定理2.5 设是定义在上的可微凸函数,则为全局极小点的充分必要条件是梯度证明 必要性是显然的,若是全局极小点,自然是局部极小点,根据定理1.3.2,必有. 现在证明充分性,设,则对任意的,有,由于是可微的凸函数,则有即是全局极小点 在上述定理中,如果是严格凸函数,则全局极小值

12、是唯一的 上面介绍的几个极值条件,是针对极小化问题给出的,对于极大化问题,可以给出类似的定理例2.1 利用极值条件解下列问题先求驻点.由于令,即解此方程组,得到驻点再利用极值条件判断是否为极小点,由于目标函数的Hesse矩阵由此可知显然为正定矩阵,根据定理1.3.4,驻点是局部最小点第三章 求解无约束最优化的几种主要方法3.1最速下降法 最速下降法又称为梯度法,是1847 年由著名数学家Cauchy 给出的,它是解析法中最古老的一种,其他解析方法或是它的变形,或是受它的启发而得到的,因此它是最优化方法的基础.作为一种基本的算法,他在最优化方法中占有重要地位.3.1.1最速下降法的算法原理最速下

13、降法的搜索法向是目标函数的负梯度方向,最速下降法从目标函数的负梯度方向一直前进,直到到达目标函数的最低点.已知目标函数在点的梯度为:当求目标函数的最小点时,由于函数沿负梯度方向下降最快,故在点的探索方向应取该点的负梯度方向,即显然,为单位向量.这样第次迭代计算所得的新点为负梯度仅给出了最优化方向,而没有给出步长的大小,所以可能有各种各样的最速下降的过程,它们依赖于的大小.3.1.2步长的两种取法:一种方法是任意给定一个初始步长,使满足条件:另外一种方法是沿负梯度方向做一维探索,以求解一维最优化问题的最优步长,即对目标函数极小,以得到最优步长:以此最优步长作为由点出发沿该点的负梯度方向探索的步长

14、.这种方法的迭代计算的收敛性,可用以下三式中的任一式或二式作为准则来进行判断:3.1.3 最速下降法算法步骤用最速下降法求无约束多维极值问题的算法步骤如下:(1) 取初始点,精度,令(2) 计算搜索方向,其中表示函数在点处的梯度;(3) 若,则停止计算;否则,从出发,沿进行一维搜索,即求,使得.此处的一维搜索可以用黄金分割法等算法(4) 令,转步骤(2). 例3.1 试用最速下降法求目标函数的极小值,设初始点 ;收敛要求.解:原函数的梯度,在点的梯度为.梯度的模为梯度的负方向为令,求出,算得梯度的模为根据收敛准则,故未达到要求,应继续探索.下一步探索放向为,得到未达到收敛要求,所以还应继续探索

15、,下一步探索方向为得到:继续探索,当探索到点时,达到预定的收敛要求,因而可认为为最优点,而为极小值.3.1.4 最速下降法的matlab实现首先建立M文件:function x,val,k=grad(fun,gfun,x0)%功能:用最速下降法求解无约束问题: minf(x)%输入:x0是初始点,fun,gfun分别是目标函数和梯度%输出:x,val分别是近似最优点和最优值,k是迭代次数.maxk=5000; %最大迭代次数rho=0.5; sigma=0.4;k=0; eps=1e-7;while(kmaxk) g=feval(gfun,x0);%计算梯度 d=-g; %计算搜索方向 if(

16、norm(d)eps),break;end m=0;mk=0; while(m20) %Armijo搜索 if(feval(fun,x0+rhom*d)feval(fun,x0)+sigma*rhom*g*d) mk=m;break; end m=m+1; end x0=x0+rhomk*d; k=k+1;endx=x0;val=feval(fun,x0);然后建立fun,gfun的m文件function f=fun(x)f=x(1)2+4*x(2)2;function g=gfun(x)g=2*x(1),8*x(2);求解结果为 x = 0 0val = 0k = 23.1.5最速下降法的锯

17、齿现象 最速下降法对初始点的选择要求不高,每一轮迭代工作量较少,它可以很快的从初始点达到极小点附近.但在接近极小点时,最速下降法却会出现锯齿现象,收敛速度很慢,因为对一般二元函数,在极小点附近可用极小点的二阶泰勒多项式来近似,而后者为凸函数时,他的等值线是一族共心椭圆,特别是当椭圆比较扁平时,最速下降法的收敛速度越慢. 至于最速下降法出现锯齿现象的原因,可以作如下粗略解释:由在的泰勒展式:为了出从出发沿方向的极小点,令则有即方向与方向正交.这表明迭代产生的点列所循路径是“之”字行的.当接近极小点时,每次迭代移动的步长很小,这样就呈现出锯齿现象,影响了收敛速度.因此常常将梯度法与其他方法结合起来

18、使用.3.1.6 最速下降法的说明最速下降法的优点是算法简单,每次迭代计算量小,占用内存量小,即使从一个不好的初始点出发,往往也能收敛到局部极小点.但它有一个严重缺点就是收敛速度慢.沿负梯度方向函数下降很快的说法,容易使人们产生一种错觉,认为这一定是最理想的搜索方向,沿该方向搜索时收敛速度应该很快,然而事实证明,梯度法的收敛速度并不快.特别对等值线(面)有狭长深谷形状的函数,收敛速度更慢.其原因是由于每次迭代后下一次搜索方向总是与前一次搜索方向相互垂直,如此继续下去就产生所谓的锯齿现象.即从直观上看,在远离极小点的地方每次迭代可能使目标函数有较大的下降,但是在接近极小点的地方,由于锯齿现象,从

19、而导致每次迭代行进距离缩短,因而收敛速度不快.3.2 牛顿法3.2.1 牛顿法算法思想与原理如前面所提到的,最速下降法在最初几步迭代中函数值下降很快外,总的说来下降的并不快,且愈接近极值点下降的愈慢.因此,应寻找使目标函数下降更快的方法.牛顿法就是一种收敛很快的方法,其基本思路是利用二次曲线来逐点近似原目标函数,以二次曲线的极小值点来近似原目标函数的极小值点并逐渐逼近改点.一维目标函数 在点逼近用的二次曲线(即泰勒二次多项式)为此二次函数的极小点可由求得.对于维问题,为目标函数在点逼近用的二次曲线为:令式中的,则上式可改写为:当时可求得二次曲线的极值点,且当且仅当改点处的矩阵为正定时有极小值点

20、.由上式得:令,则若为可逆矩阵,将上式等号两边左乘,则得 整理后得当目标函数是二次函数时,牛顿法变得极为简单、有效,这时是一个常数矩阵,式变成精确表达式,而利用式作一次迭代计算所得的就是最优点.在一般情况下不一定是二次函数,则不能一步就能求出极小值,即极小值点不在方向上,但由于在点附近函数与是近似的,所以这个方向可以作为近似方向,可以用式求出点作为一个逼近点.这时式可改成牛顿法的一般迭代公式:式中称为牛顿方向,通过这种迭代,逐次向极小值点逼近.牛顿法是基于多元函数的泰勒展开而来的,它将作为探索方向,因此它的迭代公式可直接写出来:3.2.2牛顿法算法步骤(1) 给定初始点,及精度,令;(2) 若

21、,停止,极小点为,否则转步骤(3);(3) 计算,令;(4) 令,转步骤(2).例3.2 试用牛顿法求目标函数的极小点.解:取,则即为最小点 3.2.3 牛顿法的matlab实现首先建立M文件newton.mfunction x,fval,iterations=newton(fun,x0,tol)%这是一个用Newton法求解无约束优化问题的matlab程序%第一个参数fun是一个包含函数,梯度,hessian矩阵的M文件%比如:% function f,grad,hessian=fun_grad_hess(x)% f=x(1)3+(x(2)-1)2;% grad=3*x(1)2;2*x(2)

22、-2;% hessian=6*x(1) 0;0 2;% end%调用上面函数格式为:x,.=newton_armijo(fun_grad_hess,.)%第二个参数x0是迭代的初始点(列向量)%第三个参数tol是求的结果的精度if nargin=2 tol=1e-6;elseif nargin=tol p=-inv(H)*grad; x=x+p; fval,grad,H=fun(x); count=count+1;endif nargout=3 iterations=count;end然后编写待求函数和梯度,hessian矩阵组成的M文件fun_grad_hess1.m如下:function

23、f,grad,hessian=fun_grad_hess1(x)f=x(1)2+x(2)2-x(1)*x(2)-10*x(1)-4*x(2)+60;grad=2*x(1)-x(2)-10;2*x(2)-x(1)-4;hessian=2 -1;-1 2;end最后在工作窗口调用函数newton.m如下:x,fval,lamla=newton(fun_grad_hess1,0;0,1e-6)所得结果如下:x = 8.0000 6.0000fval = 8.0000lamla = 13.2.4牛顿法的说明从上例看到,用Newton法求解,只经一轮迭代就得到最优解.这并不偶然,由Newton方向的构造

24、知,对于正定二次函数,Newton方向就是指向其极小点的方向.因此,用Newton法解目标函数为正定二次函数的无约束最优化问题,只需一次迭代即可得到最优解.对于目标函数不是二次函数的无约束最优化问题,一般地说,用Newton法通过有限轮迭代并不能保证可求得最优解.但因目标函数在最优解附近近似于二次函数,因此当先取接近于最优解的初始点用Newton法求解时,其收敛速度一般是快的.可证在初始点离最优解不远的条件下,Newton法是二次收敛的.但初始点远离最优解时,此法并不一定收敛Newton法具有二次收敛的优点,但它存在下面四个严重的缺点: 虽每次迭代不会使目标函数f(X)上升,但不能保证 f(X

25、)下降.当Hesse矩阵非正定时,Newton法的搜索将会失败. 对初始点要求严格.一般要求比较接近或有利于接近极值点,而这在实际计算中是比较难办的. 因搜索方向要求Hesse矩阵的逆,在某迭代时可能求不出此方向.若目标函数Hesse矩阵为奇异,则不有构成牛顿方向,无法迭代牛顿方向构造困难,计算相当复杂,除了求梯度以外还需计算Hesse矩阵及其逆矩阵,占用机器内存相当大.3.3 修正牛顿法3.3.1 修正牛顿法的基本原理为了克服Newton法的缺点,人们保留选取Newton方向作为搜索方向,摒弃其步长恒取1,而用一维搜索确定最优步长,由此产生的算法称为修正Newton法.3.3.2 修正牛顿法

26、的迭代步骤(1) 给定初始点,及精度,令;(2) 若,停止,极小点为,否则转步骤(3);(3) 计算,令;(4) 用一维搜索法求,使得,令,转步骤(2).例3.3 用修正牛顿法求解下列问题: 初始点 , . 解 计算及 .故有因而牛顿方向为从出发,沿牛顿方向 作一维搜索,令步长变量为,记最优步长为,则有故令 则有故计算:故有 ,停止计算,输出,即为极小点.3.3.3 修正你顿法的matlab实现首先建立m文件:function x,val,k=revisenm(fun,gfun,Hess,x0)%功能:用修正牛顿法求解无约束问题:minf(x)%输入:x0是初始点,fun,gfun,Hess分

27、别是求% 目标函数值,梯度,Hesse矩阵的函数%输出: x,val分别是近似最优点和最优值,k是迭代次数.n=length(x0);maxk=150;rho=0.55;sigma=0.4;tau=0.0;k=0; epsilion=1e-5;while(kmaxk) gk=feval(gfun,x0); %功能:计算梯度 muk=norm(gk)(1+tau); Gk=feval(Hess,x0); %功能:计算Hess矩阵 Ak=Gk+muk*eye(n); dk=-Akgk;%解方程组Gk*dk=-gk,计算搜索方向 if(norm(gk)epsilion),break;end %检验终

28、止准则 m=0;mk=0; while(m20) %用Armijo搜索步长 if(feval(fun,x0+rhom*dk)feval(fun,x0)+sigma*rhom*gk*dk) mk=m;break; End然后建立fun,gfun和Hess矩阵的m文件如下:function f=fun(x)f=x(1)-x(2)+2*x(1)2+2*x(1)*x(2)+x(2)2;function g=gfun(x)g=1+4*x(1)+2*x(2),-1+2*x(1)+2*x(2);function He=Hess(x)n=length(x);He=zeros(n,n);He=4,2;2,2;然

29、后在工作窗口输入:x0=0,0; x,val,k=revisenm(fun,gfun,Hess,x0)所得结果如下x = -1.0000 1.5000val = -1.2500k = 63.3.4 修正牛顿法的说明修正Newton法克服了Newton法的缺点.特别是,当迭代点接近于最优解时,此法具有收敛速度快的优点,对初始点的选择要求不严.但是,修正Newton法仍需要计算目标函数的Hesse矩阵和逆矩阵,所以求解的计算量和存贮量均很大.另外,当目标函数的Hesse矩阵在某点处出现奇异时,迭代将无法进行.因此修正Newton法仍有相当的局限性 3.4 共轭梯度法 首先介绍共轭方向的概念: 定义

30、3.4.1 设是维欧式空间中的两个向量,即,若有(即),就称与是两个正交的向量,又设是一个阶对称正定矩阵,若有,则称向量与关于共轭正交,简称关于共轭定义3.4.2 设一组非零向量,为阶对称正定阵,若下试成立:.称向量组关于共轭.也称它们为一组共轭方向(或称为的个共轭方向).共轭梯度法最早是由Hestenes和Stiefle(1952)提出来的,用于解正定系数矩阵的线性方程组,在这个基础上,Fletcher和Reeves (1964)首先提出了解非线性最优化问题的共轭梯度法.由于共轭梯度法不需要矩阵存储,且有较快的收敛速度和二次终止性等优点,现在共轭梯度法已经广泛地应用于实际问题中.共轭梯度法是

31、一个典型的共轭方向法,它的每一个搜索方向是互相共轭的,而这些搜索方向仅仅是负梯度方向与上一次迭代的搜索方向的组合,因此,存储量少,计算方便3.4.1 共轭梯度法的基本思想与原理其中为阶对称正定阵,是常数由上是正定二次函数,故有 .又设以迭代点沿搜索方向进行一维搜索时采用最佳一维搜索求步长因子,即进行多次迭代,检验若 ,则就是最优解.否则就继续进行迭代.3.4.2 共轭梯度法的迭代步骤已知目标函数,终止限 (1) 选取初始点,给定终止限(2) 求初始梯度.计算 ,若停止迭代输出; 否则转(3)(3) 构造初始搜索方向.取,令,转(4). (4) 进行一维搜索.求使得,令 ,转(5)(5) 求梯度

32、向量.计算,若,停止迭代输出;否则转 (6)(6) 检验迭代次数.若,令,转(3);否则转(7)(7) 构造共轭方向.取 ,令, 转(4)例: 用共轭梯度法求,其中解 令,则新的搜索方向有 下一迭代点由于 停止迭代输出所求得3.4.3 共轭梯度法的matlab实现首先建立如下m文件:function x,val,k=frcg(fun,gfun,x0)%功能:用共轭梯度法求解无约束问题:minf(x)%输入:x0是初始点,fun,gfun分别是目标函数和梯度%输出:x,val分别是近似最优点和最优值,k是迭代次数.maxk=5000; %最大迭代次数rho=0.6;sigma=0.4;k=0;

33、eps=1e-3;n=length(x0);while(k=0.0) d=-g; end end if(norm(g)eps),break;end %检验终止条件 m=0;mk=0; while(m20) %Armijo搜索 if(feval(fun,x0+rhom*d) x0=2,2; x,val,k=frcgfun,gfun,x03.4.4共轭梯度法的说明 实际上,可以把共轭梯度法看作是最速下降法的一种改进.当令时,就变为最速下降法.共轭梯度法由于不涉及矩阵,仅仅有向量运算,因而存储量小,适合于维数较高的优化问题.另外,共轭梯度法可以不要求精确的直线搜索.但是,不精确的直线搜索可能导致迭代

34、出来的向量不再共轭,从而降低方法的效能.克服的办法是,重设初始点,即把经过次迭代得到的作为初始点重新迭代.计算实践指出,用比用重作初始点要好.3.5 变尺度法变尺度法是在牛顿法的基础上发展起来的,它和梯度法亦有密切关系.变尺度法避免了Newton法在每次迭代都要计算目标函数的Hesse矩阵和它的逆矩阵而导致随问题的维数增加计算量迅速增加.3.5.1 变尺度法的基本原理在Newton法中,基本迭代公式其中,于是有 (1)其中是初始点,和分别是目标函数在点的梯度和Hesse矩阵.为了消除这个迭代公式中的Hesse逆矩阵,可用某种近似矩阵来替换它,即构造一个矩阵序列去逼近Hesse逆矩阵序列此时上式

35、变为事实上,式中无非是确定了第次迭代的搜索方向,为了取得更大的灵活性,我们考虑更一般的的迭代公式 (2)其中步长因子通过从出发沿作直线搜索来确定.式(2)是代表很长的一类迭代公式.例如,当(单位矩阵)时,它变为最速下降法的迭代公式.为使确实与近似并且有容易计算的特点,必须对附加某些条件:第一, 为保证迭代公式具有下降性质,要求中的每一个矩阵都是对称正定的,理由是,为使搜索方向是下降方向,只要成立即可,即成立.当对称正定时,此公式必然成立,从而保证式(2)具有下降性质.第二,要求之间的迭代具有简单形式.显然, (3)是最简单的形式了.其中称为校正矩阵,式(3)称为校正公式.第三,必须满足拟New

36、ton条件.即: (4)为了书写方便也记于是拟Newton条件可写为 (5)有式(3)和(5)知,必须满足 或 (6)3.5.2 DFP算法的基本思想和原理DFP校正是第一个拟牛顿校正是1959年由Davidon提出的后经Fletcher和Powell改进故名之为DFP算法它也是求解无约束优化问题最有效的算法之一.DFP算法基本原理考虑如下形式的校正公式 (7)其中是特定维向量,是待定常数.这时,校正矩阵是现在来确定根据拟Newton条件,必须满足(6),于是有或满足这个方程的待定向量和有无穷多种取法,下面是其中的一种:注意到和都是数量,不妨取同时定出将这两式代回(7)得 (8)这就是DFP校

37、正公式.3.5.3 DFP法的迭代步骤 已知目标函数及其梯度,问题的维数,终止限.(1) 选定初始点.计算,.(2) 置,.(3) 作直线搜索;计算,.(4) 判别终止准则是否满足:若满足,则打印,结束;否转(5).(5) 若,则置,转(2);否则转(6).(6) 计算 置,转(3).例3.5.1 用DFP法求解:取时,DFP法与最速下降法有相同的的第一代迭代点 由例2.1可知 , 因为 所以 搜索方向为直线搜索由知所以 是极小点3.5.4 DFP法的matlab实现 首先建立M文件为:function x,f,tdc=dfp(x0,A,fun,gfun)%功能:用DFP算法求解无约束问题:m

38、inf(x),x0是初始点.%输出:x,f分别是近似最优点和最优值,计算运行循环次数.%A为所求问题Hesse矩阵,fun为问题函数,gfun为梯度函数.ep=1e-6;%ep为终止限精度k=1;n=length(x0);Hk=eye(n);X(:,1)=x0;G(:,1)=gfun(X(:,1);X(:,k+1)=X(:,k)-G(:,1)*G(:,1)/(G(:,1)*A*G(:,1)*G(:,1);%一步最速下降法G(:,k+1)=gfun(X(:,k+1);tdc=0;%计算迭代此数while(norm(G(:,k+1)ep) if k=n+1 x0=X(:,k+1); g0=gfun

39、(x0); Hk=eye(n);k=1; pk=-g0; X(:,k)=x0; G(:,k)=g0; else sk=X(:,k+1)-X(:,k); yk=G(:,k+1)-G(:,k); Hk=Hk+sk*sk/(sk*yk)-Hk*yk*yk*Hk/(yk*Hk*yk); pk=Hk*G(:,k+1); k=k+1; end X(:,k+1)=X(:,k)+(pk*pk/(pk*A*pk)*pk; G(:,k+1)=gfun(X(:,k+1); tdc=tdc+1;endx=X(:,k+1);f=fun(x);对于例3.6.1输入命令: x0=1,1; A=2 0;0 8; fun=in

40、line(x(1)2+4*x(2)2); gfun=inline(2*x(1);8*x(2); x,f,tdc=dfp(x0,A,fun,gfun)即可得到结果3.5.5 BFGS法的基本思想和原理另一个有效和著名的变尺度算法是Broyden, Fletcher(1970), Goldfarb(1969)和Shanno(1970)共同研究的结果,因而叫做BFGS法. 其基本原理为: 考虑校正公式 ,式中, 校正矩阵为为实数参数,每取一个实数就对应一种拟牛顿算法,当取就是DFP校正公式,当取就是BFGS校正公式3.5.6 BFGS法的迭代步骤已知目标函数及其梯度,问题的维数,终止限(1) 选取初

41、始点,初始矩阵,给定终止限(2) 求初始梯度.若,停止输出;否则转(3)(3) 构造初始BFGS方向,取(4) 进行一维搜索,求,使得(5) 求梯度,若,停止,输出;否则继续(6) 检验迭代次数,若,令转(3)(7) 构造BFGS方向,用BFGS公式计算, 转(4)例 3.5.2 用BFGS公式求,取初始点精确度要求.解 计算的梯度采用精确的一维搜索,从出发,沿方向 进行精确的一维搜索,得其中为最优步长,满足可以这样计算:容易知道有唯一极小点满足经过计算可得 取初始矩阵第一次迭代,算得 ,不满足终止准则.下面计算搜索方向从出发,沿方向进行一维搜素,由的计算公式可得最有步长置 计算 由BFGS公式计算可得第一次迭代结束,进行第二次迭代,可得

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁