Click or drag to resize

LevenbergMarquardtMinimizerNonAllocatingMinimum Method

Non-linear least squares fitting by the Levenberg-Marquardt algorithm.

Namespace: Altaxo.Calc.Optimization
Assembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3448.0 (4.8.3448.0)
Syntax
C#
public NonlinearMinimizationResult Minimum(
	IObjectiveModelNonAllocating objective,
	IReadOnlyList<double> initialGuess,
	IReadOnlyList<double?>? lowerBound,
	IReadOnlyList<double?>? upperBound,
	IReadOnlyList<double>? scales,
	IReadOnlyList<bool>? isFixedByUser,
	CancellationToken cancellationToken,
	Action<int, double, IReadOnlyList<double>>? reportChi2Progress,
	double initialMu,
	double gradientTolerance,
	double stepTolerance,
	double functionTolerance,
	double minimalRSSImprovement,
	int? maximumIterations
)

Parameters

objective  IObjectiveModelNonAllocating
The objective function, including model, observations, and parameter bounds.
initialGuess  IReadOnlyListDouble
The initial guess values.
lowerBound  IReadOnlyListNullableDouble
The lower bounds of the parameters. Must have the same length as initialGuess. Provide if not needed.
upperBound  IReadOnlyListNullableDouble
The upper bounds of the parameters. Must have the same length as initialGuess. Provide if not needed.
scales  IReadOnlyListDouble
The scales of the parameters. Must have the same length as initialGuess. Provide if not needed.
isFixedByUser  IReadOnlyListBoolean
Array indicating which parameters are fixed. Must have the same length as initialGuess. Provide if not needed.
cancellationToken  CancellationToken
Token to cancel the evaluation.
reportChi2Progress  ActionInt32, Double, IReadOnlyListDouble
Callback used to report the number of iterations, Chi² value and current parameter set achieved so far. Can be .
initialMu  Double
The initial damping parameter mu.
gradientTolerance  Double
The stopping threshold for the infinity norm of the gradient vector.
stepTolerance  Double
The stopping threshold for the L2 norm of the change of parameters.
functionTolerance  Double
The stopping threshold for the function value / RSS.
minimalRSSImprovement  Double
The minimal improvement of the Chi² value in 8 iterations. Must be in the range [0,1).
maximumIterations  NullableInt32
The maximum number of iterations. Provide if the number of iterations should be determined automatically. Provide 0 if only a function evaluation should be done.

Return Value

NonlinearMinimizationResult
The result of the Levenberg-Marquardt minimization.
See Also