类 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
-