Minimizer for arbitrary one dimensional functions.
Implemented using GSL, for detailed description see:
<A HREF="http://www.gnu.org/software/gsl/manual/html_node/One-dimensional-Minimization.html">GSL online doc</A>
The algorithms uspported are only bracketing algorithm which do not use derivatives information.
The algorithms which can be chosen at construction time are GOLDENSECTION, whic is the simplest method
but the slowest and BRENT (the default one) which combines the golden section with a parabolic interpolation.
This class does not support copying
@ingroup Min1D
virtual | ~GSLMinimizer1D() |
virtual double | FValLower() const |
virtual double | FValMinimum() const |
virtual double | FValUpper() const |
ROOT::Math::GSLMinimizer1D | GSLMinimizer1D(ROOT::Math::Minim1D::Type type = Minim1D::kBRENT) |
ROOT::Math::IMinimizer1D | ROOT::Math::IMinimizer1D::IMinimizer1D() |
ROOT::Math::IMinimizer1D | ROOT::Math::IMinimizer1D::IMinimizer1D(const ROOT::Math::IMinimizer1D&) |
int | Iterate() |
virtual int | Iterations() const |
virtual bool | Minimize(int maxIter, double absTol, double relTol) |
virtual const char* | Name() const |
void | SetFunction(ROOT::Math::GSLFuncPointer f, void* params, double xmin, double xlow, double xup) |
virtual int | Status() const |
static int | TestInterval(double xlow, double xup, double epsAbs, double epsRel) |
virtual double | XLower() const |
virtual double | XMinimum() const |
virtual double | XUpper() const |
ROOT::Math::GSLMinimizer1D | GSLMinimizer1D(const ROOT::Math::GSLMinimizer1D&) |
ROOT::Math::GSLMinimizer1D& | operator=(const ROOT::Math::GSLMinimizer1D&) |
Construct the minimizer passing the minimizer type using the Minim1D::Algorithm enumeration
Set, or reset, minimizer to use the function f and the initial search interval [xlow, xup], with a guess for the location of the minimum xmin. The condition : \f$ f(xlow) > f(xmin) < f(xup)\f$ must be satisfied
Perform a minimizer iteration and if an unexepcted problem occurr then an error code will be returned
Find minimum position iterating until convergence specified by the absolute and relative tolerance or the maximum number of iteration is reached Return true is result is successfull \@param maxIter maximum number of iteration \@param absTol desired absolute error in the minimum position \@param absTol desired relative error in the minimum position
Test convergence of the interval. The test returns success if \f[ |x_{min}-x_{truemin}| < epsAbs + epsRel *x_{truemin} \f]