TrustRegionReflectiveOptimizer Class

Implements the Levenberg-Marquardt algorithm for non-linear least-squares.

Definition

Namespace: Numerics.NET.Optimization
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.0.3
C#
public sealed class TrustRegionReflectiveOptimizer : LeastSquaresOptimizer
Inheritance
Object  →  ManagedIterativeAlgorithm<Vector<Double>, Double, SolutionReport<Vector<Double>, Double>>  →  ManagedIterativeAlgorithm<Vector<Double>>  →  LeastSquaresOptimizer  →  TrustRegionReflectiveOptimizer

Remarks

Use the TrustRegionReflectiveOptimizer class to optimize a function that is a sum or weighted sum of squares of functions. This optimizer tends to work somewhat better than the LevenbergMarquardtOptimizer class when the problem is bounded.

The TrustRegionReflectiveOptimizer class inherits from the LeastSquaresOptimizer class.

To verify that the algorithm terminated normally, you can inspect the Status property, which is of type AlgorithmStatus. A value of Converged indicates that the algorithm terminated normally. However, it is still possible that the algorithm didn't converge to the actual best fit. A visual inspection is always recommended.

Constructors

TrustRegionReflectiveOptimizer Constructs a new TrustRegionReflectiveOptimizer object.

Properties

ConvergenceTests Gets the collection of convergence tests for the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
Dimensions Gets or sets the number of dimensions of the optimization problem.
(Inherited from LeastSquaresOptimizer)
EstimatedError Gets a value indicating the size of the absolute error of the result.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
EvaluationsNeeded Gets the number of evaluations needed to execute the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
GradientTest Gets the VectorConvergenceTest<T> that uses the gradient of the objective function.
(Inherited from LeastSquaresOptimizer)
GradientVector Gets or sets the current value of the gradient.
(Inherited from LeastSquaresOptimizer)
HasSharedDegreeOfParallelism Indicates whether the degree of parallelism is a property that is shared across instances.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
InitialGuess Gets or sets the initial value for the iteration.
(Inherited from LeastSquaresOptimizer)
InitialTrustRegionSize Gets or sets the initial size of the trust region.
(Inherited from LeastSquaresOptimizer)
IterationsNeeded Gets the number of iterations needed by the algorithm to reach the desired accuracy.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
JacobianEvaluationsNeeded Gets or sets the number of times the Jacobian was evaluated.
(Inherited from LeastSquaresOptimizer)
JacobianFunction Gets or sets a delegate that computes the Jacobian of the problem.
(Inherited from LeastSquaresOptimizer)
LowerBounds Gets or sets the vector of lower bounds for the solution.
(Inherited from LeastSquaresOptimizer)
MaxDegreeOfParallelism Gets or sets the maximum degree of parallelism enabled by this instance.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
MaxEvaluations Gets or sets the maximum number of evaluations during the calculation.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
MaxIterationsGets or sets the maximum number of iterations to use when approximating the roots of the target function.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
Minimum Gets or sets the current best approximation to the minimum.
(Inherited from LeastSquaresOptimizer)
MinimumValue Gets or sets the current value of the objective function.
(Inherited from LeastSquaresOptimizer)
MinIterations Gets or sets the minimum iterations that have to be performed.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
NumberOfFunctions Gets or sets the number of functions in the problem.
(Inherited from LeastSquaresOptimizer)
ObjectiveFunction Gets or sets a delegate that computes the function values of the problem.
(Inherited from LeastSquaresOptimizer)
ParallelOptions Gets or sets the configuration for the parallel behavior of the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
Result Gets the result of an algorithm after it has executed.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
SolutionReport Gets the result of an algorithm after it has executed.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
SolutionTest Gets the VectorConvergenceTest<T> that uses the approximate solution.
(Inherited from LeastSquaresOptimizer)
Status Gets the AlgorithmStatus following an execution of the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
ThrowExceptionOnFailure Gets or sets whether to throw an exception when the algorithm fails to converge.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>)
UpperBounds Gets or sets the upper bounds for the solution.
(Inherited from LeastSquaresOptimizer)
ValueTest Gets the SimpleConvergenceTest<T> that uses the value of the target functions.
(Inherited from LeastSquaresOptimizer)
VarianceCovarianceMatrix Gets the variance-covariance matrix of the solution.
(Inherited from LeastSquaresOptimizer)

Methods

EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
FindMinimum Runs the Levenberg-Marquardt algorithm and returns the result.
(Inherited from LeastSquaresOptimizer)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
SetSymbolicObjectiveFunction(Expression<Func<Vector<Double>, Double>>[]) Sets the objective function as a list of symbolic expressions.
(Inherited from LeastSquaresOptimizer)
SetSymbolicObjectiveFunction(IList<Expression<Func<Vector<Double>, Double>>>) Sets the objective function as a list of symbolic expressions.
(Inherited from LeastSquaresOptimizer)
ToStringReturns a string that represents the current object.
(Inherited from Object)

See Also