Class DividedDifferenceInterpolator
java.lang.Object
org.apache.commons.math.analysis.interpolation.DividedDifferenceInterpolator
- All Implemented Interfaces:
Serializable
,UnivariateRealInterpolator
public class DividedDifferenceInterpolator
extends Object
implements UnivariateRealInterpolator, Serializable
Implements the <a href="
"http://mathworld.wolfram.com/NewtonsDividedDifferenceInterpolationFormula.html">
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:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static double[]
computeDividedDifference
(double[] x, double[] y) Returns a copy of the divided difference array.interpolate
(double[] x, double[] y) Computes an interpolating function for the data set.
-
Constructor Details
-
DividedDifferenceInterpolator
public DividedDifferenceInterpolator()
-
-
Method Details
-
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
-