Class QuadratureIntegrator<T extends Quadrature>
java.lang.Object
com.irurueta.numerical.integration.Integrator
com.irurueta.numerical.integration.QuadratureIntegrator<T>
- Type Parameters:
T
- a quadrature.
- Direct Known Subclasses:
DoubleExponentialRuleQuadratureIntegrator
,InfinityMidPointQuadratureIntegrator
,LowerSquareRootMidPointQuadratureIntegrator
,MidPointQuadratureIntegrator
,TrapezoidalQuadratureIntegrator
,UpperSquareRootMidPointQuadratureIntegrator
Integrates functions given a quadrature implementation up to desired accuracy.
If assumptions can be made about the smoothness of a function other implementations such as
Simpon's or Romberg's are more efficient and require less function evaluations. Otherwise, this
is the simplest integrator that can be used for general purpose integrations when no assumptions
can be made.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final double
Required accuracy.static final double
Default accuracy.private static final int
Maximum number of allowed steps.private static final int
Minimum required number of steps.private final T
Quadrature used for integration.Fields inherited from class com.irurueta.numerical.integration.Integrator
DEFAULT_INTEGRATOR_TYPE, DEFAULT_QUADRATURE_TYPE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static QuadratureIntegrator<Quadrature>
cast
(QuadratureIntegrator<?> integrator) Casts integrator to a quadrature integrator without wildcard parameter.static QuadratureIntegrator<Quadrature>
create
(double a, double b, SingleDimensionFunctionEvaluatorListener listener) Creates a quadrature integrator using default accuracy and quadrature type.static QuadratureIntegrator<Quadrature>
create
(double a, double b, SingleDimensionFunctionEvaluatorListener listener, double eps) Creates a quadrature integrator using default quadrature type.static QuadratureIntegrator<Quadrature>
create
(double a, double b, SingleDimensionFunctionEvaluatorListener listener, double eps, QuadratureType quadratureType) Creates a quadrature integrator.static QuadratureIntegrator<Quadrature>
create
(double a, double b, SingleDimensionFunctionEvaluatorListener listener, QuadratureType quadratureType) Creates a quadrature integrator with default accuracy.Gets type of integrator.double
Integrates function between provided lower and upper limits.Methods inherited from class com.irurueta.numerical.integration.Integrator
create, create, create, create, getQuadratureType
-
Field Details
-
EPS
public static final double EPSDefault accuracy.- See Also:
-
JMIN
private static final int JMINMinimum required number of steps.- See Also:
-
JMAX
private static final int JMAXMaximum number of allowed steps.- See Also:
-
q
Quadrature used for integration. -
eps
private final double epsRequired accuracy.
-
-
Constructor Details
-
QuadratureIntegrator
Constructor.- Parameters:
q
- Quadrature used for integration.eps
- Required accuracy.
-
-
Method Details
-
integrate
Integrates function between provided lower and upper limits.- Specified by:
integrate
in classIntegrator
- Returns:
- result of integration.
- Throws:
IntegrationException
- if integration fails for numerical reasons.
-
getIntegratorType
Gets type of integrator.- Specified by:
getIntegratorType
in classIntegrator
- Returns:
- type of integrator.
-
create
public static QuadratureIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener, double eps, QuadratureType quadratureType) Creates a quadrature integrator.- Parameters:
a
- Lower limit of integration.b
- Upper limit of integration.listener
- listener to evaluate a single dimension function at required points.eps
- required accuracy.quadratureType
- quadrature type.- Returns:
- created integrator.
- Throws:
IllegalArgumentException
- if provided quadrature type is not supported.
-
create
public static QuadratureIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener, QuadratureType quadratureType) Creates a quadrature integrator with default accuracy.- Parameters:
a
- Lower limit of integration.b
- Upper limit of integration.listener
- listener to evaluate a single dimension function at required points.quadratureType
- quadrature type.- Returns:
- created integrator.
- Throws:
IllegalArgumentException
- if provided quadrature type is not supported.
-
create
public static QuadratureIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener, double eps) Creates a quadrature integrator using default quadrature type.- Parameters:
a
- Lower limit of integration.b
- Upper limit of integration.listener
- listener to evaluate a single dimension function at required points.eps
- required accuracy.- Returns:
- created integrator.
-
create
public static QuadratureIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener) Creates a quadrature integrator using default accuracy and quadrature type.- Parameters:
a
- Lower limit of integration.b
- Upper limit of integration.listener
- listener to evaluate a single dimension function at required points.- Returns:
- created integrator.
-
cast
Casts integrator to a quadrature integrator without wildcard parameter. .- Parameters:
integrator
- integrator to be cast.- Returns:
- cast integrator.
-