Class QuadratureMatrixIntegrator<T extends MatrixQuadrature>
java.lang.Object
com.irurueta.numerical.integration.MatrixIntegrator
com.irurueta.numerical.integration.QuadratureMatrixIntegrator<T>
- Type Parameters:
T
- a quadrature.
- Direct Known Subclasses:
DoubleExponentialRuleQuadratureMatrixIntegrator
,InfinityMidPointQuadratureMatrixIntegrator
,LowerSquareRootMidPointQuadratureMatrixIntegrator
,MidPointQuadratureMatrixIntegrator
,TrapezoidalQuadratureMatrixIntegrator
,UpperSquareRootMidPointQuadratureMatrixIntegrator
public abstract class QuadratureMatrixIntegrator<T extends MatrixQuadrature>
extends MatrixIntegrator
Integrates matrix (multivariate) single dimension 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.MatrixIntegrator
DEFAULT_INTEGRATOR_TYPE, DEFAULT_QUADRATURE_TYPE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static QuadratureMatrixIntegrator<MatrixQuadrature>
cast
(QuadratureMatrixIntegrator<?> integrator) Cast integrator to a quadrature integrator without wildcard parameter.create
(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener) Creates a quadrature integrator using default accuracy and quadrature type.create
(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener, double eps) Creates a quadrature integrator using default quadrature type.create
(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener, double eps, QuadratureType quadratureType) Creates a quadrature integrator.create
(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener, QuadratureType quadratureType) Creates a quadrature integrator with default accuracy.Gets type of integrator.void
integrate
(com.irurueta.algebra.Matrix result) Integrates function between provided lower and upper limits.private static double
normMin
(com.irurueta.algebra.Matrix a) Estimates smallest norm of provided matrix.Methods inherited from class com.irurueta.numerical.integration.MatrixIntegrator
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
-
QuadratureMatrixIntegrator
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 classMatrixIntegrator
- Parameters:
result
- instance where result of integration will be stored.- Throws:
IntegrationException
- if integration fails for numerical reasons.
-
getIntegratorType
Gets type of integrator.- Specified by:
getIntegratorType
in classMatrixIntegrator
- Returns:
- type of integrator.
-
create
public static QuadratureMatrixIntegrator<MatrixQuadrature> create(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener, double eps, QuadratureType quadratureType) throws com.irurueta.algebra.WrongSizeException 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.com.irurueta.algebra.WrongSizeException
- if size notified by provided listener is invalid.
-
create
public static QuadratureMatrixIntegrator<MatrixQuadrature> create(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener, QuadratureType quadratureType) throws com.irurueta.algebra.WrongSizeException 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.com.irurueta.algebra.WrongSizeException
- if size notified by provided listener is invalid.
-
create
public static QuadratureMatrixIntegrator<MatrixQuadrature> create(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener, double eps) throws com.irurueta.algebra.WrongSizeException 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.
- Throws:
com.irurueta.algebra.WrongSizeException
- if size notified by provided listener is invalid.
-
create
public static QuadratureMatrixIntegrator<MatrixQuadrature> create(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener) throws com.irurueta.algebra.WrongSizeException 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.
- Throws:
com.irurueta.algebra.WrongSizeException
- if size notified by provided listener is invalid.
-
normMin
private static double normMin(com.irurueta.algebra.Matrix a) Estimates smallest norm of provided matrix. Smallest norm is used to ensure convergence of all elements in matrix.- Parameters:
a
- matrix to compute min norm for.- Returns:
- estimated min norm.
-
cast
private static QuadratureMatrixIntegrator<MatrixQuadrature> cast(QuadratureMatrixIntegrator<?> integrator) Cast integrator to a quadrature integrator without wildcard parameter.- Parameters:
integrator
- integrator to be cast.- Returns:
- cast integrator.
-