![]() |
ROOT
6.06/09
Reference Guide
|
User class for performing function minimization.
It will use the Brent Method for function minimization in a given interval. First, a grid search is used to bracket the minimum value with the a step size = (xmax-xmin)/npx. The step size can be controlled via the SetNpx() function. A default value of npx = 100 is used. The default value con be changed using the static method SetDefaultNpx. If the function is unimodal or if its extrema are far apart, setting the fNpx to a small value speeds the algorithm up many times. Then, Brent's method is applied on the bracketed interval. If the Brent method fails to converge the bracketing is repeted on the latest best estimate of the interval. The procedure is repeted with a maximum value (default =10) which can be set for all BrentRootFinder classes with the method SetDefaultNSearch
This class is implemented from TF1::GetMinimum.
To use the class, three steps have to be taken:
If another minimization is to be performed, repeat the last two steps.
Definition at line 77 of file BrentMinimizer1D.h.
Public Member Functions | |
BrentMinimizer1D () | |
Default Constructor. More... | |
virtual | ~BrentMinimizer1D () |
Default Destructor. More... | |
virtual double | XMinimum () const |
Return current estimate of the position of the minimum. More... | |
virtual double | XLower () const |
Return current lower bound of the minimization interval. More... | |
virtual double | XUpper () const |
Return current upper bound of the minimization interval. More... | |
virtual double | FValMinimum () const |
Return function value at current estimate of the minimum. More... | |
virtual double | FValLower () const |
Return function value at current lower bound of the minimization interval. More... | |
virtual double | FValUpper () const |
Return function value at current upper bound of the minimization interval. More... | |
virtual bool | Minimize (int maxIter, double absTol=1.E-8, double relTol=1.E-10) |
Find minimum position iterating until convergence specified by the absolute and relative tolerance or the maximum number of iteration is reached. More... | |
virtual int | Iterations () const |
Return number of iteration used to find minimum. More... | |
virtual const char * | Name () const |
Return name of minimization algorithm ("BrentMinimizer1D") More... | |
void | SetFunction (const ROOT::Math::IGenFunction &f, double xlow, double xup) |
Sets function to be minimized. More... | |
void | SetNpx (int npx) |
Set the number of point used to bracket root using a grid. More... | |
void | SetLogScan (bool on) |
Set a log grid scan (default is equidistant bins) will work only if xlow > 0. More... | |
int | Status () const |
Returns status of last estimate. More... | |
Static Public Member Functions | |
static void | SetDefaultNpx (int npx) |
set number of default Npx used at construction time (when SetNpx is not called) Default value is 100 More... | |
static void | SetDefaultNSearch (int n) |
set number of times the bracketing search in combination with is done to find a good interval Default value is 10 More... | |
Private Attributes | |
const IGenFunction * | fFunction |
bool | fLogScan |
int | fNIter |
int | fNpx |
int | fStatus |
double | fXMin |
double | fXMax |
double | fXMinimum |
Additional Inherited Members | |
![]() | |
IMinimizer1D () | |
virtual | ~IMinimizer1D () |
#include <Math/BrentMinimizer1D.h>
ROOT::Math::BrentMinimizer1D::BrentMinimizer1D | ( | ) |
Default Constructor.
Definition at line 45 of file BrentMinimizer1D.cxx.
|
inlinevirtual |
Default Destructor.
Definition at line 85 of file BrentMinimizer1D.h.
|
virtual |
Return function value at current lower bound of the minimization interval.
Implements ROOT::Math::IMinimizer1D.
Definition at line 82 of file BrentMinimizer1D.cxx.
|
virtual |
Return function value at current estimate of the minimum.
Implements ROOT::Math::IMinimizer1D.
Definition at line 79 of file BrentMinimizer1D.cxx.
Referenced by TEfficiency::BetaShortestInterval(), TF1::GetMaximum(), TF1::GetMinimum(), and RooStats::BayesianCalculator::GetPosteriorFunction().
|
virtual |
Return function value at current upper bound of the minimization interval.
Implements ROOT::Math::IMinimizer1D.
Definition at line 85 of file BrentMinimizer1D.cxx.
|
inlinevirtual |
Return number of iteration used to find minimum.
Implements ROOT::Math::IMinimizer1D.
Definition at line 117 of file BrentMinimizer1D.h.
|
virtual |
Find minimum position iterating until convergence specified by the absolute and relative tolerance or the maximum number of iteration is reached.
Return true if iterations converged successfully @param maxIter maximum number of iterations. @param absTol desired absolute error in the minimum position (default 1.E-8) @param absTol desired relative error in the minimum position (default = 1.E-10)
Implements ROOT::Math::IMinimizer1D.
Definition at line 88 of file BrentMinimizer1D.cxx.
Referenced by TEfficiency::BetaShortestInterval(), TF1::GetMaximum(), TF1::GetMaximumX(), TF1::GetMinimum(), TF1::GetMinimumX(), and RooStats::BayesianCalculator::GetPosteriorFunction().
|
virtual |
Return name of minimization algorithm ("BrentMinimizer1D")
Implements ROOT::Math::IMinimizer1D.
Definition at line 136 of file BrentMinimizer1D.cxx.
|
static |
set number of default Npx used at construction time (when SetNpx is not called) Default value is 100
Definition at line 55 of file BrentMinimizer1D.cxx.
|
static |
set number of times the bracketing search in combination with is done to find a good interval Default value is 10
Definition at line 57 of file BrentMinimizer1D.cxx.
void ROOT::Math::BrentMinimizer1D::SetFunction | ( | const ROOT::Math::IGenFunction & | f, |
double | xlow, | ||
double | xup | ||
) |
Sets function to be minimized.
@param f Function to be minimized. @param xlow Lower bound of the search interval. @param xup Upper bound of the search interval.
Definition at line 60 of file BrentMinimizer1D.cxx.
Referenced by TEfficiency::BetaShortestInterval(), TF1::GetMaximum(), TF1::GetMaximumX(), TF1::GetMinimum(), TF1::GetMinimumX(), and RooStats::BayesianCalculator::GetPosteriorFunction().
|
inline |
Set a log grid scan (default is equidistant bins) will work only if xlow > 0.
Definition at line 137 of file BrentMinimizer1D.h.
Referenced by TF1::GetMaximum(), TF1::GetMaximumX(), TF1::GetMinimum(), and TF1::GetMinimumX().
|
inline |
Set the number of point used to bracket root using a grid.
Definition at line 131 of file BrentMinimizer1D.h.
Referenced by TEfficiency::BetaShortestInterval(), TF1::GetMaximum(), TF1::GetMaximumX(), TF1::GetMinimum(), and TF1::GetMinimumX().
|
inlinevirtual |
Returns status of last estimate.
If = 0 is OK
Implements ROOT::Math::IMinimizer1D.
Definition at line 141 of file BrentMinimizer1D.h.
|
inlinevirtual |
Return current lower bound of the minimization interval.
Implements ROOT::Math::IMinimizer1D.
Definition at line 93 of file BrentMinimizer1D.h.
|
inlinevirtual |
Return current estimate of the position of the minimum.
Implements ROOT::Math::IMinimizer1D.
Definition at line 90 of file BrentMinimizer1D.h.
Referenced by TEfficiency::BetaShortestInterval(), TF1::GetMaximumX(), and TF1::GetMinimumX().
|
inlinevirtual |
Return current upper bound of the minimization interval.
Implements ROOT::Math::IMinimizer1D.
Definition at line 96 of file BrentMinimizer1D.h.
|
private |
Definition at line 157 of file BrentMinimizer1D.h.
Referenced by FValLower(), FValMinimum(), FValUpper(), Minimize(), and SetFunction().
|
private |
Definition at line 158 of file BrentMinimizer1D.h.
Referenced by Minimize(), and SetLogScan().
|
private |
Definition at line 159 of file BrentMinimizer1D.h.
Referenced by Iterations(), and Minimize().
|
private |
Definition at line 160 of file BrentMinimizer1D.h.
Referenced by BrentMinimizer1D(), Minimize(), and SetNpx().
|
private |
Definition at line 161 of file BrentMinimizer1D.h.
Referenced by Minimize(), SetFunction(), and Status().
|
private |
Definition at line 163 of file BrentMinimizer1D.h.
Referenced by FValUpper(), Minimize(), SetFunction(), and XUpper().
|
private |
Definition at line 162 of file BrentMinimizer1D.h.
Referenced by FValLower(), Minimize(), SetFunction(), and XLower().
|
private |
Definition at line 164 of file BrentMinimizer1D.h.
Referenced by FValMinimum(), Minimize(), and XMinimum().