Package org.apache.commons.math3.optim.nonlinear.scalar.noderiv

# Class NelderMeadSimplex

java.lang.Object
org.apache.commons.math3.optim.nonlinear.scalar.noderiv.AbstractSimplex
org.apache.commons.math3.optim.nonlinear.scalar.noderiv.NelderMeadSimplex

All Implemented Interfaces:
  `OptimizationData`

public class NelderMeadSimplex extends AbstractSimplex
This class implements the Nelder-Mead simplex algorithm.

Since:
  3.0

## Constructor Summary

Constructors
Constructor
Description
`NelderMeadSimplex(double[] steps)`
Build a Nelder-Mead simplex with default coefficients.
`NelderMeadSimplex(double[][] referenceSimplex)`
Build a Nelder-Mead simplex with default coefficients.
`NelderMeadSimplex(double[][] referenceSimplex, double rho, double khi, double gamma, double sigma)`
Build a Nelder-Mead simplex with specified coefficients.
`NelderMeadSimplex(double[] steps, double rho, double khi, double gamma, double sigma)`
Build a Nelder-Mead simplex with specified coefficients.
`NelderMeadSimplex(int n)`
Build a Nelder-Mead simplex with default coefficients.
`NelderMeadSimplex(int n, double sideLength)`
Build a Nelder-Mead simplex with default coefficients.
`NelderMeadSimplex(int n, double rho, double khi, double gamma, double sigma)`
Build a Nelder-Mead simplex with specified coefficients.
`NelderMeadSimplex(int n, double sideLength, double rho, double khi, double gamma, double sigma)`
Build a Nelder-Mead simplex with specified coefficients.

## Method Summary

Modifier and Type
Method
Description
`void`
`iterate(MultivariateFunction evaluationFunction, Comparator<PointValuePair> comparator)`
Compute the next simplex of the algorithm.

### Methods inherited from class org.apache.commons.math3.optim.nonlinear.scalar.noderiv.AbstractSimplex

`build, evaluate, getDimension, getPoint, getPoints, getSize, replaceWorstPoint, setPoint, setPoints`

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

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

## Constructor Details

### NelderMeadSimplex

public NelderMeadSimplex(int n)
Build a Nelder-Mead simplex with default coefficients. The default coefficients are 1.0 for rho, 2.0 for khi and 0.5 for both gamma and sigma.

Parameters:
  `n` - Dimension of the simplex.

### NelderMeadSimplex

public NelderMeadSimplex(int n, double sideLength)
Build a Nelder-Mead simplex with default coefficients. The default coefficients are 1.0 for rho, 2.0 for khi and 0.5 for both gamma and sigma.

Parameters:
  `n` - Dimension of the simplex.
  `sideLength` - Length of the sides of the default (hypercube) simplex. See `AbstractSimplex(int,double)`.

### NelderMeadSimplex

public NelderMeadSimplex(int n, double sideLength, double rho, double khi, double gamma, double sigma)
Build a Nelder-Mead simplex with specified coefficients.

Parameters:
  `n` - Dimension of the simplex. See `AbstractSimplex(int,double)`.
  `sideLength` - Length of the sides of the default (hypercube) simplex. See `AbstractSimplex(int,double)`.
  `rho` - Reflection coefficient.
  `khi` - Expansion coefficient.
  `gamma` - Contraction coefficient.
  `sigma` - Shrinkage coefficient.

### NelderMeadSimplex

public NelderMeadSimplex(int n, double rho, double khi, double gamma, double sigma)
Build a Nelder-Mead simplex with specified coefficients.

Parameters:
  `n` - Dimension of the simplex. See `AbstractSimplex(int)`.
  `rho` - Reflection coefficient.
  `khi` - Expansion coefficient.
  `gamma` - Contraction coefficient.
  `sigma` - Shrinkage coefficient.

### NelderMeadSimplex

public NelderMeadSimplex(double[] steps)
Build a Nelder-Mead simplex with default coefficients. The default coefficients are 1.0 for rho, 2.0 for khi and 0.5 for both gamma and sigma.

Parameters:
  `steps` - Steps along the canonical axes representing box edges. They may be negative but not zero. See

### NelderMeadSimplex

public NelderMeadSimplex(double[] steps, double rho, double khi, double gamma, double sigma)
Build a Nelder-Mead simplex with specified coefficients.

Parameters:
  `steps` - Steps along the canonical axes representing box edges. They may be negative but not zero. See `AbstractSimplex(double[])`.
  `rho` - Reflection coefficient.
  `khi` - Expansion coefficient.
  `gamma` - Contraction coefficient.
  `sigma` - Shrinkage coefficient.
Throws:
  `IllegalArgumentException` - if one of the steps is zero.

### NelderMeadSimplex

public NelderMeadSimplex(double[][] referenceSimplex)
Build a Nelder-Mead simplex with default coefficients. The default coefficients are 1.0 for rho, 2.0 for khi and 0.5 for both gamma and sigma.

Parameters:
  `referenceSimplex` - Reference simplex. See `AbstractSimplex(double[][])`.

### NelderMeadSimplex

public NelderMeadSimplex(double[][] referenceSimplex, double rho, double khi, double gamma, double sigma)
Build a Nelder-Mead simplex with specified coefficients.

Parameters:
  `referenceSimplex` - Reference simplex. See `AbstractSimplex(double[][])`.
  `rho` - Reflection coefficient.
  `khi` - Expansion coefficient.
  `gamma` - Contraction coefficient.
  `sigma` - Shrinkage coefficient.
Throws:
  `NotStrictlyPositiveException` - if the reference simplex does not contain at least one point.
  `DimensionMismatchException` - if there is a dimension mismatch in the reference simplex.

## Method Details

### iterate

public void iterate(MultivariateFunction evaluationFunction, Comparator<PointValuePair> comparator)
Compute the next simplex of the algorithm.

Specified by:
  `iterate` in class `AbstractSimplex`
Parameters:
  `evaluationFunction` - Evaluation function.
  `comparator` - Comparator to use to sort simplex vertices from best to worst.