类 SplineInterpolator
java.lang.Object
org.hipparchus.analysis.interpolation.SplineInterpolator
public class SplineInterpolator extends Object implements UnivariateInterpolator, FieldUnivariateInterpolator
计算数据集的自然(也称为“自由”,“未夹紧”)三次样条插值。
interpolate(double[], double[])方法返回一个由n个三次多项式组成的PolynomialSplineFunction,在由x值确定的子区间上定义,x[0] < x[i] ... < x[n]. 这些x值被称为“结点”。
对于大于或等于最小结点且严格小于最大结点的点x,通过找到x所属的子区间并计算相应多项式在x - x[i] 处的值来计算PolynomialSplineFunction的值,其中i是子区间的索引。有关更多详细信息,请参见PolynomialSplineFunction。
插值多项式满足以下条件:
- 在每个输入x值处,
PolynomialSplineFunction的值等于相应的y值。 - 相邻多项式在结点处通过两阶导数相等(即,相邻多项式在结点处“匹配”,它们的一阶和二阶导数也匹配)。
实现的三次样条插值算法如R.L. Burden, J.D. Faires, 数值分析, 第4版, 1989, PWS-Kent, ISBN 0-53491-585-X, pp 126-131中描述。
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明interpolate(double[] x, double[] y) 计算数据集的插值函数。<T extends CalculusFieldElement<T>>
FieldPolynomialSplineFunction<T> interpolate(T[] x, T[] y) 计算数据集的插值函数。
-
构造器详细资料
-
SplineInterpolator
public SplineInterpolator()空构造器。这个构造器并非必需,但它可以防止在JDK 18及更高版本中出现虚假的javadoc警告。
- 从以下版本开始:
- 3.0
-
-
方法详细资料
-
interpolate
public PolynomialSplineFunction interpolate(double[] x, double[] y) throws MathIllegalArgumentException 计算数据集的插值函数。- 指定者:
-
interpolate在接口中UnivariateInterpolator - 参数:
-
x- 插值点的参数 -
y- 插值点的值 - 返回:
- 插值数据集的函数
- 抛出:
-
MathIllegalArgumentException- 如果x和y的大小不同。 -
MathIllegalArgumentException- 如果x未严格按升序排序。 -
MathIllegalArgumentException- 如果x的大小小于3。
-
interpolate
public <T extends CalculusFieldElement<T>> FieldPolynomialSplineFunction<T> interpolate(T[] x, T[] y) throws MathIllegalArgumentException 计算数据集的插值函数。- 指定者:
-
interpolate在接口中FieldUnivariateInterpolator - 类型参数:
-
T- 字段元素的类型 - 参数:
-
x- 插值点的参数 -
y- 插值点的值 - 返回:
- 插值数据集的函数
- 抛出:
-
MathIllegalArgumentException- 如果x和y的大小不同。 -
MathIllegalArgumentException- 如果x未严格按升序排序。 -
MathIllegalArgumentException- 如果x的大小小于3。 - 从以下版本开始:
- 1.5
-