Class ContinuedFraction

java.lang.Object
org.hipparchus.util.ContinuedFraction

public abstract class ContinuedFraction extends Object
Provides a generic means to evaluate continued fractions. Subclasses simply provided the a and b coefficients to evaluate the continued fraction.

References:

  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Default constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    evaluate(double x)
    Evaluates the continued fraction at the value x.
    double
    evaluate(double x, double epsilon)
    Evaluates the continued fraction at the value x.
    double
    evaluate(double x, double epsilon, int maxIterations)
    Evaluates the continued fraction at the value x.
    double
    evaluate(double x, int maxIterations)
    Evaluates the continued fraction at the value x.
    protected abstract double
    getA(int n, double x)
    Access the n-th a coefficient of the continued fraction.
    protected abstract double
    getB(int n, double x)
    Access the n-th b coefficient of the continued fraction.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ContinuedFraction

      protected ContinuedFraction()
      Default constructor.
  • Method Details

    • getA

      protected abstract double getA(int n, double x)
      Access the n-th a coefficient of the continued fraction. Since a can be a function of the evaluation point, x, that is passed in as well.
      Parameters:
      n - the coefficient index to retrieve.
      x - the evaluation point.
      Returns:
      the n-th a coefficient.
    • getB

      protected abstract double getB(int n, double x)
      Access the n-th b coefficient of the continued fraction. Since b can be a function of the evaluation point, x, that is passed in as well.
      Parameters:
      n - the coefficient index to retrieve.
      x - the evaluation point.
      Returns:
      the n-th b coefficient.
    • evaluate

      public double evaluate(double x) throws MathIllegalStateException
      Evaluates the continued fraction at the value x.
      Parameters:
      x - the evaluation point.
      Returns:
      the value of the continued fraction evaluated at x.
      Throws:
      MathIllegalStateException - if the algorithm fails to converge.
    • evaluate

      public double evaluate(double x, double epsilon) throws MathIllegalStateException
      Evaluates the continued fraction at the value x.
      Parameters:
      x - the evaluation point.
      epsilon - maximum error allowed.
      Returns:
      the value of the continued fraction evaluated at x.
      Throws:
      MathIllegalStateException - if the algorithm fails to converge.
    • evaluate

      public double evaluate(double x, int maxIterations) throws MathIllegalStateException
      Evaluates the continued fraction at the value x.
      Parameters:
      x - the evaluation point.
      maxIterations - maximum number of convergents
      Returns:
      the value of the continued fraction evaluated at x.
      Throws:
      MathIllegalStateException - if the algorithm fails to converge.
      MathIllegalStateException - if maximal number of iterations is reached
    • evaluate

      public double evaluate(double x, double epsilon, int maxIterations) throws MathIllegalStateException
      Evaluates the continued fraction at the value x.

      The implementation of this method is based on the modified Lentz algorithm as described on page 18 ff. in:

      Note: the implementation uses the terms ai and bi as defined in Continued Fraction @ MathWorld.

      Parameters:
      x - the evaluation point.
      epsilon - maximum error allowed.
      maxIterations - maximum number of convergents
      Returns:
      the value of the continued fraction evaluated at x.
      Throws:
      MathIllegalStateException - if the algorithm fails to converge.
      MathIllegalStateException - if maximal number of iterations is reached