public class GaussLegendreIntegrator extends java.lang.Object implements ComputableFunctionIntegrator
Gauss-Legendre integrators are efficient integrators that can accurately integrate functions with few functions evaluations. A Gauss-Legendre integrator using an n-points quadrature formula can integrate exactly 2n-1 degree polynoms.
These integrators evaluate the function on n carefully chosen
points in each step interval. These points are not evenly
spaced. The function is
| Constructor and Description |
|---|
GaussLegendreIntegrator(int minPoints,
double rawStep)
Build a Gauss-Legendre integrator.
|
| Modifier and Type | Method and Description |
|---|---|
int |
getEvaluationsPerStep()
Get the number of functions evaluation per step.
|
double |
integrate(ComputableFunction f,
double a,
double b)
Integrate a function over a defined range.
|
public GaussLegendreIntegrator(int minPoints,
double rawStep)
A Gauss-Legendre integrator is a formula like:
int (f) from -1 to +1 = Sum (ai * f(xi))
The coefficients of the formula are computed as follow:
let n be the desired number of points the xi are the roots of the degree n Legendre polynomial the ai are the integrals int (Li^2) from -1 to +1 where Li (x) = Prod (x-xk)/(xi-xk) for k != i
A formula in n points can integrate exactly polynoms of degree up to 2n-1.
minPoints - minimal number of points desiredrawStep - raw integration step (the precise step will be
adjusted in order to have an integer number of steps in the
integration range).public int getEvaluationsPerStep()
public double integrate(ComputableFunction f, double a, double b) throws FunctionException
ComputableFunctionIntegratorintegrate in interface ComputableFunctionIntegratorf - function to integratea - first bound of the range (can be lesser or greater than b)b - second bound of the range (can be lesser or greater than a)FunctionException - if the underlying function throws oneCopyright © 2001-2007 Luc Maisonobe. All Rights Reserved.