最速下降法

最速下降法

无约束极值问题的一般形式为
min ⁡ f ( X ) , X ∈ E ( n ) \min f(X),X\in E^{(n)} minf(X),XE(n)
函数 f ( X ) f(X) f(X)是一阶或者二阶可微的。

定义

最速下降法又称梯度法,是求解无约束极值问题其他解析法的基础。
如果在 X 0 ∈ E ( n ) X^0\in E^{(n)} X0E(n) 处, ∇ f ( X 0 ) ≠ 0 \nabla f(X^0)\neq0 f(X0)=0 ,所有使
∇ f ( X 0 ) T P < 0 \nabla f(X^0)^TP<0 f(X0)TP<0
成立的非0向量 P ∈ E n P\in E^n PEn ,都是 f ( X ) f(X) f(X) X 0 X^0 X0 处的下降方向,这时对于充分小的 λ > 0 \lambda>0 λ>0 ,必有 f ( X 0 + λ P ) < f ( X 0 ) f(X^0+\lambda P)<f(X^0) f(X0+λP)<f(X0 若记 X 1 = X 0 + λ P X^1=X^0+\lambda P X1=X0+λP ,那么上式可写为 f ( X 1 ) < f ( X 0 ) f(X^1)<f(X^0) f(X1)<f(X0)
这表明,只要选取适当的方向 P P P λ \lambda λ ,使之满足上式,便可保证函数值 f ( X 0 ) f(X^0) f(X0)有所下降,其中 λ \lambda λ 称之为步长。现在的问题是应该如何选取方向 P 0 P^0 P0 λ 0 \lambda_0 λ0 ,使得 λ 0 ∇ f ( X 0 ) T P 0 \lambda_0\nabla f(X^0)^TP^0 λ0f(X0)TP0 尽可能地小。从而使 f ( X 0 + λ 0 P 0 ) = f ( X 0 ) + λ 0 ∇ f ( X 0 ) T P 0 + O ( λ 0 ) f(X^0+\lambda_0P^0)=f(X^0)+\lambda_0\nabla f(X^0)^TP^0+O(\lambda_0) f(X0+λ0P0)=f(X0)+λ0f(X0)TP0+O(λ0) 可能地小。首先。由向量代数知道 ∇ f ( X 0 ) T P 0 = ∥ ∇ f ( X 0 ) ∥ 2 ⋅ ∥ P 0 ∥ 2 ⋅ cos ⁡ θ \nabla f(X^0)^TP^0=\Vert \nabla f(X^0)\Vert_2\cdot\Vert P^0\Vert_2\cdot \cos\theta f(X0)TP0=∥∇f(X0)2P02cosθ 其中 θ \theta θ ∇ f ( X 0 ) \nabla f(X^0) f(X0) P 0 P^0 P0 间的夹角。由此可以看出,当 θ = π \theta=\pi θ=π ,即 P 0 = − ∇ f ( X 0 ) P^0=-\nabla f(X^0) P0=f(X0) 时, ∇ f ( x 0 ) P 0 \nabla f(x^0)P^0 f(x0)P0 取最小值,也就是说,在 X 0 X^0 X0 处,沿着负梯度方向,是 f ( X ) f(X) f(X) 下降最快的方向。所以当取 P 0 = − ∇ f ( X 0 ) P^0=-\nabla f(X^0) P0=f(X0) 时,算法称为最速下降法或者梯度法。

步长的确定方法

  1. 定长法
    每次迭代都取 λ k \lambda_k λk 为相同的值 λ \lambda λ .不过这里的搜索方向 P k P^k Pk 都是单位向量,即 P K = ∇ f ( X k ) ∥ ∇ f ( X k ) ∥ 2 P^K=\frac{\nabla f(X^k)}{\Vert\nabla f(X^k)\Vert_2} PK=∥∇f(Xk)2f(Xk)
  2. 最优步长法
    在迭代过程中,每次 λ k \lambda_k λk 是一个与 X k X^k Xk 有关的变量,即由 min ⁡ f ( X k − λ ∇ f ( X k ) ) , λ ≥ 0 \min f(X^k-\lambda\nabla f(X^k)),\lambda\geq0 minf(Xkλf(Xk)),λ0 来确定 λ k \lambda_k λk ,这样的 λ k \lambda_k λk 成为最优步长。

计算步骤:

首先给定初始近似点 x 0 x^0 x0和精度 ϵ > 0 \epsilon>0 ϵ>0 ,令 k = 0 k=0 k=0 .

  1. 计算 ∇ f ( X K ) \nabla f(X^K) f(XK) ,若 ∥ ∇ f ( X 0 ) ∥ 2 < ϵ \Vert\nabla f(X^0)\Vert^2<\epsilon ∥∇f(X0)2<ϵ ,则称 X 0 X^0 X0 即为所求近似极小点,结束;否则转入下步。
  2. min ⁡ f ( X 0 − λ ∇ f ( X 0 ) ) , λ ≥ 0 \min f(X^0-\lambda\nabla f(X^0)),\lambda\geq0 minf(X0λf(X0)),λ0 λ 0 \lambda_0 λ0 ,并计算 X 0 − λ 0 ∇ f ( X 0 ) X^0-\lambda_0\nabla f(X^0) X0λ0f(X0) , K ⇒ 1 K\Rightarrow1 K1 .
  3. 一般地,若求得 X k X^k Xk ,则计算 ∇ f ( X k ) \nabla f(X^k) f(Xk) ,若 ∥ ∇ f ( X k ) ∥ 2 ≤ ϵ \Vert\nabla f(X^k)\Vert^2\leq\epsilon ∥∇f(Xk)2ϵ ,则 X k X^k Xk 为所求近似极小点,否则转入下步。
  4. min ⁡ f ( X k − λ ∇ f ( X k ) ) \min f(X^k-\lambda\nabla f(X^k)) minf(Xkλf(Xk)) ,得 λ k \lambda_k λk 并计算
    X k + 1 = X k − λ k ∇ f ( X k ) , k ⇒ k + 1 X^{k+1}=X^k-\lambda_k\nabla f(X^k),k\Rightarrow k+1 Xk+1=Xkλkf(Xk),kk+1
    转第3步继续迭代,直至满足精度要求为止。

参考文献

运筹学高级教程 沈荣芳 第二版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾盼w(゚Д゚)w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值