用Matlab实现非线性无约束优化的几种方法比较
2019-01-21朱逸夫
王 娜,朱逸夫
(1.长春工程学院教务处,长春130012;2.长春工程学院计算机技术与工程学院,长春130012)
0 引言
非线性无约束最优化技术是一门实践性很强的方法,应用者往往要在实践中不断地总结[1-4]。对有些应用者来说,不必要浪费了大量的时间和精力,系统而深入地学习优化算法及公式,他们只希望能够快速地找到有效的解法、合适的优化软件,并能在计算机上尽快地求出问题的解[5]。为此本文针对非线性无约束优化模型,利用几种不同的Matlab求解非线性无约束优化问题的调用格式,或根据无约束优化的算法编程进行求解,并进行解的比较和分析,提高非线性规划模型的应用效果和能力。
1 非线性无约束优化的基本理论
设无约束非线性规划的模型为
minf(x),x=(x1,x2,…,xn)T∈Rn,
(1)
求解无约束优化问题的主要思想是下降算法:每一步都要求函数值有所下降,其迭代格式为
x(k+1)=x(k)+αkd(k),
即对应于点列{xk}上的函数值列{f(xk)}必须是逐渐减小的,或者至少是不增加的,因而有
f(x0)≥f(x1)≥…≥f(xk)≥f(xk+1)≥…
(2)
我们还要求这些点列收敛于全局最优解。在下降算法中有4个问题需要具体化:1)如何来描述收敛速度,它可以作为一个指标来衡量算法的优劣;2)如何终止算法,即确定结束准则;3)最优步长的确定;4)搜索方向的确定。
关键两步是构造搜索方向d(k)和确定步长αk,不同的d(k)和αk的选择方法构成不同的算法。有了迭代点x(k)和搜索方向d(k)后,求迭代步长αk使评价函数φ(α)沿射线x(k)+αd(k)(α≥0)有所下降,即φ(x(k)+αkd(k))<φ(x(k)),称求解αk的问题为一维搜索或线性搜索。一维搜索的方法很多,常用的有:1)试探法(“成功—失败”,斐波那契法,0.618法等),比较简单可靠;2)插值法(抛物线插值法,三次插值法等),利用了导数信息,所以比较有效;3)求根法(切线法,二分法等),求0f(x(k)+αd(k))Td(k)=0的根,这种搜索叫精确线性搜索。通常求φ(α)的全局极小点相当困难,只能得到满足一定精度的近似解,但它对许多无约束最优化算法的收敛性和收敛速率的讨论具有较重要的理论价值。4)不精确线性搜索,例如wolfe准则,它的优点是计算工作量小、方法简单。
当目标函数f(x)用它在x(k)处的一阶泰勒展开式逼近时,得到的求解方法称为最速下降法(Steepest Decent Method);……