Class EquationsBFGS

java.lang.Object
org.ddogleg.optimization.quasinewton.EquationsBFGS

public class EquationsBFGS
extends Object

Equations for updating the approximate Hessian matrix using BFGS equations.

Forward:

  B(k+1) = B(k) + [B(k)*s*s'*B(k)]/[s'*B*s]
                + y*y'/[y'*s]
 

Inverse:

  H(k+1) = (I-p*s*y')*H(k)*(I-p*y*s') + p*s*s'
 
  • B = symmetric positive definite forward n by n matrix.
  • H = symmetric positive definite inverse n by n matrix.
  • s = x(k+1)-x(k) vector change in state.
  • y = x'(k+1)-x'(k) vector change in gradient.
  • p = 1/(y'*s) > 0
  • Constructor Details

    • EquationsBFGS

      public EquationsBFGS()
  • Method Details

    • update

      public static void update​(DMatrixRMaj H, DMatrixRMaj s, DMatrixRMaj y, DMatrixRMaj tempV0, DMatrixRMaj tempV1)
      DFP Hessian update equation. See class description for equations
      Parameters:
      H - symmetric inverse matrix being updated
      s - change in state (new - old)
      y - change in gradient (new - old)
      tempV0 - Storage vector
    • inverseUpdate

      public static void inverseUpdate​(DMatrixRMaj H, DMatrixRMaj s, DMatrixRMaj y, DMatrixRMaj tempV0, DMatrixRMaj tempV1)
      BFGS inverse hessian update equation that orders the multiplications to minimize the number of operations.
      Parameters:
      H - symmetric inverse matrix being updated
      s - change in state
      y - change in gradient
      tempV0 - Storage vector of length N
      tempV1 - Storage vector of length N
    • conjugateUpdateD

      public static void conjugateUpdateD​(DMatrixRMaj C, DMatrixRMaj d, DMatrixRMaj y, double step, DMatrixRMaj tempV0)

      [1] D. Byatt and I. D. Coope and C. J. Price, "Effect of limited precision on the BFGS quasi-Newton algorithm" Proc. of 11th Computational Techniques and Applications Conference CTAC-2003

      Parameters:
      C -
      d -
      y -
      tempV0 -
    • conjugateUpdateC

      public static void conjugateUpdateC​(DMatrixRMaj C, DMatrixRMaj d, DMatrixRMaj y, double step, DMatrixRMaj tempV0, DMatrixRMaj tempV1)

      [1] D. Byatt and I. D. Coope and C. J. Price, "Effect of limited precision on the BFGS quasi-Newton algorithm" Proc. of 11th Computational Techniques and Applications Conference CTAC-2003