class ROOT::Math::RichardsonDerivator


   User class for performing function integration.

   It will use the Richards Method for function derivation in a given interval.
   This class is implemented from TF1::Derivate{,2,3}().

   @ingroup Derivation


Function Members (Methods)

public:
~RichardsonDerivator()
doubleDerivative1(double x)
doubleDerivative2(double x)
doubleDerivative3(double x)
doubleError() const
ROOT::Math::RichardsonDerivatorRichardsonDerivator()
ROOT::Math::RichardsonDerivatorRichardsonDerivator(const ROOT::Math::RichardsonDerivator&)
voidSetFunction(const ROOT::Math::IGenFunction&, double xmin, double xmax)
voidSetRelTolerance(double)

Data Members

protected:
doublefEpsilon
const ROOT::Math::IGenFunction*fFunction
boolfFunctionCopied
doublefLastError
doublefXMax
doublefXMin

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

~RichardsonDerivator()
 Destructor: Removes function if needed. 
RichardsonDerivator(const ROOT::Math::RichardsonDerivator& )
 Default Constructor. 
void SetRelTolerance(double )
 Implementing VirtualIntegrator Interface
 Set the desired relative Error. 
double Error()
 Returns the estimate of the absolute Error of the last derivative calculation. 
double Derivative1(double x)
 Implementing VirtualIntegratorOneDim Interface

      Returns the first derivative of the function at point x,
      computed by Richardson's extrapolation method (use 2 derivative estimates
      to compute a third, more accurate estimation)
      first, derivatives with steps h and h/2 are computed by central difference formulas

D(h) = #frac{f(x+h) - f(x-h)}{2h}
      the final estimate D = #frac{4D(h/2) - D(h)}{3}
       "Numerical Methods for Scientists and Engineers", H.M.Antia, 2nd edition"

      the argument eps may be specified to control the step size (precision).
      the step size is taken as eps*(xmax-xmin).
      the default value (0.001) should be good enough for the vast majority
      of functions. Give a smaller value if your function has many changes
      of the second derivative in the function range.

      Getting the error via TF1::DerivativeError:
        (total error = roundoff error + interpolation error)
      the estimate of the roundoff error is taken as follows:

err = k#sqrt{f(x)^{2} + x^{2}deriv^{2}}#sqrt{#sum ai^{2}},
      where k is the double precision, ai are coefficients used in
      central difference formulas
      interpolation error is decreased by making the step size h smaller.

double Derivative2(double x)
      Returns the second derivative of the function at point x,
      computed by Richardson's extrapolation method (use 2 derivative estimates
      to compute a third, more accurate estimation)
      first, derivatives with steps h and h/2 are computed by central difference formulas

D(h) = #frac{f(x+h) - 2f(x) + f(x-h)}{h^{2}}
      the final estimate D = #frac{4D(h/2) - D(h)}{3}
       "Numerical Methods for Scientists and Engineers", H.M.Antia, 2nd edition"

      the argument eps may be specified to control the step size (precision).
      the step size is taken as eps*(xmax-xmin).
      the default value (0.001) should be good enough for the vast majority
      of functions. Give a smaller value if your function has many changes
      of the second derivative in the function range.

      Getting the error via TF1::DerivativeError:
        (total error = roundoff error + interpolation error)
      the estimate of the roundoff error is taken as follows:

err = k#sqrt{f(x)^{2} + x^{2}deriv^{2}}#sqrt{#sum ai^{2}},
      where k is the double precision, ai are coefficients used in
      central difference formulas
      interpolation error is decreased by making the step size h smaller.

double Derivative3(double x)
      Returns the third derivative of the function at point x,
      computed by Richardson's extrapolation method (use 2 derivative estimates
      to compute a third, more accurate estimation)
      first, derivatives with steps h and h/2 are computed by central difference formulas

D(h) = #frac{f(x+2h) - 2f(x+h) + 2f(x-h) - f(x-2h)}{2h^{3}}
      the final estimate D = #frac{4D(h/2) - D(h)}{3}
       "Numerical Methods for Scientists and Engineers", H.M.Antia, 2nd edition"

      the argument eps may be specified to control the step size (precision).
      the step size is taken as eps*(xmax-xmin).
      the default value (0.001) should be good enough for the vast majority
      of functions. Give a smaller value if your function has many changes
      of the second derivative in the function range.

      Getting the error via TF1::DerivativeError:
        (total error = roundoff error + interpolation error)
      the estimate of the roundoff error is taken as follows:

err = k#sqrt{f(x)^{2} + x^{2}deriv^{2}}#sqrt{#sum ai^{2}},
      where k is the double precision, ai are coefficients used in
      central difference formulas
      interpolation error is decreased by making the step size h smaller.

void SetFunction(const ROOT::Math::IGenFunction& , double xmin, double xmax)
 Set function to solve and the interval in where to look for the root.

       \@param f Function to be minimized.
       \@param xlow Lower bound of the search interval.
       \@param xup Upper bound of the search interval.


Last change: root/mathcore:$Id: RichardsonDerivator.h 22728 2008-03-19 10:05:41Z moneta $
Last generated: 2008-05-13 17:01
Copyright (c) 2006 , LCG ROOT MathLib Team *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.