当前位置:文档之家› 最优化方法 课程设计报告 运用DFP算法解决无约束最优化问题

最优化方法 课程设计报告 运用DFP算法解决无约束最优化问题

北方民族大学课程设计报告系(部、中心)信息与计算科学学院专业信息与计算科学班级 09信计(3)班小组成员课程名称最优化方法设计题目名称运用DFP算法解决无约束最优化问题提交时间2012年6月26日成绩指导教师变尺度法是在牛顿法的基础上发展起来的,它和梯度法亦有密切关系.变尺度法避免了Newton法在每次迭代都要计算目标函数的Hesse矩阵和它的逆矩阵而导致随问题的维数增加计算量迅速增加.DFP算法是变尺度法中一个非常好的算法.DFP算法首先是1959年由Davidon提出的后经Fletcher和Powell改进,故名之为DFP算法,它也是求解无约束优化问题最有效的算法之一.DFP变尺度法综合了梯度法、牛顿法的优点而又避弃它们各自的缺点,只需计算一阶偏导数,无需计算二阶偏导数及其逆矩阵,对目标函数的初始点选择均无严格要求,收敛速度快.本文主要分析DFP算法原理及运用Matalb软件编程解决实际数学问题.最后运算结果符合计算精度且只用了一次迭代,由此可见收敛速度快.关键词:Newton法变尺度法Hesse矩阵Matlab软件一、课程设计目的 (1)二、课程设计要求 (1)三、课程设计原理 (1)(1)变尺度法基本原理 (1)(2)DFP算法 (3)四、实验内容 (4)五、数学建模及求解 (4)1.DFP算法迭代步骤 (4)2.DFP算法的流程图 (5)六、程序实现 (5)七、数值实验的结果与分析 (8)八、实验总结与体会 (9)1.DFP公式恒有确切解 (9)2.DFP算法的稳定性 (9)参考文献 (10)一、 课程设计目的:1、掌握无约束优化问题DFP 算法的数值求解思路;2、训练分析DFP 算法的运算存储量及收敛速度的能力,了解算法的优缺点;3、通过运用DFP 算法求解实际无约束优化问题的意义;4、熟悉应用Matlab 求解无约束最优化问题的编程方法.二、 课程设计要求熟悉了解DFP 算法原理及求解无约束优化问题的步骤,并运用Matlab 件 编程实现求解问题.三、 课程设计原理(1)变尺度法基本原理在Newton 法中,基本迭代公式k k k k P t X X +=+1,其中,1=k t ,)()]([12k k k X f X f P ∇∇-=-,于是有2,1,0,11=-=-+k g G X X k k k k ··· (1) 其中0X 是初始点,k g 和k G 分别是目标函数)(X f 在点k X 的梯度和Hesse 矩阵.为了消除这个迭代公式中的Hesse 逆矩阵1-k G ,可用某种近似矩阵)(k k X H H =来替换它,即构造一个矩阵序列}{k H 去逼近Hesse 逆矩阵序列}{1-k G 此时式(1)变为k k k k g H X X -=+1事实上,式中k k k g H P -=无非是确定了第k 次迭代的搜索方向,为了取得更大的灵活性,我们考虑更一般的的迭代公式k k k k k g H t X X -=+1 (2)其中步长因子k t 通过从k X 出发沿k k k g H P -=作直线搜索来确定.式(2)是代表很长的一类迭代公式.例如,当I H k ≡(单位矩阵)时,它变为最速下降法的迭代公式.为使k H 确实与1-k G 近似并且有容易计算的特点,必须对k H 附加某些条件:第一,为保证迭代公式具有下降性质,要求}{k H 中的每一个矩阵都是对称 正定的.理由是,为使搜索方向k k k g H P -=是下降方向,只要0<-=-k k T k k T k g H g P g成立即可,即0>k k Tk g H g成立.当k H 对称正定时,此公式必然成立,从而保证式(2)具有下降性质.第二,要求k H 之间的迭代具有简单形式.显然,k k k E H H +=+1 (3)是最简单的形式了.其中k E 称为校正矩阵,式(3)称为校正公式.第三,必须满足拟Newton 条件.即:)()(111k k k k k X X g g H -=-+++ (4)为了书写方便也记k k k g g y -=+1 k k k X X S -=+1于是拟Newton 条件可写为k k k S y H =+1 (5)有式(3)和(5)知,k E 必须满足k k k k S y E H =+)( 或y H S y E == (6)(2)DFP 算法DFP 校正是第一个拟牛顿校正是1959年由Davidon 提出的后经Fletcher 和Powell 改进故名之为DFP 算法它也是求解无约束优化问题最有效的算法之一. DFP 算法基本原理考虑如下形式的校正公式T k k k Tk k k k k V V U U H H βα++=+1 (7)其中k k V U ,是特定n 维向量,k k βα,是待定常数.这时,校正矩阵是T k k k Tk k k k V V U U E βα+=.现在来确定k E .根据拟Newton 条件,k E 必须满足(6),于是有k k k k T k k k Tk k k y H S y V V U U -=+)(βα或k k k k T k k k k T k k k y H S y V V y U U -=+βα.满足这个方程的待定向量k U 和k V 有无穷多种取法,下面是其中的一种:k k Tk k k S y U U =α,k k k T k k k y H y V V -=β注意到k Tk y U 和k T k y V 都是数量,不妨取k k S U =,k k k y H V =,同时定出k T k k y S 1=α,kk Tk k y H y 1-=β. 将这两式代回(5.32)得kk Tk kT k k k k T k T k k k k y H y H y y H y S S S H H -+=+1. (8) 这就是DFP 校正公式.四、 实验内容采用课本P102页例5.3和P107页例5.4进行数值计算;1,求22212125),(min x x x x f +=,取初始点T X ]2,2[0=. 2,求2221214),(min x x x x f +=,取初始点T X ]1,1[0=.五、 数学建模及求解1.DFP 算法迭代步骤在拟Newton 算法中,只要把第五步改为计算式(8)而其他不变,该算法就是DFP 算法了.但是由于计算中舍去误差的影响,特别是直线搜索不精确的影响,可能要破坏迭代矩阵k H 的正定性,从而导致算法失效.为保证k H 的正定性,采取以下重置措施:迭代1+n 次后,重置初始点和迭代矩阵,即I H X X n ==+010,以后重新迭代.已知目标函数)(X f 及其梯度)(X g ,问题的维数n ,终止限ε. (1) 选定初始点.计算)(00X f f =,)(00X g g =. (2) 置I H =0,00g P -=,0=k .(3) 作直线搜索),(1k k k P X ls X =+;计算)(11++=k k X f f ,)(11++=k k X g g . (4) 判别终止准则是否满足:若满足,则打印),(11++k k f X ,结束;否转(5). (5) 若n k =,则置10+=k X X ,10+=k f f ,10+=k g g ,转(2);否则转(6). (6) 计算k k k X X S -=+1, k k k g g y -=+1,kk Tk kTk k k k T k T k k k k y H y H y y H y S S S H H -+=+1, 111+++-=k k k g H P ,置1+=k k ,转(3).2.DFP算法的流程图六、程序实现七、 数值实验的结果与分析由上述运行结果可得出:第一题迭代一次就解得:]0664.0,2220.0[*0150.1---=e X 与精确解]0,0[=X 误差远小于610-=ε,符合要求.第二题同样迭代一次就解得:]0555.0,1110.0[*0150.1--=e X 与精确解]0,0[=X 误差远小于610-=ε,符合要求.且所计算的k H 矩阵和梯度与精确计算所得一样,这也表明DFP 算法的matalb 程序完全符合要求.八、 实验总结与体会DFP 变尺度法综合了梯度法、牛顿法的优点而又避弃它们各自的缺点,只需计算一阶偏导数,无需计算二阶偏导数及其逆矩阵,对目标函数的初始点选择均无严格要求,收敛速度快,这些良好的性能已作阐述。

.对于高维(维数大于50)问题被认为是无约束极值问题最好的优化方法之一。

下面对其效能特点再作一些补充说明.1.DFP 公式恒有确切解分析DFP 公式k k T k k T k k k k T k T k k k k y H y H y y H y S S S H H -+=+1为使变尺度矩阵k H 恒有确定的解,必须保证该式右端第二项和第三项的分母为异于零的数,南京大学编的《最优化方法》已证明了这两项的分母均为正数.2.DFP 算法的稳定性优化算法的稳定性是指每次迭代都能使目标函数值逐次下降。

在阐述构造变尺度矩阵k H 的基本要求中。

已经证明为保证拟牛顿方向目标函数值下降,k H 必须是对称正定矩阵。

南京大学编的《最优化方法》证明了对于f(X)的一切非极小点k X 处,只要矩阵k H 对称正定,则按DFP 公式产生的矩阵1+k H 亦为对称正定。

通常我们取初始变尺度矩阵0H 为对称正定的单位矩阵I ,因此随后构造的变尺度矩阵序列{k H (k=1,2, …)}必为对称正定矩阵序列,这就从理论上保证DFP法使目标函数值稳定地下降。

但实际上由于一维最优搜索不可能绝对准确,而且计算机也不可避免地有舍入误差,仍有可能使变尺度矩阵的正定性遭到破坏或导致奇异。

为提高实际计算的稳定性,除提高一维搜索的精度外,通常还将进行n 次(n为目标函数的维数)迭代作为一个循环,将变尺度矩阵重置为单位矩阵I,并以上一循环的终点作为起点继续进行循环迭代,这己反映在迭代过程和算法框图之中.参考文献:[1] 《优化设计方法[M]》邵陆寿北京:农业出版社,2007.[2] 《最优化方法》南京大学出版社[3] 《最优化方法及其应用》郭科陈聆魏友华高等教育出版社[4] 《MATLAB使用教程》张磊毕靖郭莲英人民邮电出版社。

相关主题