org.apache.commons.math3.analysis.integration
Class RombergIntegrator

java.lang.Object
  extended by org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator
      extended by org.apache.commons.math3.analysis.integration.RombergIntegrator
All Implemented Interfaces:
UnivariateIntegrator

public class RombergIntegrator
extends BaseAbstractUnivariateIntegrator

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

Romberg integration employs k successive refinements of the trapezoid rule to remove error terms less than order O(N^(-2k)). Simpson's rule is a special case of k = 2.

Since:
1.2
Version:
$Id: RombergIntegrator.java 1364387 2012-07-22 18:14:11Z tn $

Field Summary
static int ROMBERG_MAX_ITERATIONS_COUNT
          Maximal number of iterations for Romberg.
 
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
RombergIntegrator()
          Construct a Romberg integrator with default settings (max iteration count set to ROMBERG_MAX_ITERATIONS_COUNT)
RombergIntegrator(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount)
          Build a Romberg integrator with given accuracies and iterations counts.
RombergIntegrator(int minimalIterationCount, int maximalIterationCount)
          Build a Romberg integrator with given iteration counts.
 
Method Summary
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, integrate, setup
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ROMBERG_MAX_ITERATIONS_COUNT

public static final int ROMBERG_MAX_ITERATIONS_COUNT
Maximal number of iterations for Romberg.

See Also:
Constant Field Values
Constructor Detail

RombergIntegrator

public RombergIntegrator(double relativeAccuracy,
                         double absoluteAccuracy,
                         int minimalIterationCount,
                         int maximalIterationCount)
                  throws NotStrictlyPositiveException,
                         NumberIsTooSmallException,
                         NumberIsTooLargeException
Build a Romberg 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 ROMBERG_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 ROMBERG_MAX_ITERATIONS_COUNT

RombergIntegrator

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

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

RombergIntegrator

public RombergIntegrator()
Construct a Romberg integrator with default settings (max iteration count set to ROMBERG_MAX_ITERATIONS_COUNT)

Method Detail

doIntegrate

protected double doIntegrate()
                      throws 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


Copyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.