DFP法
とし、 B k {\displaystyle B_{k}} は対称正定値行列とした。
対応する逆ヘッセ行列 H k = B k − 1 {\displaystyle H_{k}=B_{k}^{-1}} の近似値は、以下の式により与えられる。
H k + 1 = H k − H k y k y k T H k y k T H k y k + s k s k T y k T s k . {\displaystyle H_{k+1}=H_{k}-{\frac {H_{k}y_{k}y_{k}^{T}H_{k}}{y_{k}^{T}H_{k}y_{k}}}+{\frac {s_{k}s_{k}^{T}}{y_{k}^{T}s_{k}}}.}
B {\displaystyle B} は正定値行列と仮定されるため、 s k T {\displaystyle s_{k}^{T}} と y {\displaystyle y} は以下の曲率条件を満たす必要がある。
s k T y k = s k T B s k > 0 {\displaystyle s_{k}^{T}y_{k}=s_{k}^{T}Bs_{k}>0}
DFP法は非常に効果的だったものの、すぐにその双対である(yとsの役割が入れ替わっている)BFGS法に置き換えられた。
∇ f ( x k + s k ) = ∇ f ( x k ) + B s k + ... {\displaystyle \nabla f(x_{k}+s_{k})=\nabla f(x_{k})+Bs_{k}+\dots }
これを B {\displaystyle B} の更新に用いる。
下に示すDFP公式は、対称かつ正定値であり、現在の近似値 B k {\displaystyle B_{k}} に最も近い解を与える。
B k + 1 = ( I − γ k y k s k T ) B k ( I − γ k s k y k T ) + γ k y k y k T , {\displaystyle B_{k+1}=(I-\gamma _{k}y_{k}s_{k}^{T})B_{k}(I-\gamma _{k}s_{k}y_{k}^{T})+\gamma _{k}y_{k}y_{k}^{T},}
ここで、
y k = ∇ f ( x k + s k ) − ∇ f ( x k ) {\displaystyle y_{k}=\nabla f(x_{k}+s_{k})-\nabla f(x_{k})}
γ k = 1 y k T s k {\displaystyle \gamma _{k}={\frac {1}{y_{k}^{T}s_{k}}}}