cupyx.scipy.interpolate.NdPPoly#
- 类 cupyx.scipy.interpolate.NdPPoly(c, x, extrapolate=None)[source]#
分段张量积多项式
点
xp = (x', y', z', ...)
处的值通过首先计算满足以下条件的区间索引 i 来评估x[0][i[0]] <= x' < x[0][i[0]+1] x[1][i[1]] <= y' < x[1][i[1]+1] ...
然后计算
S = sum(c[k0-m0-1,...,kn-mn-1,i[0],...,i[n]] * (xp[0] - x[0][i[0]])**m0 * ... * (xp[n] - x[n][i[n]])**mn for m0 in range(k[0]+1) ... for mn in range(k[n]+1))
其中
k[j]
是维度 j 中多项式的次数。这种表示是分段多元幂基。- 参数:
- 变量:
另请参阅
PPoly
一维分段多项式
说明
幂基中的高阶多项式在数值上可能不稳定。
方法
- __call__(x, nu=None, extrapolate=None)[source]#
评估分段多项式或其导数
- 参数:
- 返回:
y – 插值结果。形状由将原始数组中的插值轴替换为 x 的形状决定。
- 返回类型:
类数组
说明
导数针对每个多项式段分段评估,即使多项式在断点处不可微分也是如此。多项式区间被视为半开区间
[a, b)
,最后一个区间除外,它是闭区间[a, b]
。
- antiderivative(nu)[source]#
构造表示反导数的新分段多项式。反导数也是函数的不定积分,导数是其逆运算。
- 参数:
nu (ndim-tuple of int) – 评估每个维度的导数阶数。如果为负,则返回导数。
- 返回:
pp – 表示该多项式的反导数的阶数 k2 = k + n 的分段多项式。
- 返回类型:
说明
此函数返回的反导数是连续的,并且直到 n-1 阶都是连续可微的,直到浮点舍入误差为止。
- classmethod construct_fast(c, x, extrapolate=None)[source]#
构造分段多项式,不进行检查。
参数与构造函数相同。输入参数
c
和x
必须是正确形状和类型的数组。c
数组只能是 dtypes float 和 complex,x
数组必须是 dtype float。
- derivative(nu)[source]#
构造表示导数的新分段多项式。
- 参数:
nu (ndim-tuple of int) – 评估每个维度的导数阶数。如果为负,则返回反导数。
- 返回:
pp – 表示该多项式的导数的阶数 (k[0] - nu[0], …, k[n] - nu[n]) 的分段多项式。
- 返回类型:
说明
导数针对每个多项式段分段评估,即使多项式在断点处不可微分也是如此。每个维度中的多项式区间被视为半开区间
[a, b)
,最后一个区间除外,它是闭区间[a, b]
。
- integrate(ranges, extrapolate=None)[source]#
计算分段多项式上的定积分。
- 参数:
ranges (ndim-tuple of 2-tuples float) – 每个维度的下限和上限序列,
[(a[0], b[0]), ..., (a[ndim-1], b[ndim-1])]
extrapolate (bool, optional) – 是否根据第一个和最后一个区间对外插界外点,或返回 NaNs。
- 返回:
ig – 分段多项式在 [a[0], b[0]] x … x [a[ndim-1], b[ndim-1]] 上的定积分
- 返回类型:
类数组
- integrate_1d(a, b, axis, extrapolate=None)[source]#
计算一维定积分的 NdPPoly 表示
结果是表示积分的分段多项式其中积分的维度由 axis 参数指定。
- __eq__(value, /)#
返回 self==value。
- __ne__(value, /)#
返回 self!=value。
- __lt__(value, /)#
返回 self<value。
- __le__(value, /)#
返回 self<=value。
- __gt__(value, /)#
返回 self>value。
- __ge__(value, /)#
返回 self>=value。