Extension of the FCNBase for the Fumili method.
Fumili applies only to minimization problems used for fitting. The method is based on a linearization of the model function negleting second derivatives. User needs to provide the model function. The figure-of-merit describing the difference between the model function and the actual measurements in the case of chi-square is the sum of the squares of the figures-of-merit calculated for each measurement point, which is implemented by the operator() member function. The user still has to implement the calculation of the individual figures-of-merit (which in the majority of the cases will be the (measured Value - the Value predicted by the model)/standard deviation implemented by the FumiliStandardChi2FCN; however this form can become more complicated (see for an example Numerical Recipes' section on "Straight-Line Data with Errors in Both Coordinates")).
- Author
- Andras Zsenei and Lorenzo Moneta, Creation date: 24 Aug 2004
- See also
- MINUIT Tutorial on function minimization, section 5
-
FumiliStandardChi2FCN
Definition at line 49 of file FumiliChi2FCN.h.
|
| FumiliChi2FCN () |
|
| ~FumiliChi2FCN () override |
|
virtual std::vector< double > | Elements (const std::vector< double > &par) const =0 |
| Evaluates the model function for the different measurement points and the Parameter values supplied, calculates a figure-of-merit for each measurement and returns a vector containing the result of this evaluation.
|
|
virtual const std::vector< double > & | GetMeasurement (int Index) const =0 |
| Accessor to the parameters of a given measurement.
|
|
virtual int | GetNumberOfMeasurements () const =0 |
| Accessor to the number of measurements used for calculating the present figure of merit.
|
|
const ParametricFunction * | ModelFunction () const |
| Returns the model function used for the data.
|
|
double | operator() (const std::vector< double > &par) const override |
| Calculates the sum of Elements squared, ie the chi-square.
|
|
void | SetModelFunction (const ParametricFunction &modelFCN) |
| Sets the model function for the data (for example gaussian+linear for a peak)
|
|
double | Up () const override |
| !!!!!!!!!!!! to be commented
|
|
| FumiliFCNBase () |
| Default Constructor.
|
|
| FumiliFCNBase (unsigned int npar) |
| Constructor which initializes the class with the function provided by the user for modeling the data.
|
|
| ~FumiliFCNBase () override |
|
virtual unsigned int | Dimension () |
| return number of function variable (parameters) , i.e.
|
|
virtual void | EvaluateAll (const std::vector< double > &par)=0 |
| Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p The result is cached inside and is return from the FumiliFCNBase::Value , FumiliFCNBase::Gradient and FumiliFCNBase::Hessian methods.
|
|
virtual const std::vector< double > & | Gradient () const |
| Return cached Value of function Gradient estimated previously using the FumiliFCNBase::EvaluateAll method.
|
|
std::vector< double > | Gradient (const std::vector< double > &) const override |
|
std::vector< double > | Hessian (const std::vector< double > &) const override |
| Return Value of the i-th j-th element of the Hessian matrix estimated previously using the FumiliFCNBase::EvaluateAll method.
|
|
virtual double | Hessian (unsigned int row, unsigned int col) const |
|
virtual double | Value () const |
| Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll method.
|
|
| ~FCNGradientBase () override |
|
virtual bool | CheckGradient () const |
|
virtual std::vector< double > | G2 (const std::vector< double > &) const |
| return second derivatives (diagonal of the Hessian matrix)
|
|
virtual std::vector< double > | GradientWithPrevResult (const std::vector< double > ¶meters, double *, double *, double *) const |
|
virtual GradientParameterSpace | gradParameterSpace () const |
|
virtual bool | HasG2 () const |
|
virtual bool | HasHessian () const |
|
| ~FCNBase () override |
|
virtual double | ErrorDef () const |
| Error definition of the function.
|
|
virtual void | SetErrorDef (double) |
| add interface to set dynamically a new error definition Re-implement this function if needed.
|
|
virtual | ~GenericFunction () |
|