public class SplineInterpolator extends Object implements UnivariateInterpolator, FieldUnivariateInterpolator
The interpolate(double[], double[])
method returns a PolynomialSplineFunction
consisting of n cubic polynomials, defined over the subintervals determined by the x values,
x[0] < x[i] ... < x[n].
The x values are referred to as "knot points."
The value of the PolynomialSplineFunction at a point x that is greater than or equal to the smallest
knot point and strictly less than the largest knot point is computed by finding the subinterval to which
x belongs and computing the value of the corresponding polynomial at x - x[i]
where
i
is the index of the subinterval. See PolynomialSplineFunction
for more details.
The interpolating polynomials satisfy:
The cubic spline interpolation algorithm implemented is as described in R.L. Burden, J.D. Faires, Numerical Analysis, 4th Ed., 1989, PWS-Kent, ISBN 0-53491-585-X, pp 126-131.
Constructor and Description |
---|
SplineInterpolator() |
Modifier and Type | Method and Description |
---|---|
PolynomialSplineFunction |
interpolate(double[] x,
double[] y)
Computes an interpolating function for the data set.
|
<T extends CalculusFieldElement<T>> |
interpolate(T[] x,
T[] y)
Computes an interpolating function for the data set.
|
public PolynomialSplineFunction interpolate(double[] x, double[] y) throws MathIllegalArgumentException
interpolate
in interface UnivariateInterpolator
x
- the arguments for the interpolation pointsy
- the values for the interpolation pointsMathIllegalArgumentException
- if x
and y
have different sizes.MathIllegalArgumentException
- if x
is not sorted in
strict increasing order.MathIllegalArgumentException
- if the size of x
is smaller
than 3.public <T extends CalculusFieldElement<T>> FieldPolynomialSplineFunction<T> interpolate(T[] x, T[] y) throws MathIllegalArgumentException
interpolate
in interface FieldUnivariateInterpolator
T
- the type of the field elementsx
- the arguments for the interpolation pointsy
- the values for the interpolation pointsMathIllegalArgumentException
- if x
and y
have different sizes.MathIllegalArgumentException
- if x
is not sorted in
strict increasing order.MathIllegalArgumentException
- if the size of x
is smaller
than 3.Copyright © 2016-2021 CS GROUP. All rights reserved.