Package org.apache.commons.math3.analysis.integration

# Class TrapezoidIntegrator

java.lang.Object
org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator
org.apache.commons.math3.analysis.integration.TrapezoidIntegrator

All Implemented Interfaces:
  `UnivariateIntegrator`

public class TrapezoidIntegrator extends BaseAbstractUnivariateIntegrator
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

Fields
Modifier and Type
Field
Description
`static final int`
`TRAPEZOID_MAX_ITERATIONS_COUNT`
Maximum number of iterations for trapezoid.

### Fields inherited from class org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator

`DEFAULT_ABSOLUTE_ACCURACY, DEFAULT_MAX_ITERATIONS_COUNT, DEFAULT_MIN_ITERATIONS_COUNT, DEFAULT_RELATIVE_ACCURACY, iterations`

## Constructor Summary

Constructors
Constructor
Description
`TrapezoidIntegrator()`
Construct a trapezoid integrator with default settings.
`TrapezoidIntegrator(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount)`
Build a trapezoid integrator with given accuracies and iterations counts.
`TrapezoidIntegrator(int minimalIterationCount, int maximalIterationCount)`
Build a trapezoid integrator with given iteration counts.

## Method Summary

Modifier and Type
Method
Description
`protected double`
`doIntegrate()`
Method for implementing actual integration algorithms in derived classes.

### Methods inherited from class org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator

`computeObjectiveValue, getAbsoluteAccuracy, getEvaluations, getIterations, getMax, getMaximalIterationCount, getMin, getMinimalIterationCount, getRelativeAccuracy, incrementCount, integrate, setup`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### TRAPEZOID_MAX_ITERATIONS_COUNT

public static final int TRAPEZOID_MAX_ITERATIONS_COUNT
Maximum number of iterations for trapezoid.

See Also:
  - Constant Field Values

## Constructor Details

### TrapezoidIntegrator

public TrapezoidIntegrator(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException, NumberIsTooLargeException
Build a trapezoid integrator with given accuracies and iterations counts.

Parameters:
  `relativeAccuracy` - relative accuracy of the result
  `absoluteAccuracy` - absolute accuracy of the result
  `minimalIterationCount` - minimum number of iterations
  `maximalIterationCount` - maximum number of iterations (must be less than or equal to `TRAPEZOID_MAX_ITERATIONS_COUNT`
Throws:
  `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`

### TrapezoidIntegrator

public TrapezoidIntegrator(int minimalIterationCount, int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException, NumberIsTooLargeException
Build a trapezoid integrator with given iteration counts.

Parameters:
  `minimalIterationCount` - minimum number of iterations
  `maximalIterationCount` - maximum number of iterations (must be less than or equal to `TRAPEZOID_MAX_ITERATIONS_COUNT`
Throws:
  `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`

### TrapezoidIntegrator

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

## Method Details

### doIntegrate

protected double doIntegrate() throws MathIllegalArgumentException, TooManyEvaluationsException, MaxCountExceededException
Method for implementing actual integration algorithms in derived classes.

Specified by:
  `doIntegrate` in class `BaseAbstractUnivariateIntegrator`
Returns:
  the root.
Throws:
  `TooManyEvaluationsException` - if the maximal number of evaluations is exceeded.
  `MaxCountExceededException` - if the maximum iteration count is exceeded or the integrator detects convergence problems otherwise
  `MathIllegalArgumentException`