cupyx.scipy.interpolate.CubicHermiteSpline#
- class cupyx.scipy.interpolate.CubicHermiteSpline(x, y, dydx, axis=0, extrapolate=None)[source]#
分段三次插值器,匹配值和一阶导数。
结果表示为一个 PPoly 实例。 [1]
- 参数:
x (类数组, 形状 (n,)) – 包含自变量值的一维数组。值必须是实数、有限且严格递增。
y (类数组) – 包含因变量值的数组。它可以具有任意维数,但沿
axis
(见下文) 方向的长度必须与x
的长度匹配。值必须是有限的。dydx (类数组) – 包含因变量导数的数组。它可以具有任意维数,但沿
axis
(见下文) 方向的长度必须与x
的长度匹配。值必须是有限的。axis (int, 可选) – 假定 y 变化的轴。这意味着对于
x[i]
,对应的值是cupy.take(y, i, axis=axis)
。默认为 0。extrapolate ({bool, 'periodic', None}, 可选) – 如果为 bool 类型,则确定是否根据第一个和最后一个区间外推到界外点,或者返回 NaNs。如果为 'periodic',则使用周期性外推。如果为 None (默认),则设置为 True。
- 变量:
另请参阅
Akima1DInterpolator
Akima 一维插值器。
PchipInterpolator
PCHIP 一维单调三次插值器。
PPoly
以系数和断点表示的分段多项式
注意
如果要创建匹配更高阶导数的高阶样条,请使用 BPoly.from_derivatives。
参考
方法
- __call__(x, nu=0, extrapolate=None)[source]#
评估分段多项式或其导数。
- 参数:
x (类数组) – 要评估插值器的点。
nu (int, 可选) – 要评估的导数阶数。必须是非负数。
extrapolate ({bool, 'periodic', None}, 可选) – 如果为 bool 类型,则确定是否根据第一个和最后一个区间外推到界外点,或者返回 NaNs。如果为 'periodic',则使用周期性外推。如果为 None (默认),则使用 self.extrapolate。
- 返回值:
y – 插值结果。形状由将原始数组中的插值轴替换为 x 的形状确定。
- 返回类型:
类数组
注意
导数在每个多项式段上分段评估,即使多项式在断点处不可微。多项式区间被视为半开区间
[a, b)
,除了最后一个区间是闭合的[a, b]
。
- antiderivative(nu=1)[source]#
构造一个表示反导数的新分段多项式。反导数也是函数的不定积分,导数是其逆运算。
- 参数:
nu (int, 可选) – 要评估的反导数阶数。默认为 1,即计算一阶积分。如果为负数,则返回导数。
- 返回值:
pp – 表示此多项式反导数的、阶数为 k2 = k + n 的分段多项式。
- 返回类型:
注意
此函数返回的反导数是连续的,并且连续可微直到 n-1 阶,误差在浮点舍入范围内。
如果计算了反导数且
self.extrapolate='periodic'
,则返回的实例的extrapolate
将设置为 False。这是因为反导数不再是周期性的,并且在初始给定 x 区间之外的正确评估是困难的。
- classmethod construct_fast(c, x, extrapolate=None, axis=0)[source]#
构造分段多项式,不进行检查。接受与构造函数相同的参数。输入参数
c
和x
必须是形状和类型正确的数组。c
数组只能是 float 和 complex 数据类型,x
数组必须是 float 数据类型。
- derivative(nu=1)[source]#
构造一个表示导数的新分段多项式。
- 参数:
nu (int, 可选) – 要评估的导数阶数。默认为 1,即计算一阶导数。如果为负数,则返回反导数。
- 返回值:
pp – 表示此多项式导数的、阶数为 k2 = k - n 的分段多项式。
- 返回类型:
注意
导数在每个多项式段上分段评估,即使多项式在断点处不可微。多项式区间被视为半开区间
[a, b)
,除了最后一个区间是闭合的[a, b]
。
- classmethod from_spline(tck, extrapolate=None)[source]#
从样条构造分段多项式
- 参数:
tck – 一个样条,可以是一个 (knots, coefficients, degree) 元组或一个 BSpline 对象。
extrapolate (bool or 'periodic', 可选) – 如果为 bool 类型,则确定是否根据第一个和最后一个区间外推到界外点,或者返回 NaNs。如果为 'periodic',则使用周期性外推。默认为 True。
- roots(discontinuity=True, extrapolate=None)[source]#
查找分段多项式的实根。
- 参数:
discontinuity (bool, 可选) – 是否将断点处不连续点的符号变化报告为根。
extrapolate ({bool, 'periodic', None}, 可选) – 如果为 bool 类型,则确定是否返回根据第一个和最后一个区间外推的多项式的根;‘periodic’ 的作用与 False 相同。如果为 None (默认),则使用 self.extrapolate。
- 返回值:
roots – 多项式的根。如果 PPoly 对象描述了多个多项式,则返回值为一个对象数组,其每个元素都是一个包含根的 ndarray。
- 返回类型:
另请参阅
- solve(y=0.0, discontinuity=True, extrapolate=None)[source]#
找到方程
pp(x) == y
的实数解。- 参数:
- 返回值:
roots – 多项式的根。如果 PPoly 对象描述了多个多项式,则返回值为一个对象数组,其每个元素都是一个包含根的 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#