BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
ROOT::Minuit2::MnSimplex Class Reference

Description

API class for minimization using the Simplex method, which does not need and use the derivatives of the function, but only function values. More information on the minimization method is available here.

It allows for user interaction: set/change parameters, do minimization, change parameters, re-do minimization etc.;

Definition at line 34 of file MnSimplex.h.

Inheritance diagram for ROOT::Minuit2::MnSimplex:
[legend]
Collaboration diagram for ROOT::Minuit2::MnSimplex:
[legend]

Public Member Functions

 MnSimplex (const FCNBase &fcn, const MnUserParameters &par, const MnUserCovariance &cov, unsigned int stra=1)
 construct from FCNBase + MnUserParameters + MnUserCovariance More...
 
 MnSimplex (const FCNBase &fcn, const MnUserParameters &par, unsigned int stra=1)
 construct from FCNBase + MnUserParameters More...
 
 MnSimplex (const FCNBase &fcn, const MnUserParameterState &par, const MnStrategy &str)
 construct from FCNBase + MnUserParameterState + MnStrategy More...
 
 MnSimplex (const FCNBase &fcn, const std::vector< double > &par, const MnUserCovariance &cov, unsigned int stra=1)
 construct from FCNBase + std::vector for parameters and MnUserCovariance More...
 
 MnSimplex (const FCNBase &fcn, const std::vector< double > &par, const std::vector< double > &err, unsigned int stra=1)
 construct from FCNBase + std::vector for parameters and errors More...
 
 MnSimplex (const FCNBase &fcn, const std::vector< double > &par, unsigned int nrow, const std::vector< double > &cov, unsigned int stra=1)
 construct from FCNBase + std::vector for parameters and covariance More...
 
 MnSimplex (const MnSimplex &migr)
 
 ~MnSimplex ()
 
void Add (const char *, double)
 
void Add (const char *Name, double val, double err)
 
void Add (const char *Name, double val, double err, double, double)
 
const MnUserCovarianceCovariance () const
 
double Error (const char *) const
 
double Error (unsigned int) const
 
std::vector< double > Errors () const
 
double Ext2int (unsigned int, double) const
 
unsigned int ExtOfInt (unsigned int) const
 
virtual const FCNBaseFcnbase () const
 
void Fix (const char *)
 
void Fix (unsigned int)
 
unsigned int Index (const char *) const
 
double Int2ext (unsigned int, double) const
 
unsigned int IntOfExt (unsigned int) const
 
ModularFunctionMinimizerMinimizer ()
 
const ModularFunctionMinimizerMinimizer () const
 
const std::vector< ROOT::Minuit2::MinuitParameter > & MinuitParameters () const
 
const char * Name (unsigned int) const
 
unsigned int NumOfCalls () const
 
virtual FunctionMinimum operator() (unsigned int maxfcn=0, double tolerance=0.1)
 
const MinuitParameterParameter (unsigned int i) const
 
const MnUserParametersParameters () const
 
std::vector< double > Params () const
 
const MnMachinePrecisionPrecision () const
 
void Release (const char *)
 
void Release (unsigned int)
 
void RemoveLimits (const char *)
 
void RemoveLimits (unsigned int)
 
void SetError (const char *, double)
 
void SetError (unsigned int, double)
 
void SetLimits (const char *, double, double)
 
void SetLimits (unsigned int, double, double)
 
void SetPrecision (double)
 
void SetValue (const char *, double)
 
void SetValue (unsigned int, double)
 
const MnUserParameterStateState () const
 
const MnStrategyStrategy () const
 
double Value (const char *) const
 
double Value (unsigned int) const
 
unsigned int VariableParameters () const
 

Protected Attributes

const FCNBasefFCN
 
unsigned int fNumCall
 
MnUserParameterState fState
 
MnStrategy fStrategy
 
bool fUseGrad
 

Private Member Functions

MnSimplexoperator= (const MnSimplex &)
 

Private Attributes

SimplexMinimizer fMinimizer
 

Constructor & Destructor Documentation

◆ MnSimplex() [1/7]

ROOT::Minuit2::MnSimplex::MnSimplex ( const FCNBase fcn,
const std::vector< double > &  par,
const std::vector< double > &  err,
unsigned int  stra = 1 
)
inline

construct from FCNBase + std::vector for parameters and errors

Definition at line 39 of file MnSimplex.h.

39 : MnApplication(fcn, MnUserParameterState(par,err), MnStrategy(stra)), fMinimizer(SimplexMinimizer()) {}
MnApplication(const FCNBase &fcn, const MnUserParameterState &state, const MnStrategy &stra, unsigned int nfcn=0)
constructor from non-gradient functions
SimplexMinimizer fMinimizer
Definition: MnSimplex.h:65

◆ MnSimplex() [2/7]

ROOT::Minuit2::MnSimplex::MnSimplex ( const FCNBase fcn,
const std::vector< double > &  par,
unsigned int  nrow,
const std::vector< double > &  cov,
unsigned int  stra = 1 
)
inline

construct from FCNBase + std::vector for parameters and covariance

Definition at line 42 of file MnSimplex.h.

42 : MnApplication(fcn, MnUserParameterState(par, cov, nrow), MnStrategy(stra)), fMinimizer(SimplexMinimizer()) {}

◆ MnSimplex() [3/7]

ROOT::Minuit2::MnSimplex::MnSimplex ( const FCNBase fcn,
const std::vector< double > &  par,
const MnUserCovariance cov,
unsigned int  stra = 1 
)
inline

construct from FCNBase + std::vector for parameters and MnUserCovariance

Definition at line 45 of file MnSimplex.h.

45 : MnApplication(fcn, MnUserParameterState(par, cov), MnStrategy(stra)), fMinimizer(SimplexMinimizer()) {}

◆ MnSimplex() [4/7]

ROOT::Minuit2::MnSimplex::MnSimplex ( const FCNBase fcn,
const MnUserParameters par,
unsigned int  stra = 1 
)
inline

construct from FCNBase + MnUserParameters

Definition at line 48 of file MnSimplex.h.

48 : MnApplication(fcn, MnUserParameterState(par), MnStrategy(stra)), fMinimizer(SimplexMinimizer()) {}

◆ MnSimplex() [5/7]

ROOT::Minuit2::MnSimplex::MnSimplex ( const FCNBase fcn,
const MnUserParameters par,
const MnUserCovariance cov,
unsigned int  stra = 1 
)
inline

construct from FCNBase + MnUserParameters + MnUserCovariance

Definition at line 51 of file MnSimplex.h.

51 : MnApplication(fcn, MnUserParameterState(par, cov), MnStrategy(stra)), fMinimizer(SimplexMinimizer()) {}

◆ MnSimplex() [6/7]

ROOT::Minuit2::MnSimplex::MnSimplex ( const FCNBase fcn,
const MnUserParameterState par,
const MnStrategy str 
)
inline

construct from FCNBase + MnUserParameterState + MnStrategy

Definition at line 54 of file MnSimplex.h.

54 : MnApplication(fcn, MnUserParameterState(par), str), fMinimizer(SimplexMinimizer()) {}

◆ MnSimplex() [7/7]

ROOT::Minuit2::MnSimplex::MnSimplex ( const MnSimplex migr)
inline

Definition at line 56 of file MnSimplex.h.

56 : MnApplication(migr.Fcnbase(), migr.State(), migr.Strategy(), migr.NumOfCalls()), fMinimizer(migr.fMinimizer) {}

◆ ~MnSimplex()

ROOT::Minuit2::MnSimplex::~MnSimplex ( )
inline

Definition at line 58 of file MnSimplex.h.

58 {}

Member Function Documentation

◆ Add() [1/3]

void ROOT::Minuit2::MnApplication::Add ( const char *  ,
double   
)
inherited

◆ Add() [2/3]

void ROOT::Minuit2::MnApplication::Add ( const char *  Name,
double  val,
double  err 
)
inherited

◆ Add() [3/3]

void ROOT::Minuit2::MnApplication::Add ( const char *  Name,
double  val,
double  err,
double  ,
double   
)
inherited

◆ Covariance()

const MnUserCovariance& ROOT::Minuit2::MnApplication::Covariance ( ) const
inlineinherited

Definition at line 67 of file MnApplication.h.

67 {return fState.Covariance();}
MnUserParameterState fState
Definition: MnApplication.h:75
const MnUserCovariance & Covariance() const

References ROOT::Minuit2::MnUserParameterState::Covariance(), and ROOT::Minuit2::MnApplication::fState.

Here is the call graph for this function:

◆ Error() [1/2]

double ROOT::Minuit2::MnApplication::Error ( const char *  ) const
inherited

◆ Error() [2/2]

double ROOT::Minuit2::MnApplication::Error ( unsigned int  ) const
inherited

◆ Errors()

std::vector<double> ROOT::Minuit2::MnApplication::Errors ( ) const
inherited

◆ Ext2int()

double ROOT::Minuit2::MnApplication::Ext2int ( unsigned int  ,
double   
) const
inherited

◆ ExtOfInt()

unsigned int ROOT::Minuit2::MnApplication::ExtOfInt ( unsigned int  ) const
inherited

◆ Fcnbase()

virtual const FCNBase& ROOT::Minuit2::MnApplication::Fcnbase ( ) const
inlinevirtualinherited

Reimplemented in ROOT::Minuit2::MnFumiliMinimize.

Definition at line 68 of file MnApplication.h.

68 {return fFCN;}

References ROOT::Minuit2::MnApplication::fFCN.

◆ Fix() [1/2]

void ROOT::Minuit2::MnApplication::Fix ( const char *  )
inherited

◆ Fix() [2/2]

void ROOT::Minuit2::MnApplication::Fix ( unsigned int  )
inherited

◆ Index()

unsigned int ROOT::Minuit2::MnApplication::Index ( const char *  ) const
inherited

◆ Int2ext()

double ROOT::Minuit2::MnApplication::Int2ext ( unsigned int  ,
double   
) const
inherited

◆ IntOfExt()

unsigned int ROOT::Minuit2::MnApplication::IntOfExt ( unsigned int  ) const
inherited

◆ Minimizer() [1/2]

ModularFunctionMinimizer& ROOT::Minuit2::MnSimplex::Minimizer ( )
inlinevirtual

Implements ROOT::Minuit2::MnApplication.

Definition at line 60 of file MnSimplex.h.

60 {return fMinimizer;}

References fMinimizer.

◆ Minimizer() [2/2]

const ModularFunctionMinimizer& ROOT::Minuit2::MnSimplex::Minimizer ( ) const
inlinevirtual

Implements ROOT::Minuit2::MnApplication.

Definition at line 61 of file MnSimplex.h.

61 {return fMinimizer;}

References fMinimizer.

◆ MinuitParameters()

const std::vector<ROOT::Minuit2::MinuitParameter>& ROOT::Minuit2::MnApplication::MinuitParameters ( ) const
inherited

◆ Name()

const char* ROOT::Minuit2::MnApplication::Name ( unsigned int  ) const
inherited

◆ NumOfCalls()

unsigned int ROOT::Minuit2::MnApplication::NumOfCalls ( ) const
inlineinherited

Definition at line 70 of file MnApplication.h.

70 {return fNumCall;}

References ROOT::Minuit2::MnApplication::fNumCall.

◆ operator()()

virtual FunctionMinimum ROOT::Minuit2::MnApplication::operator() ( unsigned int  maxfcn = 0,
double  tolerance = 0.1 
)
virtualinherited

Minimize the function

Parameters
maxfcn: max number of function calls (if = 0) default is used which is set to 200 + 100 * npar + 5 * npar**2
tolerance: value used for terminating iteration procedure. For example, MIGRAD will stop iterating when edm (expected distance from minimum) will be: edm < tolerance * 10**-3 Default value of tolerance used is 0.1

Reimplemented in ROOT::Minuit2::MnFumiliMinimize.

◆ operator=()

MnSimplex& ROOT::Minuit2::MnSimplex::operator= ( const MnSimplex )
inlineprivate

Definition at line 70 of file MnSimplex.h.

70 {return *this;}

◆ Parameter()

const MinuitParameter& ROOT::Minuit2::MnApplication::Parameter ( unsigned int  i) const
inherited

◆ Parameters()

const MnUserParameters& ROOT::Minuit2::MnApplication::Parameters ( ) const
inlineinherited

Definition at line 66 of file MnApplication.h.

66 {return fState.Parameters();}
const MnUserParameters & Parameters() const

References ROOT::Minuit2::MnApplication::fState, and ROOT::Minuit2::MnUserParameterState::Parameters().

Here is the call graph for this function:

◆ Params()

std::vector<double> ROOT::Minuit2::MnApplication::Params ( ) const
inherited

◆ Precision()

const MnMachinePrecision& ROOT::Minuit2::MnApplication::Precision ( ) const
inlineinherited

Definition at line 64 of file MnApplication.h.

64 {return fState.Precision();}
const MnMachinePrecision & Precision() const

References ROOT::Minuit2::MnApplication::fState, and ROOT::Minuit2::MnUserParameterState::Precision().

Here is the call graph for this function:

◆ Release() [1/2]

void ROOT::Minuit2::MnApplication::Release ( const char *  )
inherited

◆ Release() [2/2]

void ROOT::Minuit2::MnApplication::Release ( unsigned int  )
inherited

◆ RemoveLimits() [1/2]

void ROOT::Minuit2::MnApplication::RemoveLimits ( const char *  )
inherited

◆ RemoveLimits() [2/2]

void ROOT::Minuit2::MnApplication::RemoveLimits ( unsigned int  )
inherited

◆ SetError() [1/2]

void ROOT::Minuit2::MnApplication::SetError ( const char *  ,
double   
)
inherited

◆ SetError() [2/2]

void ROOT::Minuit2::MnApplication::SetError ( unsigned int  ,
double   
)
inherited

◆ SetLimits() [1/2]

void ROOT::Minuit2::MnApplication::SetLimits ( const char *  ,
double  ,
double   
)
inherited

◆ SetLimits() [2/2]

void ROOT::Minuit2::MnApplication::SetLimits ( unsigned int  ,
double  ,
double   
)
inherited

◆ SetPrecision()

void ROOT::Minuit2::MnApplication::SetPrecision ( double  )
inherited

◆ SetValue() [1/2]

void ROOT::Minuit2::MnApplication::SetValue ( const char *  ,
double   
)
inherited

◆ SetValue() [2/2]

void ROOT::Minuit2::MnApplication::SetValue ( unsigned int  ,
double   
)
inherited

◆ State()

const MnUserParameterState& ROOT::Minuit2::MnApplication::State ( ) const
inlineinherited

Definition at line 65 of file MnApplication.h.

65 {return fState;}

References ROOT::Minuit2::MnApplication::fState.

◆ Strategy()

const MnStrategy& ROOT::Minuit2::MnApplication::Strategy ( ) const
inlineinherited

Definition at line 69 of file MnApplication.h.

69 {return fStrategy;}

References ROOT::Minuit2::MnApplication::fStrategy.

◆ Value() [1/2]

double ROOT::Minuit2::MnApplication::Value ( const char *  ) const
inherited

◆ Value() [2/2]

double ROOT::Minuit2::MnApplication::Value ( unsigned int  ) const
inherited

◆ VariableParameters()

unsigned int ROOT::Minuit2::MnApplication::VariableParameters ( ) const
inherited

Member Data Documentation

◆ fFCN

const FCNBase& ROOT::Minuit2::MnApplication::fFCN
protectedinherited

Definition at line 74 of file MnApplication.h.

Referenced by ROOT::Minuit2::MnApplication::Fcnbase().

◆ fMinimizer

SimplexMinimizer ROOT::Minuit2::MnSimplex::fMinimizer
private

Definition at line 65 of file MnSimplex.h.

Referenced by Minimizer().

◆ fNumCall

unsigned int ROOT::Minuit2::MnApplication::fNumCall
protectedinherited

Definition at line 77 of file MnApplication.h.

Referenced by ROOT::Minuit2::MnApplication::NumOfCalls().

◆ fState

◆ fStrategy

MnStrategy ROOT::Minuit2::MnApplication::fStrategy
protectedinherited

Definition at line 76 of file MnApplication.h.

Referenced by ROOT::Minuit2::MnApplication::Strategy().

◆ fUseGrad

bool ROOT::Minuit2::MnApplication::fUseGrad
protectedinherited

Definition at line 78 of file MnApplication.h.


The documentation for this class was generated from the following file: