Class DividedDifferenceInterpolator

  • All Implemented Interfaces:
    java.io.Serializable, UnivariateRealInterpolator

    public class DividedDifferenceInterpolator
    extends java.lang.Object
    implements UnivariateRealInterpolator, java.io.Serializable
    Implements the Divided Difference Algorithm for interpolation of real univariate functions. For reference, see Introduction to Numerical Analysis, ISBN 038795452X, chapter 2.

    The actual code of Neville's evaluation is in PolynomialFunctionLagrangeForm, this class provides an easy-to-use interface to it.

    Since:
    1.2
    Version:
    $Revision: 825919 $ $Date: 2009-10-16 16:51:55 +0200 (ven. 16 oct. 2009) $
    See Also:
    Serialized Form
    • Constructor Detail

      • DividedDifferenceInterpolator

        public DividedDifferenceInterpolator()
    • Method Detail

      • computeDividedDifference

        protected static double[] computeDividedDifference​(double[] x,
                                                           double[] y)
                                                    throws DuplicateSampleAbscissaException
        Returns a copy of the divided difference array.

        The divided difference array is defined recursively by

         f[x0] = f(x0)
         f[x0,x1,...,xk] = (f(x1,...,xk) - f(x0,...,x[k-1])) / (xk - x0)
         

        The computational complexity is O(N^2).

        Parameters:
        x - the interpolating points array
        y - the interpolating values array
        Returns:
        a fresh copy of the divided difference array
        Throws:
        DuplicateSampleAbscissaException - if any abscissas coincide