Click or drag to resize

DownhillSimplexMinimizer Class

Class DownhillSimplexMinimizer minimizes a multivariable function using the downhill simplex method of Nelder and Mead.
Inheritance Hierarchy
SystemObject
  CenterSpace.NMath.CoreMinimizerBase
    CenterSpace.NMath.CoreDownhillSimplexMinimizer

Namespace:  CenterSpace.NMath.Core
Assembly:  NMath (in NMath.dll) Version: 7.3
Syntax
[SerializableAttribute]
public class DownhillSimplexMinimizer : MinimizerBase, 
	IMultiVariableMinimizer, ICloneable

The DownhillSimplexMinimizer type exposes the following members.

Constructors
  NameDescription
Public methodDownhillSimplexMinimizer
Default constructor.
Public methodDownhillSimplexMinimizer(Double)
Constructs a DownhillSimplexMinimizer instance with the given error tolerance.
Public methodDownhillSimplexMinimizer(Int32)
Constructs a DownhillSimplexMinimizer instance with the given maximum number of iterations.
Public methodDownhillSimplexMinimizer(Double, Int32)
Constructs a DownhillSimplexMinimizer instance with the given error tolerance and maximum number of iterations.
Top
Properties
  NameDescription
Public propertyError
Gets the error associated with the mimimum just computed.
(Inherited from MinimizerBase.)
Public propertyIterations
Gets the number of iterations used in the estimate of the mimimum just computed.
(Inherited from MinimizerBase.)
Public propertyMaxIterations
Gets and sets the maximum number of iterations used in computing minima estimates.
(Inherited from MinimizerBase.)
Public propertyMaxIterationsMet
Returns true if the minimum just computed stopped because the maximum number of iterations was reached; otherwise, false.
(Inherited from MinimizerBase.)
Public propertyTolerance
Gets and sets the error tolerance used in computing minima estimates.
(Inherited from MinimizerBase.)
Public propertyToleranceMet
Returns true if the minimum just computed stopped because the error tolerance was reached; otherwise, false.
(Inherited from MinimizerBase.)
Top
Methods
  NameDescription
Public methodClone
Creates a deep copy of self.
(Overrides MinimizerBaseClone.)
Public methodMinimize(DoubleFunctional, DoubleMatrix)
Minimizes the given function using the starting simplex.
Public methodMinimize(DoubleFunctional, DoubleVector)
Minimizes the given function near the given starting point.
Public methodMinimize(MultiVariableFunction, DoubleMatrix) Obsolete.
Minimizes the given function using the starting simplex.
Public methodMinimize(MultiVariableFunction, DoubleVector) Obsolete.
Minimizes the given function near the given starting point.
Public methodMinimize(DoubleFunctional, DoubleVector, DoubleVector)
Minimizes the given function near the given starting point.
Public methodMinimize(DoubleFunctional, DoubleVector, Double)
Minimizes the given function near the given starting point.
Public methodMinimize(MultiVariableFunction, DoubleVector, DoubleVector) Obsolete.
Minimizes the given function near the given starting point.
Public methodMinimize(MultiVariableFunction, DoubleVector, Double) Obsolete.
Minimizes the given function near the given starting point.
Top
Fields
  NameDescription
Protected fielderror_
The current error.
(Inherited from MinimizerBase.)
Protected fielditer_
The current number of iterations performed.
(Inherited from MinimizerBase.)
Protected fieldmax_
The maximum number of iterations.
(Inherited from MinimizerBase.)
Protected fieldtolerance_
The error tolerance.
(Inherited from MinimizerBase.)
Top
Remarks
The downhill simplex method does not require gradients or other derivative information. A simplex in n-dimensional space consists of n+1 distinct vertices (a triangle in two dimensions, a pyramid in three dimensions, and so on). The procedure involves moving the simplex downhill or, if that is not possible, shrinking its size. Search continues until the decrease in function value is less than the specified tolerance, or a specified maximum number of iterations is reached.
The downhill simplex method is not highly efficient, and is appropriate only for small numbers of variables (approx < 6). Powell's Method is faster in most applications. (See class PowellMinimizer.)
The downhill simplex algorithm is described in Nelder, J. A. and R. Mead (1965), "A Simplex Method for Function Minimization," Computer Journal, Vol. 7, p. 308-313.
See Also