Class ContinuedFraction


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

    References:

    Version:
    $Revision: 990655 $ $Date: 2010-08-29 23:49:40 +0200 (dim. 29 août 2010) $
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected ContinuedFraction()
      Default constructor.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      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 Detail

      • ContinuedFraction

        protected ContinuedFraction()
        Default constructor.
    • Method Detail

      • 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 MathException
        Evaluates the continued fraction at the value x.
        Parameters:
        x - the evaluation point.
        Returns:
        the value of the continued fraction evaluated at x.
        Throws:
        MathException - if the algorithm fails to converge.
      • evaluate

        public double evaluate​(double x,
                               double epsilon)
                        throws MathException
        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:
        MathException - if the algorithm fails to converge.
      • evaluate

        public double evaluate​(double x,
                               int maxIterations)
                        throws MathException
        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:
        MathException - if the algorithm fails to converge.
      • evaluate

        public double evaluate​(double x,
                               double epsilon,
                               int maxIterations)
                        throws MathException

        Evaluates the continued fraction at the value x.

        The implementation of this method is based on equations 14-17 of:

        The recurrence relationship defined in those equations can result in very large intermediate results which can result in numerical overflow. As a means to combat these overflow conditions, the intermediate results are scaled whenever they threaten to become numerically unstable.

        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:
        MathException - if the algorithm fails to converge.