Documentation of 'org.ddogleg.optimization.impl.EquationsBFGS' Java class
EquationsBFGS
org.ddogleg.optimization.impl

Class EquationsBFGS



  • public class EquationsBFGS
    extends java.lang.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 Summary

      Constructors 
      Constructor and Description
      EquationsBFGS() 
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method and Description
      static void conjugateUpdateC(org.ejml.data.DenseMatrix64F C, org.ejml.data.DenseMatrix64F d, org.ejml.data.DenseMatrix64F y, double step, org.ejml.data.DenseMatrix64F tempV0, org.ejml.data.DenseMatrix64F tempV1)
      [1] D.
      static void conjugateUpdateD(org.ejml.data.DenseMatrix64F C, org.ejml.data.DenseMatrix64F d, org.ejml.data.DenseMatrix64F y, double step, org.ejml.data.DenseMatrix64F tempV0)
      [1] D.
      static void inverseUpdate(org.ejml.data.DenseMatrix64F H, org.ejml.data.DenseMatrix64F s, org.ejml.data.DenseMatrix64F y, org.ejml.data.DenseMatrix64F tempV0, org.ejml.data.DenseMatrix64F tempV1)
      Inverse update equation that orders the multiplications to minimize the number of operations.
      static void naiveInverseUpdate(org.ejml.data.DenseMatrix64F H, org.ejml.data.DenseMatrix64F s, org.ejml.data.DenseMatrix64F y)
      Naive but easy to visually verify implementation of the inverse BFGS update.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EquationsBFGS

        public EquationsBFGS()
    • Method Detail

      • naiveInverseUpdate

        public static void naiveInverseUpdate(org.ejml.data.DenseMatrix64F H,
                                              org.ejml.data.DenseMatrix64F s,
                                              org.ejml.data.DenseMatrix64F y)
        Naive but easy to visually verify implementation of the inverse BFGS update. Primarily for testing purposes.
        Parameters:
        H - inverse matrix being updated
        s - change in state
        y - change in gradient
      • inverseUpdate

        public static void inverseUpdate(org.ejml.data.DenseMatrix64F H,
                                         org.ejml.data.DenseMatrix64F s,
                                         org.ejml.data.DenseMatrix64F y,
                                         org.ejml.data.DenseMatrix64F tempV0,
                                         org.ejml.data.DenseMatrix64F tempV1)
        Inverse 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(org.ejml.data.DenseMatrix64F C,
                                            org.ejml.data.DenseMatrix64F d,
                                            org.ejml.data.DenseMatrix64F y,
                                            double step,
                                            org.ejml.data.DenseMatrix64F 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(org.ejml.data.DenseMatrix64F C,
                                            org.ejml.data.DenseMatrix64F d,
                                            org.ejml.data.DenseMatrix64F y,
                                            double step,
                                            org.ejml.data.DenseMatrix64F tempV0,
                                            org.ejml.data.DenseMatrix64F 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

        Parameters:
        C -
        d -
        y -
        tempV0 -

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.