秩2算法可以保证在任意第
k
步迭代下, 只要一维搜索是精确的,近似矩阵
DFP算法
- 令 k=0 ,选择初始点 x(0) ,任意选择一个堆成正定实矩阵 H0 。
- 如果 g(k)=0 , 停止迭代; 否则,令 d(k)=−Hkg(k)
- 计算
αk=argminα≥0f(x(k)+αd(k))x(k+1)=x(k)+αkd(k)
4.计算
Δx(k)=αkd(k)Δg(k)=g(k+1)−g(k)Hk+1=Hk+Δx(k)Δx(k)TΔx(k)TΔg(k)+[HkΔg(k)][HkΔg(k)]TΔg(k)THkΔg(k)
5.令 k==k+1 , 回到第二步。
定理18.1 利用DFP算法求解二次型问题时,Hessian矩阵为 Q=QT,有Hk+1Δg(i)=Δx(i),0≤i≤k 成立。
需要说明的是DFP算法是一种共轭方法。
定理18.2 假定
g(k)≠0
,在DFP算法中,只要矩阵
Hk
是正定的,
Hk+1
就一定是正定的。
DFP算法能够使得 Hk 是正定的,因此它由于秩1算法,但是,处理一些规模较大的非二次型问题时,DFP算法会被“卡住”,迭代无法继续展开,原因是 Hk 矩阵接近称为奇异矩阵了,后续的BFGS算法可以解决这一问题。