Eq. (34): the two-update direction without stored matrices
ProvedShannoCG.SCONB.bfgsUpdate_mulVec_expansionbfgsconjugate-gradientp2o-batch-p200bp2o-gran-per-chapterp2o-plan-paperp2o-v1quasi-newton
Let be any real matrix and , and let be the BFGS update of with . Then the direction satisfies
The identity shows that the direction only requires the vectors and and a few inner products, so no matrix needs to be stored. It is the starting point of the proof that the double-update methods reduce to Beale's method on a quadratic.
Formalization Note Stated for an arbitrary matrix and arbitrary vectors, with no hypothesis on : both sides use the same (total) quotients.
Preamble
import Mathlib import Definitions.Def_ShannoCG_SCONB_bfgsUpdate open Matrix
Formal statement
namespace ShannoCG.SCONB
/-- Shanno, *Conjugate Gradient Methods with Inexact Searches*, Math. Oper. Res. 3(3) (1978), §IV, p. 250 (PDF 7), eq. (34): for every matrix `Ĥ_k` and vectors `p_k, y_k, g_{k+1}`,
the direction `d_{k+1} = −Ĥ_{k+1} g_{k+1}` with `Ĥ_{k+1}` the update (32) expands as
`d_{k+1} = −Ĥ_k g_{k+1} + (p_k' g_{k+1} / p_k' y_k) Ĥ_k y_k
− ((1 + y_k' Ĥ_k y_k / p_k' y_k)(p_k' g_{k+1} / p_k' y_k) − y_k' Ĥ_k g_{k+1} / p_k' y_k) p_k`.
**Formalization Note.** Stated generically (no quadratic, no symmetry of `H`), as the paper uses
it. No hypothesis on `p ⬝ᵥ y` is needed: both sides use the same (total) quotients. -/
theorem bfgsUpdate_mulVec_expansion {n : ℕ} (H : Matrix (Fin n) (Fin n) ℝ) (p y g : Fin n → ℝ) :
-(bfgsUpdate H p y *ᵥ g) =
-(H *ᵥ g) + ((p ⬝ᵥ g) / (p ⬝ᵥ y)) • (H *ᵥ y)
- ((1 + (y ⬝ᵥ (H *ᵥ y)) / (p ⬝ᵥ y)) * ((p ⬝ᵥ g) / (p ⬝ᵥ y))
- (y ⬝ᵥ (H *ᵥ g)) / (p ⬝ᵥ y)) • p := by sorry
end ShannoCG.SCONB
Source
Shanno, Conjugate Gradient Methods with Inexact Searches, Math. Oper. Res. 3(3) (1978) 244–256, DOI 10.1287/moor.3.3.244, p. 250 (PDF p. 7), §IV, eq. (34)
Human review
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.