【最优化期末复习】最速下降法

一、“最速”

由高数知识可知,当函数沿着负梯度方向行进时,下降速度最快,所以,“最速方向”就是负梯度方向。
在这里插入图片描述

二、求解方法

2.1 已知条件

目标函数: f ( x ⃗ ) f(\vec{x}) f(x )

梯度: g ⃗ ( x ⃗ ) = ∇ f ( x ⃗ ) \vec{g}(\vec{x})=\nabla f(\vec{x}) g (x )=f(x )

当前迭代点: x ⃗ k \vec{x}_k x k(初始点 x ⃗ 0 \vec{x}_0 x 0 任取)

2.2 迭代方法

下一个迭代点: x ⃗ k + 1 = x ⃗ k + t k p ⃗ k \vec{x}_{k+1}=\vec{x}_k+t_k\vec{p}_k x k+1=x k+tkp k

其中,由于要满足 “最速下降”, 所以 p ⃗ k \vec{p}_k p k − g ⃗ k -\vec{g}_k g k

所以: x ⃗ k + 1 = x ⃗ k − t k g ⃗ k \vec{x}_{k+1}=\vec{x}_k-t_k\vec{g}_k x k+1=x ktkg k

特殊地,当 f ( x ⃗ ) f(\vec{x}) f(x ) 为正定二次函数时: t k = g ⃗ k T g ⃗ k g ⃗ k T Q g ⃗ k t_k=\frac{\vec{g}_k^{\rm T}\vec{g}_k}{\vec{g}_k^{\rm T}Q\vec{g}_k} tk=g kTQg kg kTg k

2.3 终止准则

如果是做题,一般题目会给定迭代几次或者到何时停止,编程时采用H终止准则
给定 ϵ 1 \epsilon_1 ϵ1 ϵ 2 \epsilon_2 ϵ2 ϵ 3 \epsilon_3 ϵ3,当以下三个条件均满足时终止:
(1) ∣ ∣ ∇ f ( x ⃗ k + 1 ) ∣ ∣ ≥ ϵ 1 ||\nabla f(\vec{x}_{k+1})||\geq \epsilon_1 ∣∣∇f(x k+1)∣∣ϵ1

(2) ∣ ∣ x ⃗ k + 1 − x ⃗ k ∣ ∣ ∣ ∣ x ⃗ k + 1 ∣ ∣ ≥ ϵ 2 \frac{||\vec{x}_{k+1}-\vec{x}_k||}{||\vec{x}_k+1||}\geq \epsilon_2 ∣∣x k+1∣∣∣∣x k+1x k∣∣ϵ2

(3) ∣ f k + 1 − f k ∣ ∣ f k + 1 ∣ ≥ ϵ 3 \frac{|f_{k+1}-f_k|}{|f_k+1|}\geq \epsilon_3 fk+1∣fk+1fkϵ3

一般取: ϵ 1 = 1 0 − 4 \epsilon_1=10^{-4} ϵ1=104 ϵ 2 = ϵ 3 = 1 0 − 5 \epsilon_2=\epsilon_3=10^{-5} ϵ2=ϵ3=105

三、直观理解

在这里插入图片描述

四、例题

m i n f ( x ⃗ ) = x 1 2 + 4 x 2 2 {\rm min} f(\vec{x})=x_1^2+4x_2^2 minf(x )=x12+4x22 迭代两次求 x ⃗ 2 \vec{x}_2 x 2,初始点: x ⃗ 0 = [ 1 , 1 ] T \vec{x}_0=[1,1]^{\rm T} x 0=[1,1]T

解: g ⃗ ( x ⃗ ) = ∇ f ( x ⃗ ) = [ 2 x 1 , 8 x 2 ] T \vec{g}(\vec{x})=\nabla f(\vec{x})=[2x_1,8x_2]^{\rm T} g (x )=f(x )=[2x1,8x2]T f ( x ⃗ 0 ) = 5 ,     g ⃗ 0 = [ 2 , 8 ] T f(\vec{x}_0)=5, \space\space\space \vec{g}_0=[2,8]^{\rm T} f(x 0)=5,   g 0=[2,8]T该目标函数是正定二次函数,即: f ( x ⃗ ) = 1 2 x ⃗ T Q x ⃗ = 1 2 x ⃗ T [ 2 0 0 8 ] x ⃗ f(\vec{x})=\frac{1}{2}\vec{x}^{\rm T}Q\vec{x}=\frac{1}{2}\vec{x}^{\rm T}\begin{bmatrix} 2 & 0 \\ 0 & 8 \\ \end{bmatrix}\vec{x} f(x )=21x TQx =21x T[2008]x ∴ x ⃗ 1 = x ⃗ 0 − g ⃗ 0 T g ⃗ 0 g ⃗ 0 T Q g ⃗ 0 g ⃗ 0 = [ 0.73846 − 0.04616 ] \therefore \vec{x}_1=\vec{x}_0-\frac{\vec{g}_0^{\rm T}\vec{g}_0}{\vec{g}_0^{\rm T}Q\vec{g}_0}\vec{g}_0=\begin{bmatrix} 0.73846 \\ -0.04616 \\ \end{bmatrix} x 1=x 0g 0TQg 0g 0Tg 0g 0=[0.738460.04616]然后: f ( x ⃗ 1 ) = 0.55385 ,     g ⃗ 1 = [ 1.47692 , − 0.36923 ] T f(\vec{x}_1)=0.55385, \space\space\space \vec{g}_1=[1.47692,-0.36923]^{\rm T} f(x 1)=0.55385,   g 1=[1.47692,0.36923]T ∴ x ⃗ 2 = x ⃗ 1 − g ⃗ 1 T g ⃗ 1 g ⃗ 1 T Q g ⃗ 1 g ⃗ 1 = [ 0.11076 0.11076 ] \therefore \vec{x}_2=\vec{x}_1-\frac{\vec{g}_1^{\rm T}\vec{g}_1}{\vec{g}_1^{\rm T}Q\vec{g}_1}\vec{g}_1=\begin{bmatrix} 0.11076 \\ 0.11076 \\ \end{bmatrix} x 2=x 1g 1TQg 1g 1Tg 1g 1=[0.110760.11076]

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值