类 GridAxis

java.lang.Object
org.hipparchus.analysis.interpolation.GridAxis
所有已实现的接口:
Serializable

public class GridAxis extends Object implements Serializable
用于在网格数据的一个轴上查找插值节点的辅助类。

此类旨在用于在网格内进行插值。它适用于任何排序的数据,不重复且大小至少为n,其中n是插值所需点的数量(例如,线性插值为2,二次插值为3...)

该方法使用线性插值来选择节点索引。对于足够规则的数据,它应该是O(1),因此比二分法快得多。它还具有缓存功能,当在接近位置原始插值多个点时,可以提高速度,即连续调用具有高概率返回相同插值节点的情况。例如,在松散网格上以小步长扫描时会发生这种情况。该方法也适用于非规则网格,但在这种情况下可能会较慢。

此类是线程安全的。

从以下版本开始:
1.4
另请参阅:
  • 构造器详细资料

    • GridAxis

      public GridAxis(double[] grid, int n) throws MathIllegalArgumentException
      简单构造器。
      参数:
      grid - 插值点的坐标,按升序排列
      n - 插值所需的点数,例如线性插值需要2个点,二次插值需要3个点...
      抛出:
      MathIllegalArgumentException - 如果网格大小小于n或者网格未严格按升序排列
  • 方法详细资料

    • size

      public int size()
      获取网格的点数。
      返回:
      网格的点数
    • getN

      public int getN()
      获取插值所需的点数。
      返回:
      插值所需的点数
    • node

      public double node(int index)
      获取指定索引处的插值节点。
      参数:
      index - 节点索引
      返回:
      指定索引处节点的坐标
    • interpolationIndex

      public int interpolationIndex(double t)
      获取沿网格某坐标的第一个插值节点的索引。

      返回的索引是适合t的最低插值节点的索引。这意味着如果返回i,则用于在坐标t处插值的节点为索引ii+1、...、i+n-1,其中n是构造时传递的插值所需点数。

      索引被选择为使从ii+n-1的节点子集在t周围尽可能平衡:

      • 如果t在网格内部且距离端点足够远
        • 如果n是偶数,则返回的节点将完全平衡:小于t的节点将有n/2个,大于t的节点也将有n/2
        • 如果n是奇数,则返回的节点将略微不平衡一个点:小于t的节点将有(n+1)/2个,大于t的节点将有(n-1)/2
      • 如果t在网格内部且靠近端点,则返回的节点将不平衡:端点一侧的节点较少,内部一侧的节点较多
      • 如果t在网格外部,则返回的节点将完全不平衡:所有节点将在t的同一侧

      使用t在网格外部调用此方法不会报错,这意味着随着t远离网格点,插值将变为外推,精度会降低。这是为了使插值不会在网格末端附近失败。

      参数:
      t - 要插值的点的坐标
      返回:
      索引i,使得node(i)node(i+1)、... node(i+n-1)可用于在坐标t处插值
      从以下版本开始:
      1.4