引理
若
f
(
x
)
=
1
2
x
T
G
x
+
δ
T
x
+
γ
f(x)=\frac{1}{2}x^TGx+\delta^T x+\gamma
f(x)=21xTGx+δTx+γ为正定函数,则
ϕ
(
α
k
)
=
m
i
n
α
f
(
x
k
+
α
d
k
)
\phi(\alpha_k)=\underset{\alpha}{min}f(x_k+\alpha d_k)
ϕ(αk)=αminf(xk+αdk)有如下形式的解:
α
k
=
−
∇
f
(
x
k
)
T
d
k
d
k
T
G
d
k
\alpha_k=-\frac{\nabla f(x_k)^Td_k}{d_k^TGd_k}
αk=−dkTGdk∇f(xk)Tdk
FR算法
核心思想:
- 共轭梯度迭代,不断更新搜索方向
算法步骤
- S t e p 1 : 初 始 点 x 1 , 精 度 ϵ > 0 , k = 1 , d 0 = 1 , β 0 = 1 ; Step1:初始点x_1,精度\epsilon>0,k=1,d_0=1,\beta_0=1; Step1:初始点x1,精度ϵ>0,k=1,d0=1,β0=1;
-
S
t
e
p
2
:
如
果
k
=
1
,
令
d
k
=
−
∇
f
(
x
k
)
,
Step2:如果k=1,令d_k=- \nabla f(x_k),
Step2:如果k=1,令dk=−∇f(xk),
否 则 k > 1 , 则 有 β k − 1 = ∇ f ( x k ) T ∇ f ( x k ) ∇ f ( x k − 1 ) T ∇ f ( x k − 1 ) , d k = − ∇ f ( x k ) + β k − 1 d k − 1 ; 否则k>1,则有\beta_{k-1}=\frac{\nabla f(x_k)^T\nabla f(x_k)}{\nabla f(x_{k-1})^T\nabla f(x_{k-1})},d_k=-\nabla f(x_k)+\beta_{k-1}d_{k-1}; 否则k>1,则有βk−1=∇f(xk−1)T∇f(xk−1)∇f(xk)T∇f(xk),dk=−∇f(xk)+βk−1dk−1; -
S
t
e
p
3
:
计
算
α
k
,
使
得
ϕ
(
α
k
)
=
m
i
n
α
f
(
x
k
+
α
d
k
)
,
即
Step3:计算\alpha_k,使得\phi(\alpha_k)=\underset{\alpha}{min}f(x_k+\alpha d_k),即
Step3:计算αk,使得ϕ(αk)=αminf(xk+αdk),即
α k = − ∇ f ( x k ) T d k d k T G d k \alpha_k=-\frac{\nabla f(x_k)^Td_k}{d_k^TGd_k} αk=−dkTGdk∇f(xk)Tdk - S t e p 4 : x k + 1 = x k + α k d k , k = k + 1 , 转 到 S t e p 2. Step4:x_{k+1}=x_k+\alpha_kd_k,k=k+1,转到Step2. Step4:xk+1=xk+αkdk,k=k+1,转到Step2.
程序实现后续补充