cupyx.scipy.interpolate.Akima1DInterpolator#

class cupyx.scipy.interpolate.Akima1DInterpolator(x, y, axis=0)[source]#

Akima 插值器

给定向量 x 和 y,拟合分段三次多项式。Akima 插值方法使用由分段三次多项式构建的连续可微子样条。结果曲线通过给定的数据点,并且看起来平滑自然 [1]

参数:
  • x (ndarray, shape (m, )) – 单调递增实数值的一维数组。

  • y (ndarray, shape (m, ...)) – N 维实数值数组。y 沿第一个轴的长度必须等于 x 的长度。

  • axis (int, optional) – 指定沿 y 进行插值的轴。默认沿 y 的第一个轴进行插值。

另请参阅

CubicHermiteSpline

分段三次插值器。

PchipInterpolator

PCHIP 一维单调三次插值器。

PPoly

以系数和断点表示的分段多项式

备注

仅用于精确数据,因为拟合曲线精确通过给定点。此例程对于通过少量给定点绘制令人愉悦的光滑曲线以用于绘图非常有用。

参考文献

方法

__call__(x, nu=0, extrapolate=None)[source]#

评估分段多项式或其导数。

参数:
  • x (array_like) – 要评估插值器的点。

  • nu (int, optional) – 要评估的导数阶数。必须为非负数。

  • extrapolate ({bool, 'periodic', None}, optional) – 如果为 bool 类型,确定是根据第一个和最后一个区间外插到超出范围的点,还是返回 NaNs。如果为 'periodic',则使用周期性外插。如果为 None(默认),则使用 self.extrapolate

返回:

y – 插值结果。形状由将原始数组中的插值轴替换为 x 的形状确定。

返回类型:

array_like

备注

对每个多项式段进行分段评估导数,即使多项式在断点处不可微。多项式区间被视为半开区间,[a, b),最后一个区间除外,它是闭区间 [a, b]

antiderivative(nu=1)[source]#

构造表示反导数的新分段多项式。反导数也是函数的不定积分,导数是其逆运算。

参数:

nu (int, optional) – 要评估的反导数阶数。默认为 1,即计算一阶积分。如果为负数,则返回导数。

返回:

pp – 阶数为 k2 = k + n 的分段多项式,表示此多项式的反导数。

返回类型:

PPoly

备注

此函数返回的反导数是连续的,并且在浮点舍入误差范围内可微至 n-1 阶。

如果计算反导数且 self.extrapolate='periodic',则对于返回的实例,它将被设置为 False。这是因为反导数不再是周期的,并且很难在其初始给定 x 区间之外正确评估。

classmethod construct_fast(c, x, extrapolate=None, axis=0)[source]#

不进行检查构造分段多项式。接受与构造函数相同的参数。输入参数 cx 必须是形状和类型正确的数组。c 数组只能是 float 和 complex 数据类型,x 数组必须是 float 数据类型。

derivative(nu=1)[source]#

构造表示导数的新分段多项式。

参数:

nu (int, optional) – 要评估的导数阶数。默认为 1,即计算一阶导数。如果为负数,则返回反导数。

返回:

pp – 阶数为 k2 = k - n 的分段多项式,表示此多项式的导数。

返回类型:

PPoly

备注

对每个多项式段进行分段评估导数,即使多项式在断点处不可微。多项式区间被视为半开区间,[a, b),最后一个区间除外,它是闭区间 [a, b]

extend(c, x, right=True)[source]#

向多项式添加额外的断点和系数。

参数:
  • c (ndarray, size (k, m, ...)) – 区间内多项式的附加系数。请注意,第一个附加区间将使用 self.x 的一个端点形成。

  • x (ndarray, size (m,)) – 附加断点。必须与 self.x 按相同顺序排序,并且在当前断点的右侧或左侧。

classmethod from_bernstein_basis(bp, extrapolate=None)[source]#

从 Bernstein 基多项式构造幂基分段多项式。

参数:
  • bp (BPoly) – 由 BPoly 创建的 Bernstein 基多项式

  • extrapolate (bool or 'periodic', optional) – 如果为 bool 类型,确定是根据第一个和最后一个区间外插到超出范围的点,还是返回 NaNs。如果为 'periodic',则使用周期性外插。默认为 True。

classmethod from_spline(tck, extrapolate=None)[source]#

从样条构造分段多项式

参数:
  • tck – 样条,作为 (knots, coefficients, degree) 元组或 BSpline 对象。

  • extrapolate (bool or 'periodic', optional) – 如果为 bool 类型,确定是根据第一个和最后一个区间外插到超出范围的点,还是返回 NaNs。如果为 'periodic',则使用周期性外插。默认为 True。

integrate(a, b, extrapolate=None)[source]#

计算分段多项式的定积分。

参数:
  • a (float) – 积分下限

  • b (float) – 积分上限

  • extrapolate ({bool, 'periodic', None}, optional) – 如果为 bool 类型,确定是根据第一个和最后一个区间外插到超出范围的点,还是返回 NaNs。如果为 'periodic',则使用周期性外插。如果为 None(默认),则使用 self.extrapolate

返回:

ig – 分段多项式在 [a, b] 上的定积分

返回类型:

array_like

roots(discontinuity=True, extrapolate=None)[source]#

找到分段多项式的实根。

参数:
  • discontinuity (bool, optional) – 是否将断点处不连续的符号变化报告为根。

  • extrapolate ({bool, 'periodic', None}, optional) – 如果为 bool 类型,确定是返回基于第一个和最后一个区间外插的多项式的根,'periodic' 与 False 的作用相同。如果为 None(默认),则使用 self.extrapolate

返回:

roots – 多项式的根。如果 PPoly 对象描述多个多项式,则返回值为一个对象数组,其每个元素都是包含根的 ndarray。

返回类型:

ndarray

另请参阅

PPoly.solve

solve(y=0.0, discontinuity=True, extrapolate=None)[source]#

找到方程 pp(x) == y 的实数解。

参数:
  • y (float, optional) – 方程右侧的值。默认为零。

  • discontinuity (bool, optional) – 是否将断点处不连续的符号变化报告为根。

  • extrapolate ({bool, 'periodic', None}, optional) – 如果为 bool 类型,确定是返回基于第一个和最后一个区间外插的多项式的根,'periodic' 与 False 的作用相同。如果为 None(默认),则使用 self.extrapolate

返回:

roots – 多项式的根。如果 PPoly 对象描述多个多项式,则返回值为一个对象数组,其每个元素都是包含根的 ndarray。

返回类型:

ndarray

备注

此例程仅适用于实值多项式。如果分段多项式包含恒为零的部分,则根列表将包含相应区间的起点,后跟一个 nan 值。如果多项式在断点处不连续,并且在断点处存在符号变化,则如果 discont 参数为 True,则会报告此情况。

目前,尚无实际实现。

__eq__(value, /)#

返回 self==value。

__ne__(value, /)#

返回 self!=value。

__lt__(value, /)#

返回 self<value。

__le__(value, /)#

返回 self<=value。

__gt__(value, /)#

返回 self>value。

__ge__(value, /)#

返回 self>=value。

属性

c#
x#
extrapolate#
axis#