# LeastSquaresOptimizer Class

Represents an algorithm that minimizes a sum of squares.

## Definition

**Namespace:**Extreme.Mathematics.Optimization

**Assembly:**Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.23

`public abstract class LeastSquaresOptimizer : ManagedIterativeAlgorithm<Vector<double>>`

- Inheritance
- Object → ManagedIterativeAlgorithm<Vector<Double>, Double, SolutionReport<Vector<Double>, Double>> → ManagedIterativeAlgorithm<Vector<Double>> → LeastSquaresOptimizer

- Derived

## Remarks

The LeastSquaresOptimizer class serves as the abstract base class for implementations of nonlinear least squares optimizers. This class cannot be instantiated. Instead, use one of its inherited classes:

Class | Description |
---|---|

Levenberg | Represents an optimizer that implements the Levenberg-Marquardt algorithm. |

Trust | Represents an optimizer that uses the Trust Region Reflective algorithm. |

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

Least | Constructs a new LeastSquaresOptimizer object. |

## Properties

Convergence |
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. |

Estimated |
Gets a value indicating the size of the absolute
error of the result.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Evaluations |
Gets the number of evaluations needed to execute the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Evaluations |
Gets the number of evaluations still available.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Extremum |
Gets or sets the current best approximation to the extremum.
Obsolete. |

Gradient | Gets the VectorConvergenceTest<T> that uses the gradient of the objective function. |

Gradient | Gets or sets the current value of the gradient. |

Has |
Indicates whether the degree of parallelism is a property that is shared
across instances.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Initial | Gets or sets the initial value for the iteration. |

Initial | Gets or sets the initial size of the trust region. |

Iterations |
Gets the number of iterations needed by the
algorithm to reach the desired accuracy.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Iterations |
Gets the number of iterations remaining.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Jacobian | Gets or sets the number of times the Jacobian was evaluated. |

Jacobian | Gets or sets a delegate that computes the Jacobian of the problem. |

Last | Gets the last correction to the solution of the system of equations. |

Lower | Gets or sets the vector of lower bounds for the solution. |

Max |
Gets or sets the maximum degree of parallelism enabled by this instance.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Max |
Gets or sets the maximum number of evaluations during the calculation.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Max | Gets 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. |

Minimum | Gets or sets the current value of the objective function. |

Min |
Gets or sets the minimum iterations that have to be performed.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Number | Gets or sets the number of functions in the problem. |

Objective | Gets or sets a delegate that computes the function values of the problem. |

Parallel |
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>) |

Solution |
Gets the result of an algorithm after it has executed.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Solution | Gets the VectorConvergenceTest<T> that uses the approximate solution. |

Status |
Gets the AlgorithmStatus following
an execution of the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Throw |
Gets or sets a value indicating whether to throw an
exception when the algorithm fails to converge.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Upper | Gets or sets the upper bounds for the solution. |

Value |
Gets or sets the current value of the objective function.
Obsolete. |

Value | Gets the SimpleConvergenceTest<T> that uses the value of the target functions. |

Variance | Gets the variance-covariance matrix of the solution. |

## Methods

Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |

Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object) |

Find | Runs the Levenberg-Marquardt algorithm and returns the result. |

Get | Serves as the default hash function. (Inherited from Object) |

Get | Gets the Type of the current instance. (Inherited from Object) |

Get | Computes the variance-covariance matrix of the solution. |

Increment |
Increments the number of evaluations by one.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Increment |
Increments the number of evaluations by the specified amount.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Iterate |
Performs one iteration of the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Iterated |
Performs tasks after the iteration is completed, but before
the status of the algorithm is finalized.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Memberwise | Creates a shallow copy of the current Object. (Inherited from Object) |

OnConvergence |
Performs any tasks after the main algorithm has converged.
(Overrides ManagedIterativeAlgorithm<T, TError, TReport>.OnConvergence()) |

OnFailure |
Performs any tasks after the main algorithm has failed to converge.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

OnInit |
Performs initialization before the first iteration.
(Overrides ManagedIterativeAlgorithm<T, TError, TReport>.OnInit()) |

Report |
Records the results of an algorithm in case it fails.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Report |
Records the results of an algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Report |
Records the results of a algorithm that converged successfully.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Reset |
Resets the number of evaluations to zero.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Restart |
Prepares the algorithm to be run again with possibly different inputs.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Run() |
Runs the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Run( |
Runs the algorithm using the specified parallelization options.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Set | Sets the value of the objective function at the minimum to the supplied value. |

Set |
Sets the results of an algorithm's execution.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Set | Sets the objective function as a list of symbolic expressions. |

Set | Sets the objective function as a list of symbolic expressions. |

Test |
Checks whether the algorithm has converged.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Thread |
Increments the number of evaluations by one.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Thread |
Increments the number of evaluations by the specified amount.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

Throw |
Interprets the AlgorithmStatus and
throws the appropriate exception.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |

ToString | Returns a string that represents the current object. (Inherited from Object) |