共轭梯度法在第一次时迭代的过程和最速下降法一样,但从第二步开始共轭梯度法就发生了变化,共轭梯度法的梯度下降方法不再是直接根据当前点计算?f(x)
共轭梯度法的相关问题中的条件提炼出来如下,如果题目没有误差e,那就要求最后迭代出来的梯度值 ? f ( x ) {?f(x) } ?f(x) 接近0或等于0,一般自行选取e。
和最速下降法一样,先计算梯度下降方向 d 0 = ? ? f ( x 0 ) = [ 1 , ? 1 ] T d_0=-?f(x^0)=[1,-1]^T d0?=??f(x0)=[1,?1]T
下一个迭代点 x 1 = x 0 + d 0 ? t 0 {x^1=x^0+d_0*t_0} x1=x0+d0??t0?
设函数 g ( t 0 ) = f ( x 0 ) = t 0 2 ? 2 ? t 0 g(t_0)=f(x^0 )={t_0}^2-2*t_0 g(t0?)=f(x0)=t0?2?2?t0?
对 g ( t 0 ) {g(t_0)} g(t0?)求导,当 g ′ ( t 0 ) = 0 {g'(t_0)=0} g′(t0?)=0时, t 0 = 1 {t_0=1} t0?=1,代入求得 x 1 = [ 1 , ? 1 ] T {x^1 =[1,-1]^T } x1=[1,?1]T
先计算系数
b
=
1
b=1
b=1
梯度下降方向
d
1
=
?
?
f
(
x
1
)
+
b
?
d
0
=
[
2
,
0
]
T
d_1=-?f(x^1)+b*d_0=[2,0]^T
d1?=??f(x1)+b?d0?=[2,0]T
下一个迭代点 x 2 = x 1 + d 1 ? t 1 {x^2=x^1+d_1*t_1} x2=x1+d1??t1?
设函数 g ( t 1 ) = f ( x 2 ) = 4 ? t 1 2 ? 2 ? t 1 ? 1 g(t_1)=f(x^2 )={4*t_1}^2-2*t_1-1 g(t1?)=f(x2)=4?t1?2?2?t1??1
对 g ( t 1 ) {g(t_1)} g(t1?)求导,当 g ′ ( t 1 ) = 0 {g'(t_1)=0} g′(t1?)=0时, t 1 = 1 / 4 {t_1=1/4} t1?=1/4,代入求得 x 2 = [ 3 / 2 , ? 1 ] T {x^2 =[3/2,-1]^T } x2=[3/2,?1]T
此时 ? f ( x 2 ) = 0 < e ?f(x^2)=0<e ?f(x2)=0<e,因此 x 2 x^2 x2为最优解点,最优解为 f ( x 2 ) = 5 / 4 f(x^2)=5/4 f(x2)=5/4
后续迭代按照第二次迭代的方法依次计算即可