LevenbergMarquardt constructor
LevenbergMarquardt(
- ParametrizedUnaryFunction<
double> parametrizedFunction, { - double? initialValue,
- dynamic initialValues,
- double? minValue,
- dynamic minValues,
- double? maxValue,
- dynamic maxValues,
- double gradientDifference = 1e-1,
- dynamic gradientDifferences,
- double damping = 1e-2,
- double dampingStepDown = 9.0,
- double dampingStepUp = 11.0,
- bool centralDifference = false,
- double improvementThreshold = 1e-3,
- double errorTolerance = 1e-7,
- int maxIterations = 100,
Implementation
LevenbergMarquardt(
this.parametrizedFunction, {
double? initialValue,
dynamic initialValues,
double? minValue,
dynamic minValues,
double? maxValue,
dynamic maxValues,
double gradientDifference = 1e-1,
dynamic gradientDifferences,
this.damping = 1e-2,
this.dampingStepDown = 9.0,
this.dampingStepUp = 11.0,
this.centralDifference = false,
this.improvementThreshold = 1e-3,
this.errorTolerance = 1e-7,
this.maxIterations = 100,
}) : initialValues = parametrizedFunction.toVector(initialValues,
defaultParam: initialValue),
minValues = parametrizedFunction.toVector(minValues,
defaultParam: minValue ?? DataType.integer.safeMin.toDouble()),
maxValues = parametrizedFunction.toVector(maxValues,
defaultParam: maxValue ?? DataType.integer.safeMax.toDouble()),
gradientDifferences = parametrizedFunction.toVector(gradientDifferences,
defaultParam: gradientDifference) {
if (parametrizedFunction.count == 0) {
throw ArgumentError.value(parametrizedFunction, 'parametrizedFunction',
'Expected at least 1 parameter.');
}
if (damping <= 0.0) {
throw ArgumentError.value(
damping, 'damping', 'Expected positive damping factor.');
}
}