类 HermiteInterpolator

java.lang.Object
org.hipparchus.analysis.interpolation.HermiteInterpolator
所有已实现的接口:
UnivariateDifferentiableVectorFunction, UnivariateVectorFunction

public class HermiteInterpolator extends Object implements UnivariateDifferentiableVectorFunction
多项式插值器,使用样本值和样本导数。

插值多项式匹配所有样本点,包括值和提供的导数。每个值向量的分量都有一个多项式。所有多项式的次数相同。多项式的次数取决于点的数量和每个点的导数数量。例如,对于没有任何导数的n个样本点的插值多项式都具有次数n-1。对于n个样本点,两个端点具有值和一阶导数,其余点仅具有值的插值多项式都具有次数n+1。对于所有点都具有值、一阶和二阶导数的n个样本点的插值多项式都具有次数3n-1。

  • 构造器详细资料

    • HermiteInterpolator

      public HermiteInterpolator()
      创建一个空的插值器。
  • 方法详细资料

    • addSamplePoint

      public void addSamplePoint(double x, double[]... value) throws MathIllegalArgumentException, MathRuntimeException
      添加一个样本点。

      每个样本点必须调用一次此方法。允许混合调用只有值的调用和值与一阶导数的调用。

      所有调用的点的横坐标必须不同。

      参数:
      x - 样本点的横坐标
      value - 样本点的值和导数(如果只传递一行,则为值,如果传递两行,则第一行为值,第二行为导数,依此类推)
      抛出:
      MathIllegalArgumentException - 如果添加的点与先前点之间的横坐标差为零(即两个点在相同的横坐标上)
      MathRuntimeException - 如果导数的数量大于20,这将阻止计算阶乘
    • getPolynomials

      public PolynomialFunction[] getPolynomials() throws MathIllegalArgumentException
      计算插值多项式。
      返回:
      插值多项式数组
      抛出:
      MathIllegalArgumentException - 如果样本为空
    • value

      public double[] value(double x) throws MathIllegalArgumentException
      在指定的横坐标处插值。

      调用此方法等同于调用value返回的所有多项式的方法,但不构建中间多项式,因此此方法更快且数值稳定性更好。

      参数:
      x - 插值横坐标
      返回:
      插值值
      抛出:
      MathIllegalArgumentException - 如果样本为空
    • value

      public <T extends Derivative<T>> T[] value(T x) throws MathIllegalArgumentException
      计算函数的值。
      参数:
      x - 应计算函数值的点
      返回:
      抛出:
      MathIllegalArgumentException - 如果x不满足函数的约束(例如参数超出范围,或不支持的导数阶数)
    • derivatives

      public double[][] derivatives(double x, int order) throws MathIllegalArgumentException, NullArgumentException
      在指定的横坐标处插值值和一阶导数。
      参数:
      x - 插值横坐标
      order - 最大导数阶数
      返回:
      插值值和导数(第0行为值,第1阶导数在第1行,...第n阶导数在第n行)
      抛出:
      MathIllegalArgumentException - 如果样本为空
      NullArgumentException - 如果x为null