Class SimpsonIntegrator<T extends Quadrature>
java.lang.Object
com.irurueta.numerical.integration.Integrator
com.irurueta.numerical.integration.SimpsonIntegrator<T>
- Type Parameters:
T
- a quadrature.
- Direct Known Subclasses:
SimpsonDoubleExponentialRuleQuadratureIntegrator
,SimpsonInfinityMidPointQuadratureIntegrator
,SimpsonLowerSquareRootMidPointQuadratureIntegrator
,SimpsonMidPointQuadratureIntegrator
,SimpsonTrapezoidalQuadratureIntegrator
,SimpsonUpperSquareRootMidPointQuadratureIntegrator
Base integrator for implementations based on Simpson's method.
Simpson's method is an optimization of Trapezoidal quadrature integrator.
Implementations of this class will in general be more efficient than
Trapezoidal quadrature integrators (i.e., require fewer function evaluations) when the function
to be integrated has a finite fourth derivative (i.e., a continuous third derivative).
-
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 SimpsonIntegrator<Quadrature>
cast
(SimpsonIntegrator<?> integrator) Casts integrator to a quadrature integrator without wildcard parameter.static SimpsonIntegrator<Quadrature>
create
(double a, double b, SingleDimensionFunctionEvaluatorListener listener) Creates an integrator using Simpson's method and having default accuracy and quadrature type.static SimpsonIntegrator<Quadrature>
create
(double a, double b, SingleDimensionFunctionEvaluatorListener listener, double eps) Creates an integrator using Simpson's method and default quadrature type.static SimpsonIntegrator<Quadrature>
create
(double a, double b, SingleDimensionFunctionEvaluatorListener listener, double eps, QuadratureType quadratureType) Creates an integrator using Simpson's method.static SimpsonIntegrator<Quadrature>
create
(double a, double b, SingleDimensionFunctionEvaluatorListener listener, QuadratureType quadratureType) Creates an integrator using Simpson's method and having 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
-
SimpsonIntegrator
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 SimpsonIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener, double eps, QuadratureType quadratureType) Creates an integrator using Simpson's method.- 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 SimpsonIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener, QuadratureType quadratureType) Creates an integrator using Simpson's method and having 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 SimpsonIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener, double eps) Creates an integrator using Simpson's method and 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 SimpsonIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener) Creates an integrator using Simpson's method and having 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.
-