Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.math.optimization.general
Class NonLinearConjugateGradientOptimizer.IdentityPreconditioner

    java.lang.Object
      org.apache.commons.math.optimization.general.NonLinearConjugateGradientOptimizer.IdentityPreconditioner

All Implemented Interfaces:
  Preconditioner

Enclosing class:
  NonLinearConjugateGradientOptimizer

    private static class NonLinearConjugateGradientOptimizer.IdentityPreconditioner

extends Object
implements Preconditioner

Default identity preconditioner.

Constructor Summary
`private` | `NonLinearConjugateGradientOptimizer.IdentityPreconditioner()`

Method Summary
`double[]` | `precondition(double[] variables, double[] r)` Precondition a search direction.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### NonLinearConjugateGradientOptimizer.IdentityPreconditioner

    private NonLinearConjugateGradientOptimizer.IdentityPreconditioner()

Method Detail

### precondition

    public double[] precondition(double[] variables,
                                 double[] r)

  Precondition a search direction.

  The returned preconditioned search direction must be computed fast or the algorithm performances will drop drastically. A classical approach is to compute only the diagonal elements of the hessian and to divide the raw search direction by these elements if they are all positive. If at least one of them is negative, it is safer to return a clone of the raw search direction as if the hessian was the identity matrix. The rationale for this simplified choice is that a negative diagonal element means the current point is far from the optimum and preconditioning will not be efficient anyway in this case.

  Specified by:
    `precondition` in interface `Preconditioner`
  Parameters:
    `variables` - current point at which the search direction was computed
    `r` - raw search direction (i.e. opposite of the gradient)
  Returns:
    approximation of H-1r where H is the objective function hessian

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2003-2013 Apache Software Foundation