引入下列记号:
g ( x ) = ∇ f ( x ) , g k = ∇ f ( x k ) , G ( x ) = ∇ 2 f ( x ) , G k = ∇ 2 f ( x k ) g(x)=\nabla f(x),\ g_k=\nabla f(x_k),\ G(x)=\nabla^2 f(x),\ G_k = \nabla^2f(x_k) g(x)=∇f(x), gk=∇f(xk), G(x)=∇2f(x), Gk=∇2f(xk)
一阶必要条件: 设 f ( x ) f(x) f(x) 在开集 D D D 上一阶连续可微. 若 x ∗ ∈ D x^*\in D x∗∈D 是 f ( x ) f(x) f(x)的一个局部极小点, 则必有 g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0.
二阶必要条件:设 f ( x ) f(x) f(x)在开集 D D D上二阶连续可微. 若 x ∗ ∈ D x^*\in D x∗∈D是 f ( x ) f(x) f(x) 的一个局部极小点, 则必有 g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0 且 G ( x ∗ ) G(x^*) G(x∗) 是半正定矩阵.
二阶充分条件:设 f ( x ) f(x) f(x)在开集 D D D 上二阶连续可微. 若 x ∗ ∈ D x^*\in D x∗∈D 满足条件 g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0 及 G ( x ∗ ) G(x^*) G(x∗)是正定矩阵, 则 x ∗ x^* x∗ 是 f ( x ) f(x) f(x) 的一个局部极小点.
定理: 设 f ( x ) f(x) f(x) 在 R n \mathbb{R}^n Rn 上是凸函数并且是一阶连续可微的. 则 x ∗ ∈ R n x^*\in\mathbb{R}^n x∗∈Rn 是 f ( x ) f(x) f(x) 的全局极小点的充要条件是 g ( x ∗ ) = 0 g(x^*)=0 g(x∗)=0.
##无约束优化问题的算法框架
在数值优化中, 一般采用迭代法求解无约束优化问题
m i n f ( x ) \mathrm{min} \ f(x) min f(x)
的极小点. 迭代法的基本思想是: 给定一个初始点 x 0 x_0 x0, 按照某一迭代规则产生一个迭代序列 { x k } \{x_k\} {xk}. 使得若该序列是有限的, 则最后一个点就是问题的极小点; 否则, 若序列 { x k } \{x_k\} {xk} 是无穷点列时, 它有极限点且这个极限点即为问题的极小点.
算法 (无约束问题的一般算法框架)
步0 :给定初始化参数及初始迭代点 x 0 x_0 x0. 置 k : = 0 k:= 0 k:=0.
步1 :若 x k x_k xk 满足某种终止准则, 停止迭代, 以 x k x_k xk作为近似极小点.
步2 :通过求解 x k x_k xk处的某个子问题确定下降方向 x k x_k xk.
步3 :通过某种搜索方式确定步长因子 a k a_k ak, 使得 f ( x k + a k d k ) < f ( x k ) f(x_k+a_kd_k)
步4 :令 x k + 1 : = x k + a k d k , k : = k + 1 x_{k+1}:=x_k+a_kd_k, k:=k+1 xk+1:=xk+akdk,k:=k+1, 转步1.
定义: 若存在 α ˉ > 0 \bar{\alpha}>0 αˉ>0, 使得对任意的 α ∈ ( 0 , α ˉ ] \alpha\in(0,\bar{\alpha}] α∈(0,αˉ] 和 d k ≠ 0 d_k\neq 0 dk=0, 有
f ( x k + α d k ) < f ( x k ) f(x_k+\alpha d_k)
则称 d k d_k dk为 f ( x ) f(x) f(x) 在 x k x_k xk 处的一个下降方向.
引理: 设函数 f : D ⊂ R n → R f:D\subset \mathbb{R}^n\rightarrow\mathbb{R} f:D⊂Rn→R在开集 D D D 上一阶连续可微, 则 d k d_k dk为 f ( x ) f(x) f(x) 在 x k x_k xk 处一个下降方向的充要条件是
∇ f ( x k ) T d k < 0 \nabla f(x_k)^Td_k<0 ∇f(xk)Tdk<0
定义: 若某算法只有当初始点 x 0 x_0 x0充分接近极小点 x ∗ x^* x∗ 时, 由算法产生的点列 { x k } \{x_k\} {xk} 才收敛于 x ∗ x^* x∗, 则称该算法具有局部收敛性. 若对于任意的初始点 x 0 x_0 x0, 由算法产生的点列 { x k } \{x_k\} {xk} 都收敛于 x ∗ x^* x∗, 则称该算法具有全局收敛性.
马昌凤. 最优化方法及其Matlab程序设计[M]. 科学出版社, 2010. ↩︎