一,算法原理
共轭梯度法可以看作是特殊的迭代法,有迭代法的格式,即首先给出x(0),再由迭代格式
x ( k + 1 ) = x ( k ) + α k d ( k ) {
{x}^{(k+1)}}={
{x}^{(k)}}+{
{\alpha }_{k}}{
{d}^{(k)}} x(k+1)=x(k)+αkd(k)
进行迭代,那么关键就是求出两个因素:方向 d ( k ) { {d}^{(k)}} d(k)和步长 α k { {\alpha }_{k}} αk。
首先确定最佳步长 α k { {\alpha }_{k}} αk,假设 x ( k ) { {x}^{(k)}} x(k)和搜索方向 d ( k ) { {d}^{(k)}} d(k)已给定,那么通过一元函数
求极小值。令 ϕ ′ ( α ) = 0 \phi '(\alpha )=0 ϕ′(α)=0 ( α \alpha α 为变量,其他为已知数)得到:
( − r ( k ) + α A d ( k ) ) T d ( k