org.apache.commons.math3.optim.nonlinear.vector

## Class JacobianMultivariateVectorOptimizer

- java.lang.Object
- - org.apache.commons.math3.optim.BaseOptimizer<PAIR>
  - - org.apache.commons.math3.optim.BaseMultivariateOptimizer<PointVectorValuePair>
    - - org.apache.commons.math3.optim.nonlinear.vector.MultivariateVectorOptimizer
      - - org.apache.commons.math3.optim.nonlinear.vector.JacobianMultivariateVectorOptimizer

Direct Known Subclasses:
  AbstractLeastSquaresOptimizer

    public abstract class JacobianMultivariateVectorOptimizer
    extends MultivariateVectorOptimizer

Base class for implementing optimizers for multivariate vector differentiable functions. It contains boiler-plate code for dealing with Jacobian evaluation. It assumes that the rows of the Jacobian matrix iterate on the model functions while the columns iterate on the parameters; thus, the numbers of rows is equal to the dimension of the `Target` while the number of columns is equal to the dimension of the `InitialGuess`.

Since:
  3.1
Version:
  $Id$

### Field Summary

Fields
`private MultivariateMatrixFunction` `jacobian` Jacobian of the model function.

### Fields inherited from class org.apache.commons.math3.optim.BaseOptimizer

`evaluations, iterations`

### Constructor Summary

Constructors
`protected` `JacobianMultivariateVectorOptimizer(ConvergenceChecker<PointVectorValuePair> checker)`

### Method Summary

Methods
`protected double[][]` `computeJacobian(double[] params)` Computes the Jacobian matrix.
`PointVectorValuePair` `optimize(OptimizationData... optData)` Stores data and performs the optimization.
`private void` `parseOptimizationData(OptimizationData... optData)` Scans the list of (required and optional) optimization data that characterize the problem.

### Methods inherited from class org.apache.commons.math3.optim.nonlinear.vector.MultivariateVectorOptimizer

`computeObjectiveValue, getTarget, getTargetSize, getWeight`

### Methods inherited from class org.apache.commons.math3.optim.BaseMultivariateOptimizer

`getLowerBound, getStartPoint, getUpperBound`

### Methods inherited from class org.apache.commons.math3.optim.BaseOptimizer

`doOptimize, getConvergenceChecker, getEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### jacobian

    private MultivariateMatrixFunction jacobian

Jacobian of the model function.

### Constructor Detail

#### JacobianMultivariateVectorOptimizer

    protected JacobianMultivariateVectorOptimizer(ConvergenceChecker<PointVectorValuePair> checker)

Parameters:
  `checker` - Convergence checker.

### Method Detail

#### computeJacobian

    protected double[][] computeJacobian(double[] params)

Computes the Jacobian matrix.

Parameters:
  `params` - Point at which the Jacobian must be evaluated.
Returns:
  the Jacobian at the specified point.

#### optimize

    public PointVectorValuePair optimize(OptimizationData... optData)
                                  throws TooManyEvaluationsException,
                                         DimensionMismatchException

Stores data and performs the optimization.

Overrides:
  `optimize` in class `MultivariateVectorOptimizer`
Parameters:
  `optData` - Optimization data. The following data will be looked for:
  - `MaxEval`
  - `InitialGuess`
  - `SimpleBounds`
  - `Target`
  - `Weight`
  - `ModelFunction`
  - `ModelFunctionJacobian`
Returns:
  a point/value pair that satifies the convergence criteria.
Throws:
  `TooManyEvaluationsException` - if the maximal number of evaluations is exceeded.
  `DimensionMismatchException` - if the initial guess, target, and weight arguments have inconsistent dimensions.

#### parseOptimizationData

    private void parseOptimizationData(OptimizationData... optData)

Scans the list of (required and optional) optimization data that characterize the problem.

Parameters:
  `optData` - Optimization data. The following data will be looked for:
  - `ModelFunctionJacobian`