类 GridAxis
java.lang.Object
org.hipparchus.analysis.interpolation.GridAxis
- 所有已实现的接口:
-
Serializable
用于在网格数据的一个轴上查找插值节点的辅助类。
此类旨在用于在网格内进行插值。它适用于任何排序的数据,不重复且大小至少为n
,其中n
是插值所需点的数量(例如,线性插值为2,二次插值为3...)
该方法使用线性插值来选择节点索引。对于足够规则的数据,它应该是O(1),因此比二分法快得多。它还具有缓存功能,当在接近位置原始插值多个点时,可以提高速度,即连续调用具有高概率返回相同插值节点的情况。例如,在松散网格上以小步长扫描时会发生这种情况。该方法也适用于非规则网格,但在这种情况下可能会较慢。
此类是线程安全的。
- 从以下版本开始:
- 1.4
- 另请参阅:
-
构造器概要
-
方法概要
修饰符和类型方法说明int
getN()
获取插值所需点的数量。int
interpolationIndex
(double t) 获取沿网格某坐标的第一个插值节点的索引。double
node
(int index) 获取指定索引处的插值节点。int
size()
获取网格的点数。
-
构造器详细资料
-
GridAxis
简单构造器。- 参数:
-
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
处插值的节点为索引i
、i+1
、...、i+n-1
,其中n
是构造时传递的插值所需点数。索引被选择为使从
i
到i+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
- 如果
-