Class DividedDifferenceInterpolator
- java.lang.Object
-
- org.apache.commons.math.analysis.interpolation.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 Summary
Constructors Constructor Description DividedDifferenceInterpolator()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static double[]
computeDividedDifference(double[] x, double[] y)
Returns a copy of the divided difference array.PolynomialFunctionNewtonForm
interpolate(double[] x, double[] y)
Computes an interpolating function for the data set.
-
-
-
Method Detail
-
interpolate
public PolynomialFunctionNewtonForm interpolate(double[] x, double[] y) throws DuplicateSampleAbscissaException
Computes an interpolating function for the data set.- Specified by:
interpolate
in interfaceUnivariateRealInterpolator
- Parameters:
x
- the interpolating points arrayy
- the interpolating values array- Returns:
- a function which interpolates the data set
- Throws:
DuplicateSampleAbscissaException
- if arguments are invalid
-
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 arrayy
- the interpolating values array- Returns:
- a fresh copy of the divided difference array
- Throws:
DuplicateSampleAbscissaException
- if any abscissas coincide
-
-