类 DividedDifferenceInterpolator
java.lang.Object
org.hipparchus.analysis.interpolation.DividedDifferenceInterpolator
- 所有已实现的接口:
-
Serializable
,UnivariateInterpolator
public class DividedDifferenceInterpolator extends Object implements UnivariateInterpolator, Serializable
实现了用于实数一元函数插值的分裂差分算法。有关参考,请参阅《数值分析导论》,ISBN 038795452X,第2章。
Neville评估的实际代码在PolynomialFunctionLagrangeForm中,这个类提供了一个易于使用的接口。
- 另请参阅:
-
构造器概要
-
方法概要
修饰符和类型方法说明protected static double[]
computeDividedDifference
(double[] x, double[] y) 返回分裂差分数组的副本。interpolate
(double[] x, double[] y) 为数据集计算插值函数。
-
构造器详细资料
-
DividedDifferenceInterpolator
public DividedDifferenceInterpolator()空构造器。这个构造器并非必需,但它可以防止在JDK 18及更高版本中出现虚假的javadoc警告。
- 从以下版本开始:
- 3.0
-
-
方法详细资料
-
interpolate
public PolynomialFunctionNewtonForm interpolate(double[] x, double[] y) throws MathIllegalArgumentException 计算数据集的插值函数。- 指定者:
-
interpolate
在接口中UnivariateInterpolator
- 参数:
-
x
- 插值点数组。 -
y
- 插值值数组。 - 返回:
- 插值数据集的函数。
- 抛出:
-
MathIllegalArgumentException
- 如果数组长度不同。 -
MathIllegalArgumentException
- 如果点的数量少于2个。 -
MathIllegalArgumentException
- 如果x
未严格按升序排序。
-
computeDividedDifference
protected static double[] computeDividedDifference(double[] x, double[] y) throws MathIllegalArgumentException 返回分裂差分数组的副本。分裂差分数组的递归定义为
f[x0] = f(x0) f[x0,x1,...,xk] = (f[x1,...,xk] - f[x0,...,x[k-1]]) / (xk - x0)
计算复杂度为\(O(n^2)\),其中\(n\)是
x
和y
的公共长度。- 参数:
-
x
- 插值点数组。 -
y
- 插值值数组。 - 返回:
- 分裂差分数组的新副本。
- 抛出:
-
MathIllegalArgumentException
- 如果数组长度不同。 -
MathIllegalArgumentException
- 如果点的数量少于2个。 -
MathIllegalArgumentException
- 如果x
未严格按升序排序。
-