Click or drag to resize

NonlinearObjectiveFunctionNonAllocatingBase Class

Base implementation for a nonlinear objective model that supports allocation-free evaluation for Levenberg-Marquardt-style algorithms.
Inheritance Hierarchy
SystemObject
  Altaxo.Calc.Optimization.ObjectiveFunctionsNonlinearObjectiveFunctionNonAllocatingBase
    Altaxo.Calc.Optimization.ObjectiveFunctionsNonlinearObjectiveFunctionNonAllocating
    Altaxo.Calc.Regression.NonlinearNonlinearModelOfFitEnsemble

Namespace: Altaxo.Calc.Optimization.ObjectiveFunctions
Assembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3572.0 (4.8.3572.0)
Syntax
C#
public abstract class NonlinearObjectiveFunctionNonAllocatingBase : IObjectiveModel, 
	IObjectiveModelEvaluation, IObjectiveModelNonAllocating

The NonlinearObjectiveFunctionNonAllocatingBase type exposes the following members.

Constructors
 NameDescription
Public methodNonlinearObjectiveFunctionNonAllocatingBase Initializes a new instance of the NonlinearObjectiveFunctionNonAllocatingBase class.
Top
Properties
 NameDescription
Public propertyDegreeOfFreedom Get the degree of freedom.
Public propertyFunctionEvaluations Get the number of calls to function.
Public propertyGradient Get the Gradient vector. G = J'(y - f(x; p))
Public propertyHessian Get the approximated Hessian matrix. H = J'J
Public propertyIsFixedByUser Gets whether parameters are fixed or free (by the user).
Public propertyIsFixedByUserOrBoundary Gets or sets an array of the same length as the parameter array. If an element in this vector is , that parameter is either fixed by the user or fixed because the corresponding parameter has reached a boundary. This array is updated only at the end of the minimization process.
Public propertyIsGradientSupported Gets a value indicating whether the gradient can be provided by the model.
Public propertyIsHessianSupported Gets a value indicating whether the Hessian can be provided by the model.
Public propertyJacobianEvaluations Get the number of calls to jacobian.
Public propertyModelValues Get the y-values of the fitted model that correspond to the independent values.
Public propertyNegativeGradient Gets the negative gradient vector. -G = -J'(y - f(x; p)).
Public propertyNumberOfObservations Gets the number of observations.
Public propertyNumberOfParameters Gets the number of unknown parameters.
Public propertyObservedY Get the y-values of the observations.
Public propertyPoint Get the values of the parameters.
Public propertySigmaSquare Gets Chi²/(N-F+1).
Public propertyValue Get the residual sum of squares.
Public propertyWeights Gets or sets the values of the weights for the observations.
Top
Methods
 NameDescription
Public methodCreateNew Creates a new instance of the objective model with identical configuration but independent state.
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Public methodEvaluateAt(IReadOnlyListDouble) Evaluates the model at the given parameter vector and invalidates cached dependent values.
Public methodEvaluateAt(VectorDouble) Evaluates the model at the given parameter vector, updating dependent values.
Protected methodEvaluateFunction Evaluates the objective function value and updates cached values.
Protected methodEvaluateJacobian Evaluates the Jacobian and updates cached Jacobian-derived values (gradient and Hessian).
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
Public methodFork Creates a forked copy of the model with independent mutable state.
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Protected methodNumericalJacobian Numerically approximates the Jacobian at the specified parameter vector.
Public methodSetParameters(IReadOnlyListDouble, IReadOnlyListBoolean) Sets model parameters and optional fixed flags for individual parameters.
Public methodSetParameters(VectorDouble, ListBoolean) Sets the model parameters and optional fixed flags for individual parameters.
Public methodToObjectiveFunction Converts this model to an objective function suitable for minimizers.
Public methodToStringReturns a string that represents the current object.
(Inherited from Object)
Top
Fields
 NameDescription
Protected field_accuracyOrder The desired accuracy order to evaluate the jacobian by numerical approximaiton.
Protected field_coefficients Coefficients for the model.
Protected field_f1 Temporary function-evaluation vectors used for numerical differentiation.
Protected field_f2 Temporary function-evaluation vectors used for numerical differentiation.
Protected field_f3 Temporary function-evaluation vectors used for numerical differentiation.
Protected field_f4 Temporary function-evaluation vectors used for numerical differentiation.
Protected field_f5 Temporary function-evaluation vectors used for numerical differentiation.
Protected field_f6 Temporary function-evaluation vectors used for numerical differentiation.
Protected field_functionValue The residual sum of squares, residuals * residuals.
Protected field_hasFunctionValue Indicates if the function value has been computed.
Protected field_hasJacobianValue Indicates if the jacobian has been computed.
Protected field_hessianValue The Hessian matrix.
Protected field_jacobianValue The Jacobian matrix.
Protected field_jacobianValueTransposed The Jacobian matrix, transposed.
Protected field_negativeGradientValue The Gradient vector.
Protected field_residuals The weighted error values.
Protected fieldL Gets or sets the Cholesky factorization of the weights = LL'.
Top
Remarks
This class provides cached values for the function value, Jacobian-derived quantities, and auxiliary vectors/matrices to minimize allocations during repeated evaluations.
See Also