public abstract class ContinuedFraction extends Object
The continued fraction uses the following form for the numerator (a
) and
denominator (b
) coefficients:
a1 b0 + ------------------ b1 + a2 ------------- b2 + a3 -------- b3 + ...
Subclasses must provide the a
and b
coefficients to evaluate the continued fraction.
This class allows evaluation of the fraction for a specified evaluation point x
;
the point can be used to express the values of the coefficients.
Evaluation of a continued fraction from a generator of the coefficients can be performed using
GeneralizedContinuedFraction
. This may be preferred if the coefficients can be computed
with updates to the previous coefficients.
Constructor and Description |
---|
ContinuedFraction() |
Modifier and Type | Method and Description |
---|---|
double |
evaluate(double x,
double epsilon)
Evaluates the continued fraction.
|
double |
evaluate(double x,
double epsilon,
int maxIterations)
Evaluates the continued fraction.
|
protected abstract double |
getA(int n,
double x)
Defines the
n -th "a" coefficient of the continued fraction. |
protected abstract double |
getB(int n,
double x)
Defines the
n -th "b" coefficient of the continued fraction. |
public ContinuedFraction()
protected abstract double getA(int n, double x)
n
-th "a" coefficient of the continued fraction.n
- Index of the coefficient to retrieve.x
- Evaluation point.an
.protected abstract double getB(int n, double x)
n
-th "b" coefficient of the continued fraction.n
- Index of the coefficient to retrieve.x
- Evaluation point.bn
.public double evaluate(double x, double epsilon)
x
- the evaluation point.epsilon
- Maximum relative error allowed.x
.ArithmeticException
- if the algorithm fails to converge.ArithmeticException
- if the maximal number of iterations is reached
before the expected convergence is achieved.evaluate(double,double,int)
public double evaluate(double x, double epsilon, int maxIterations)
The implementation of this method is based on the modified Lentz algorithm as described on page 508 in:
x
- Point at which to evaluate the continued fraction.epsilon
- Maximum relative error allowed.maxIterations
- Maximum number of iterations.x
.ArithmeticException
- if the algorithm fails to converge.ArithmeticException
- if the maximal number of iterations is reached
before the expected convergence is achieved.Copyright © 2017–2022 The Apache Software Foundation. All rights reserved.