FR 共轭梯度法(Fletcher–Reeves)
记 \(g_k = \nabla f(x^k)\),算法步骤为:
1. 给定初始点 \(x^0\),取搜索方向 \(d^0 = -g_0\)。
2. 用线搜索得到步长 \(t_k\),更新
\(
x^{k+1} = x^k + t_k d^k.
\)
3. 若 \(\lVert g_{k+1}\rVert < \varepsilon,\) 终止。
4. 按 FR 公式计算
\[
\beta_k = \frac{\lVert g_{k+1}\rVert^2}{\lVert g_k\rVert^2},
\]
并更新搜索方向
\[
d^{k+1} = -g_{k+1} + \beta_k d^k.
\]
5. 每隔若干步将 \(d^{k+1}\) 重置为 \(-g_{k+1}\).
Armijo 回溯线搜索
对当前点 \(x^k\) 与方向 \(d^k\),定义 \(\phi(t) = f(x^k + t d^k).\)
取常数 \(\beta \in (0,1)\)、\(\sigma \in (0,\tfrac12)\),从初始步长 \(t_0\) 开始,反复令 \(t \leftarrow \beta t,\) 直到第一次满足
\[
\phi(t) \le \phi(0) + \sigma t\, \phi'(0),
\]
此时得到 Armijo 步长 \(t_k\)。