org.spaceroots.mantissa.quadrature.vectorial
Class GaussLegendreIntegrator
- java.lang.Object
-
- org.spaceroots.mantissa.quadrature.vectorial.GaussLegendreIntegrator
-
- All Implemented Interfaces:
- ComputableFunctionIntegrator
public class GaussLegendreIntegrator extends java.lang.Object implements ComputableFunctionIntegrator
This class implements a Gauss-Legendre integrator.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
never evaluated at the boundary points, which means it can be undefined at these points.
-
-
Constructor Summary
Constructors Constructor and Description GaussLegendreIntegrator(int minPoints, double rawStep)Build a Gauss-Legendre integrator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description intgetEvaluationsPerStep()Get the number of functions evaluation per step.double[]integrate(ComputableFunction f, double a, double b)Integrate a function over a defined range.
-
-
-
Constructor Detail
-
GaussLegendreIntegrator
public GaussLegendreIntegrator(int minPoints, double rawStep)Build a Gauss-Legendre integrator.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.
- Parameters:
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).
-
-
Method Detail
-
getEvaluationsPerStep
public int getEvaluationsPerStep()
Get the number of functions evaluation per step.- Returns:
- number of function evaluation per step
-
integrate
public double[] integrate(ComputableFunction f, double a, double b) throws FunctionException
Description copied from interface:ComputableFunctionIntegratorIntegrate a function over a defined range.- Specified by:
integratein interfaceComputableFunctionIntegrator- Parameters:
f- 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)- Returns:
- value of the integral over the range
- Throws:
FunctionException- if the underlying function throws one
-
-
DataMelt 3.0 © DataMelt by jWork.ORG