BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
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 has to be implemented by the user in a subclass of FumiliFCNBase. For an example see the FumiliChi2FCN and FumiliStandardChi2FCN classes.
Definition at line 47 of file FumiliFCNBase.h.
Public Member Functions | |
FumiliFCNBase () | |
FumiliFCNBase (unsigned int npar) | |
virtual | ~FumiliFCNBase () |
virtual unsigned int | Dimension () |
virtual double | ErrorDef () const |
virtual void | EvaluateAll (const std::vector< double > &par)=0 |
virtual const std::vector< double > & | Gradient () const |
virtual double | Hessian (unsigned int row, unsigned int col) const |
virtual double | operator() (const std::vector< double > &x) const =0 |
virtual void | SetErrorDef (double) |
virtual double | Up () const =0 |
virtual double | Value () const |
Protected Member Functions | |
std::vector< double > & | Gradient () |
std::vector< double > & | Hessian () |
virtual void | InitAndReset (unsigned int npar) |
void | SetFCNValue (double value) |
Private Attributes | |
std::vector< double > | fGradient |
std::vector< double > | fHessian |
unsigned int | fNumberOfParameters |
double | fValue |
|
inline |
Default Constructor. Need in this case to create when implementing EvaluateAll the Gradient and Hessian vectors with the right size
Definition at line 55 of file FumiliFCNBase.h.
|
inline |
Constructor which initializes the class with the function provided by the user for modeling the data.
npar | the number of parameters |
Definition at line 70 of file FumiliFCNBase.h.
|
inlinevirtual |
Definition at line 83 of file FumiliFCNBase.h.
|
inlinevirtual |
return number of function variable (parameters) , i.e. function dimension
Definition at line 132 of file FumiliFCNBase.h.
References fNumberOfParameters.
|
inlinevirtualinherited |
Error definition of the function. MINUIT defines Parameter errors as the change in Parameter Value required to change the function Value by up. Normally, for chisquared fits it is 1, and for negative log likelihood, its Value is 0.5. If the user wants instead the 2-sigma errors for chisquared fits, it becomes 4, as Chi2(x+n*sigma) = Chi2(x) + n*n.
Comment a little bit better with links!!!!!!!!!!!!!!!!!
Definition at line 93 of file FCNBase.h.
References ROOT::Minuit2::FCNBase::Up().
|
pure virtual |
Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p The resul is cached inside and is return from the FumiliFCNBase::Value , FumiliFCNBase::Gradient and FumiliFCNBase::Hessian methods
par | vector of parameters |
Implemented in ROOT::Minuit2::FumiliFCNAdapter< Function >, ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN, and ROOT::Minuit2::FumiliStandardChi2FCN.
|
inlineprotected |
|
inlinevirtual |
Return cached Value of function Gradient estimated previously using the FumiliFCNBase::EvaluateAll method
Definition at line 112 of file FumiliFCNBase.h.
References fGradient.
|
inlineprotected |
|
inlinevirtual |
Return Value of the i-th j-th element of the Hessian matrix estimated previously using the FumiliFCNBase::EvaluateAll method
row | row Index of the matrix |
col | col Index of the matrix |
Definition at line 120 of file FumiliFCNBase.h.
|
inlineprotectedvirtual |
initialize and reset values of gradien and Hessian
Definition at line 140 of file FumiliFCNBase.h.
References fGradient, fHessian, and fNumberOfParameters.
|
pure virtualinherited |
The meaning of the vector of parameters is of course defined by the user, who uses the values of those parameters to calculate their function Value. The order and the position of these parameters is strictly the one specified by the user when supplying the starting values for minimization. The starting values must be specified by the user, either via an std::vector<double> or the MnUserParameters supplied as input to the MINUIT minimizers such as VariableMetricMinimizer or MnMigrad. Later values are determined by MINUIT as it searches for the Minimum or performs whatever analysis is requested by the user.
par | function parameters as defined by the user. |
Implements ROOT::Minuit2::GenericFunction.
Implemented in ROOT::Minuit2::ParametricFunction, ROOT::Minuit2::FumiliFCNAdapter< Function >, ROOT::Minuit2::FCNGradAdapter< Function >, ROOT::Minuit2::FCNAdapter< Function >, ROOT::Minuit2::FumiliMaximumLikelihoodFCN, and ROOT::Minuit2::FumiliChi2FCN.
|
inlinevirtualinherited |
add interface to set dynamically a new error definition Re-implement this function if needed.
Reimplemented in ROOT::Minuit2::FumiliFCNAdapter< Function >, and ROOT::Minuit2::FCNAdapter< Function >.
|
inlineprotected |
|
pure virtualinherited |
Error definition of the function. MINUIT defines Parameter errors as the change in Parameter Value required to change the function Value by up. Normally, for chisquared fits it is 1, and for negative log likelihood, its Value is 0.5. If the user wants instead the 2-sigma errors for chisquared fits, it becomes 4, as Chi2(x+n*sigma) = Chi2(x) + n*n.
Implemented in ROOT::Minuit2::FumiliMaximumLikelihoodFCN, ROOT::Minuit2::FumiliFCNAdapter< Function >, ROOT::Minuit2::FumiliChi2FCN, ROOT::Minuit2::FCNGradAdapter< Function >, and ROOT::Minuit2::FCNAdapter< Function >.
Referenced by ROOT::Minuit2::FCNBase::ErrorDef().
|
inlinevirtual |
Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll method
Definition at line 106 of file FumiliFCNBase.h.
References fValue.
|
private |
Definition at line 160 of file FumiliFCNBase.h.
Referenced by Gradient(), Hessian(), and InitAndReset().
|
private |
Definition at line 161 of file FumiliFCNBase.h.
Referenced by Hessian(), and InitAndReset().
|
private |
Definition at line 158 of file FumiliFCNBase.h.
Referenced by Dimension(), and InitAndReset().
|
private |
Definition at line 159 of file FumiliFCNBase.h.
Referenced by SetFCNValue(), and Value().