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

java.lang.Object
  extended by org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator
All Implemented Interfaces:
UnivariateIntegrator
Direct Known Subclasses:
IterativeLegendreGaussIntegrator, LegendreGaussIntegrator, RombergIntegrator, SimpsonIntegrator, TrapezoidIntegrator

public abstract class BaseAbstractUnivariateIntegrator
extends Object
implements UnivariateIntegrator

Provide a default implementation for several generic functions.

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

Field Summary
static double DEFAULT_ABSOLUTE_ACCURACY
          Default absolute accuracy.
static int DEFAULT_MAX_ITERATIONS_COUNT
          Default maximal iteration count.
static int DEFAULT_MIN_ITERATIONS_COUNT
          Default minimal iteration count.
static double DEFAULT_RELATIVE_ACCURACY
          Default relative accuracy.
protected  Incrementor iterations
          The iteration count.
 
Constructor Summary
protected BaseAbstractUnivariateIntegrator(double relativeAccuracy, double absoluteAccuracy)
          Construct an integrator with given accuracies.
protected BaseAbstractUnivariateIntegrator(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount)
          Construct an integrator with given accuracies and iteration counts.
protected BaseAbstractUnivariateIntegrator(int minimalIterationCount, int maximalIterationCount)
          Construct an integrator with given iteration counts.
 
Method Summary
protected  double computeObjectiveValue(double point)
          Compute the objective function value.
protected abstract  double doIntegrate()
          Method for implementing actual integration algorithms in derived classes.
 double getAbsoluteAccuracy()
          Get the actual absolute accuracy.
 int getEvaluations()
          Get the number of function evaluations of the last run of the integrator.
 int getIterations()
          Get the number of iterations of the last run of the integrator.
protected  double getMax()
           
 int getMaximalIterationCount()
          Get the upper limit for the number of iterations.
protected  double getMin()
           
 int getMinimalIterationCount()
          Get the min limit for the number of iterations.
 double getRelativeAccuracy()
          Get the actual relative accuracy.
 double integrate(int maxEval, UnivariateFunction f, double lower, double upper)
          Integrate the function in the given interval.
protected  void setup(int maxEval, UnivariateFunction f, double lower, double upper)
          Prepare for computation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_ABSOLUTE_ACCURACY

public static final double DEFAULT_ABSOLUTE_ACCURACY
Default absolute accuracy.

See Also:
Constant Field Values

DEFAULT_RELATIVE_ACCURACY

public static final double DEFAULT_RELATIVE_ACCURACY
Default relative accuracy.

See Also:
Constant Field Values

DEFAULT_MIN_ITERATIONS_COUNT

public static final int DEFAULT_MIN_ITERATIONS_COUNT
Default minimal iteration count.

See Also:
Constant Field Values

DEFAULT_MAX_ITERATIONS_COUNT

public static final int DEFAULT_MAX_ITERATIONS_COUNT
Default maximal iteration count.

See Also:
Constant Field Values

iterations

protected final Incrementor iterations
The iteration count.

Constructor Detail

BaseAbstractUnivariateIntegrator

protected BaseAbstractUnivariateIntegrator(double relativeAccuracy,
                                           double absoluteAccuracy,
                                           int minimalIterationCount,
                                           int maximalIterationCount)
                                    throws NotStrictlyPositiveException,
                                           NumberIsTooSmallException
Construct an integrator with given accuracies and iteration counts.

The meanings of the various parameters are:

Parameters:
relativeAccuracy - relative accuracy of the result
absoluteAccuracy - absolute accuracy of the result
minimalIterationCount - minimum number of iterations
maximalIterationCount - maximum number of iterations
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

BaseAbstractUnivariateIntegrator

protected BaseAbstractUnivariateIntegrator(double relativeAccuracy,
                                           double absoluteAccuracy)
Construct an integrator with given accuracies.

Parameters:
relativeAccuracy - relative accuracy of the result
absoluteAccuracy - absolute accuracy of the result

BaseAbstractUnivariateIntegrator

protected BaseAbstractUnivariateIntegrator(int minimalIterationCount,
                                           int maximalIterationCount)
                                    throws NotStrictlyPositiveException,
                                           NumberIsTooSmallException
Construct an integrator with given iteration counts.

Parameters:
minimalIterationCount - minimum number of iterations
maximalIterationCount - maximum number of iterations
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
Method Detail

getRelativeAccuracy

public double getRelativeAccuracy()
Get the actual relative accuracy.

Specified by:
getRelativeAccuracy in interface UnivariateIntegrator
Returns:
the accuracy

getAbsoluteAccuracy

public double getAbsoluteAccuracy()
Get the actual absolute accuracy.

Specified by:
getAbsoluteAccuracy in interface UnivariateIntegrator
Returns:
the accuracy

getMinimalIterationCount

public int getMinimalIterationCount()
Get the min limit for the number of iterations.

Specified by:
getMinimalIterationCount in interface UnivariateIntegrator
Returns:
the actual min limit

getMaximalIterationCount

public int getMaximalIterationCount()
Get the upper limit for the number of iterations.

Specified by:
getMaximalIterationCount in interface UnivariateIntegrator
Returns:
the actual upper limit

getEvaluations

public int getEvaluations()
Get the number of function evaluations of the last run of the integrator.

Specified by:
getEvaluations in interface UnivariateIntegrator
Returns:
number of function evaluations

getIterations

public int getIterations()
Get the number of iterations of the last run of the integrator.

Specified by:
getIterations in interface UnivariateIntegrator
Returns:
number of iterations

getMin

protected double getMin()
Returns:
the lower bound.

getMax

protected double getMax()
Returns:
the upper bound.

computeObjectiveValue

protected double computeObjectiveValue(double point)
                                throws TooManyEvaluationsException
Compute the objective function value.

Parameters:
point - Point at which the objective function must be evaluated.
Returns:
the objective function value at specified point.
Throws:
TooManyEvaluationsException - if the maximal number of function evaluations is exceeded.

setup

protected void setup(int maxEval,
                     UnivariateFunction f,
                     double lower,
                     double upper)
              throws NullArgumentException,
                     MathIllegalArgumentException
Prepare for computation. Subclasses must call this method if they override any of the solve methods.

Parameters:
maxEval - Maximum number of evaluations.
f - the integrand function
lower - the min bound for the interval
upper - the upper bound for the interval
Throws:
NullArgumentException - if f is null.
MathIllegalArgumentException - if min >= max.

integrate

public double integrate(int maxEval,
                        UnivariateFunction f,
                        double lower,
                        double upper)
                 throws TooManyEvaluationsException,
                        MaxCountExceededException,
                        MathIllegalArgumentException,
                        NullArgumentException
Integrate the function in the given interval.

Specified by:
integrate in interface UnivariateIntegrator
Parameters:
maxEval - Maximum number of evaluations.
f - the integrand function
lower - the min bound for the interval
upper - the upper bound for the interval
Returns:
the value of integral
Throws:
TooManyEvaluationsException - if the maximum number of function evaluations is exceeded.
MaxCountExceededException - if the maximum iteration count is exceeded or the integrator detects convergence problems otherwise
MathIllegalArgumentException - if min > max or the endpoints do not satisfy the requirements specified by the integrator
NullArgumentException - if f is null.

doIntegrate

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

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.