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.