自助 建站/黄山seo
第 26 卷 第 5 期 2 0 1 2 年 9 月 长 沙 大 学 学 报 JOURNAL OF CHANGSHA UNIVERSITY Vol.26 No.5 Sep. 2 0 1 2 BFGS 和 DFP 法的最优化问题求解及在 MATLAB 中的实现* 吴顺秋 ( 湖南城市学院数学与计算科学学院,湖南 益阳 413000) 摘 要:对拟 Newton 方法中的 DFP 算法和 BFGS 算法进行了探讨,借助 matlab 软件中 fminsearch 和 fminunc 函数,利用BFGS 方法和 DFP 方法对非线性无约束优化问题进行了仿真研究,结果表明利用 matlab 软件解答非线性无约束优化问题获得了好的效果,为数学工作者求解非线性无约束优化问题提供了一种新的方法.关键词:matlab 软件; 数学建模; BFGS 算法; DFP 算法; 最优解 中图分类号:TB112 文献标识码:A 文章编号:1008 -4681(2012)05 -0001 -03 在当今科学研究、工程设计和经济管理等许多领域中,常常会遇到如何在一切可能的方案中选择最优、最好方案的这类问题,数学上把它称之为最优化问题. 如何得到最优方案,自然也就成了科技人员在解决实际问题中特别关心的问题. 而在大多数人的头脑中,特别是现在的高科技人才中,很多人只注意新方法新问题的发明、发现,其实如何对已有的方法的优化同样是一个很重要、很艰巨的问题[1,2].在数学上,优化问题就是求解如下形式的最优解: Minimize f( x) Subject to[C. E.] [B. C.] 其中 f( x) 称为目标函数,Subject to 引导的部分称为约束条件,[C. E.]即条件方程,[B. C.]即边界条件,用来约束自变量的求解域,以 vlb≤x≤vub 的形式给出. 在优化问题中,根据目标函数、约束函数和变量的不同,可以将其大致分为线性优化、非线性优化、二次优化、多任务目标优化等,本文主要讨论非线性优化问题,这里仅就 DFP 算法和 BFGS 算法进行一些探讨. 1 DFP 算法和 BFGS 算法 1. 1 DFP 算法 无约束优化问题的基本形式为[3]; Minimize f( x) x ∈ Rn ( 1) 其中 f( x) : Rn → R 称为目标函数. 理论分析和大量数值试验表明,在求解( 1) 的各种算法中,拟 Newton 算法是效果最好的一类方法. DFP( Davidon -Fletcher - Powell) 算法是最早提出的拟 Newton 算法,它首先由 Davidon 给出,并由 Fletcher 和 Powell 修改而成[4]. DFP 算法的一般计算步骤如下: dk = - ( Bk) -1gk xk+1 = xk + akdk Bk+1 = Bk - BkskyT k + yksT k Bk sT k yk + 1 + sT k Bksk sT k y( ) k · yk 2 2 sT k yk 其中 sk = akdk; yk = gk+1 - gk,ak 为步长因子,它由具体的线 搜索准则确定. Goldstein - Armijor 线搜索下的 DFP 算法步骤 1: 取 x1 ∈ Rn,B1 ∈ Rn* n 且对称正定,k = 1; 步骤 2: 计算 gk = f( xk) ,如果 gk = 0,则终止,最优解为 xk; 如果 gk ≠ 0,令 dk = - ( Bk) -1gk,继续下一步; 步骤 3: 选取 ak 满足以下两式