Integral of a one-dimensional function. More...
#include <ql/math/integrals/gausslobattointegral.hpp>
Inherits Integrator.
Public Member Functions | |
GaussLobattoIntegral (Size maxIterations, Real absAccuracy, Real relAccuracy=Null< Real >(), bool useConvergenceEstimate=true) | |
Protected Member Functions | |
Real | integrate (const ext::function< Real(Real)> &f, Real a, Real b) const |
Real | adaptivGaussLobattoStep (const ext::function< Real(Real)> &f, Real a, Real b, Real fa, Real fb, Real is) const |
Real | calculateAbsTolerance (const ext::function< Real(Real)> &f, Real a, Real b) const |
Protected Attributes | |
Real | relAccuracy_ |
const bool | useConvergenceEstimate_ |
Static Protected Attributes | |
static const Real | alpha_ |
static const Real | beta_ |
static const Real | x1_ |
static const Real | x2_ |
static const Real | x3_ |
Integral of a one-dimensional function.
Given a target accuracy \( \epsilon \), the integral of a function \( f \) between \( a \) and \( b \) is calculated by means of the Gauss-Lobatto formula
References: This algorithm is a C++ implementation of the algorithm outlined in
W. Gander and W. Gautschi, Adaptive Quadrature - Revisited. BIT, 40(1):84-101, March 2000. CS technical report: ftp.inf.ethz.ch/pub/publications/tech-reports/3xx/306.ps.gz
The original MATLAB version can be downloaded here http://www.inf.ethz.ch/personal/gander/adaptlob.m