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

Class CauchyStep

  • All Implemented Interfaces:
    TrustRegionStep


    public class CauchyStep
    extends java.lang.Object
    implements TrustRegionStep

    Selects the optimal point along the gradient line within the trust region's constraint.

    The negative definite case is not considered because it is impossible when the Hessian is approximated by squaring the Jacobian. For a matrix to be negative definite there must be a vector 'x' which will produce a negative result:
    x'*H*x < 0 --> x'*J'*J*x --> (J*x)'*(J*x)
    which is clearly always ≥ 0

    • Constructor Summary

      Constructors 
      Constructor and Description
      CauchyStep() 
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      void computeStep(double regionRadius, org.ejml.data.DenseMatrix64F step)
      Computes the Cauchy step.
      void init(int numParam, int numFunctions)
      Initialize internal data structures.
      boolean isMaxStep()
      Was a step equal to the regionRadius taken?
      double predictedReduction()
      Returns the predicted reduction for the step.
      void setInputs(org.ejml.data.DenseMatrix64F x, org.ejml.data.DenseMatrix64F residuals, org.ejml.data.DenseMatrix64F J, org.ejml.data.DenseMatrix64F gradient, double fx)
      Specifies the state of the system being optimized.
      • Methods inherited from class java.lang.Object

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

      • CauchyStep

        public CauchyStep()
    • Method Detail

      • init

        public void init(int numParam,
                         int numFunctions)
        Description copied from interface: TrustRegionStep
        Initialize internal data structures. Only needs to be called once.
        Specified by:
        init in interface TrustRegionStep
        Parameters:
        numParam - Number of parameters being optimizes. This is the length of 'x'
        numFunctions - Number of functions. Number of outputs to f(x)
      • setInputs

        public void setInputs(org.ejml.data.DenseMatrix64F x,
                              org.ejml.data.DenseMatrix64F residuals,
                              org.ejml.data.DenseMatrix64F J,
                              org.ejml.data.DenseMatrix64F gradient,
                              double fx)
        Description copied from interface: TrustRegionStep
        Specifies the state of the system being optimized. Call before TrustRegionStep.computeStep(double, org.ejml.data.DenseMatrix64F).
        Specified by:
        setInputs in interface TrustRegionStep
        Parameters:
        x - Sample point being considered.
        residuals - Function output: f(x)
        J - Jacobian: J(x)
        gradient - Gradient: JT(x)*f(x)
        fx - Residual at x: 0.5*fT(x)*f(x)
      • computeStep

        public void computeStep(double regionRadius,
                                org.ejml.data.DenseMatrix64F step)
        Computes the Cauchy step. See comment in class description for why negative definite case is not considered.
        Specified by:
        computeStep in interface TrustRegionStep
        Parameters:
        regionRadius -
        step -
      • predictedReduction

        public double predictedReduction()
        Description copied from interface: TrustRegionStep
        Returns the predicted reduction for the step. A linear model is used to predict the reduction. See class description for
        Specified by:
        predictedReduction in interface TrustRegionStep
        Returns:
        The predicted reduction.
      • isMaxStep

        public boolean isMaxStep()
        Description copied from interface: TrustRegionStep
        Was a step equal to the regionRadius taken?
        Specified by:
        isMaxStep in interface TrustRegionStep
        Returns:
        true if maximum step and false if less than the maximum step

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.