Top Description Fields Constructors Methods
org.apache.commons.math3.analysis.integration

public Class TrapezoidIntegrator

extends BaseAbstractUnivariateIntegrator
Class Inheritance
Imports
org.apache.commons.math3.exception.MathIllegalArgumentException, .MaxCountExceededException, .NotStrictlyPositiveException, .NumberIsTooLargeException, .NumberIsTooSmallException, .TooManyEvaluationsException, org.apache.commons.math3.util.FastMath

Implements the Trapezoid Rule for integration of real univariate functions. For reference, see Introduction to Numerical Analysis, ISBN 038795452X, chapter 3.

The function should be integrable.

Since
1.2

Field Summary

Modifier and TypeField and Description
private double
s

Intermediate result.

public static final int
TRAPEZOID_MAX_ITERATIONS_COUNT

Maximum number of iterations for trapezoid.

Inherited from org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator:
DEFAULT_ABSOLUTE_ACCURACYDEFAULT_MAX_ITERATIONS_COUNTDEFAULT_MIN_ITERATIONS_COUNTDEFAULT_RELATIVE_ACCURACYiterations

Constructor Summary

AccessConstructor and Description
public
TrapezoidIntegrator(final double
relative accuracy of the result
relativeAccuracy
,
final double
absolute accuracy of the result
absoluteAccuracy
,
final int
minimum number of iterations
minimalIterationCount
,
final int
maximum number of iterations (must be less than or equal to TRAPEZOID_MAX_ITERATIONS_COUNT
maximalIterationCount
)

Build a trapezoid integrator with given accuracies and iterations counts.

public
TrapezoidIntegrator(final int
minimum number of iterations
minimalIterationCount
,
final int
maximum number of iterations (must be less than or equal to TRAPEZOID_MAX_ITERATIONS_COUNT
maximalIterationCount
)

Build a trapezoid integrator with given iteration counts.

public
TrapezoidIntegrator()

Construct a trapezoid integrator with default settings.

Method Summary

Modifier and TypeMethod and Description
protected double
doIntegrate()

Implements abstract org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator.doIntegrate.

Method for implementing actual integration algorithms in derived classes.

pack-priv double

Returns:

the value of n-th stage integral
stage
(final BaseAbstractUnivariateIntegrator
integrator holding integration parameters
baseIntegrator
,
final int
the stage of 1/2 refinement, n = 0 is no refinement
n
)

Compute the n-th stage integral of trapezoid rule.

Inherited from org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator:
computeObjectiveValuegetAbsoluteAccuracygetEvaluationsgetIterationsgetMaxgetMaximalIterationCountgetMingetMinimalIterationCountgetRelativeAccuracyincrementCountintegratesetup

Field Detail

sback to summary
private double s

Intermediate result.

TRAPEZOID_MAX_ITERATIONS_COUNTback to summary
public static final int TRAPEZOID_MAX_ITERATIONS_COUNT

Maximum number of iterations for trapezoid.

Constructor Detail

TrapezoidIntegratorback to summary
public TrapezoidIntegrator(final double relativeAccuracy, final double absoluteAccuracy, final int minimalIterationCount, final int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException, NumberIsTooLargeException

Build a trapezoid integrator with given accuracies and iterations counts.

Parameters
relativeAccuracy:double

relative accuracy of the result

absoluteAccuracy:double

absolute accuracy of the result

minimalIterationCount:int

minimum number of iterations

maximalIterationCount:int

maximum number of iterations (must be less than or equal to TRAPEZOID_MAX_ITERATIONS_COUNT

Exceptions
NotStrictlyPositiveException:
if minimal number of iterations is not strictly positive
NumberIsTooSmallException:
if maximal number of iterations is lesser than or equal to the minimal number of iterations
NumberIsTooLargeException:
if maximal number of iterations is greater than TRAPEZOID_MAX_ITERATIONS_COUNT
TrapezoidIntegratorback to summary
public TrapezoidIntegrator(final int minimalIterationCount, final int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException, NumberIsTooLargeException

Build a trapezoid integrator with given iteration counts.

Parameters
minimalIterationCount:int

minimum number of iterations

maximalIterationCount:int

maximum number of iterations (must be less than or equal to TRAPEZOID_MAX_ITERATIONS_COUNT

Exceptions
NotStrictlyPositiveException:
if minimal number of iterations is not strictly positive
NumberIsTooSmallException:
if maximal number of iterations is lesser than or equal to the minimal number of iterations
NumberIsTooLargeException:
if maximal number of iterations is greater than TRAPEZOID_MAX_ITERATIONS_COUNT
TrapezoidIntegratorback to summary
public TrapezoidIntegrator()

Construct a trapezoid integrator with default settings. (max iteration count set to TRAPEZOID_MAX_ITERATIONS_COUNT)

Method Detail

doIntegrateback to summary
protected double doIntegrate() throws MathIllegalArgumentException, TooManyEvaluationsException, MaxCountExceededException

Implements abstract org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator.doIntegrate.

Doc from org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator.doIntegrate.

Method for implementing actual integration algorithms in derived classes.

Returns:double

the root.

Annotations
@Override
Exceptions
TooManyEvaluationsException:
if the maximal number of evaluations is exceeded.
MaxCountExceededException:
if the maximum iteration count is exceeded or the integrator detects convergence problems otherwise
stageback to summary
pack-priv double stage(final BaseAbstractUnivariateIntegrator baseIntegrator, final int n) throws TooManyEvaluationsException

Compute the n-th stage integral of trapezoid rule. This function should only be called by API integrate() in the package. To save time it does not verify arguments - caller does.

The interval is divided equally into 2^n sections rather than an arbitrary m sections because this configuration can best utilize the already computed values.

Parameters
baseIntegrator:BaseAbstractUnivariateIntegrator

integrator holding integration parameters

n:int

the stage of 1/2 refinement, n = 0 is no refinement

Returns:double

the value of n-th stage integral

Exceptions
TooManyEvaluationsException:
if the maximal number of evaluations is exceeded.