cupyx.scipy.interpolate.PPoly#
- class cupyx.scipy.interpolate.PPoly(c, x, extrapolate=None, axis=0)[源代码][源代码]#
分段多项式,关于系数和断点 在
x[i]和x[i + 1]之间的多项式,以局部幂基表示:S = sum(c[m, i] * (xp - x[i]) ** (k - m) for m in range(k + 1))
其中
k是多项式的次数。- 参数:
- 变量:
参见
BPolyBernstein 基中的分段多项式
备注
幂基中的高阶多项式在数值上可能不稳定。对于阶数大于20-30的情况,精度问题可能会开始出现。
方法
- __call__(x, nu=0, extrapolate=None)[源代码]#
评估分段多项式或其导数。
- 参数:
x (array_like) – 评估插值点。
nu (int, optional) – 要评估的导数的阶数。必须是非负的。
extrapolate ({bool, 'periodic', None}, optional) – 如果是布尔值,决定是否根据第一个和最后一个区间外推到边界外的点,或者返回NaN。如果是’periodic’,则使用周期性外推。如果是None(默认),则使用`self.extrapolate`。
- 返回:
y – 插值后的值。形状由将原始数组中的插值轴替换为 x 的形状决定。
- 返回类型:
array_like
备注
即使多项式在断点处不可微,导数也会针对每个多项式段进行分段评估。多项式区间被视为半开区间
[a, b),除了最后一个区间是闭区间[a, b]。
- antiderivative(nu=1)[源代码][源代码]#
构建一个新的分段多项式表示反导数。反导数也是函数的定积分,导数是其逆运算。
- 参数:
nu (int, optional) – 反导数的顺序以进行评估。默认值为1,即计算第一个积分。如果是负数,则返回导数。
- 返回:
pp – 阶数为 k2 = k + n 的分段多项式,表示此多项式的反导数。
- 返回类型:
备注
此函数返回的原函数是连续的,并且可以连续微分到 n-1 阶,直到浮点数舍入误差为止。
如果计算了反导数并且
self.extrapolate='periodic',它将被设置为 False 以返回实例。这样做是因为反导数不再是周期性的,并且在其最初给定的 x 区间之外的正确评估变得困难。
- classmethod construct_fast(c, x, extrapolate=None, axis=0)[源代码]#
在不进行检查的情况下构造分段多项式。接受与构造函数相同的参数。输入参数
c和x必须是正确形状和类型的数组。c数组只能是 float 和 complex 的 dtypes,而x数组必须具有 float 的 dtype。
- derivative(nu=1)[源代码][源代码]#
构建一个新的分段多项式,表示导数。
- 参数:
nu (int, optional) – 要计算的导数的阶数。默认是 1,即计算一阶导数。如果是负数,则返回不定积分。
- 返回:
pp – 阶数 k2 = k - n 的分段多项式,表示此多项式的导数。
- 返回类型:
备注
即使多项式在断点处不可微,导数也会针对每个多项式段进行分段评估。多项式区间被视为半开区间
[a, b),除了最后一个区间是闭区间[a, b]。
- classmethod from_spline(tck, extrapolate=None)[源代码][源代码]#
从样条曲线构建分段多项式
- 参数:
tck – 样条,作为一个 (节点, 系数, 次数) 元组或一个 BSpline 对象。
extrapolate (bool or 'periodic', optional) – 如果是布尔值,决定是否根据第一个和最后一个区间对边界外的点进行外推,或者返回NaN。如果是’periodic’,则使用周期性外推。默认为True。
- roots(discontinuity=True, extrapolate=None)[源代码][源代码]#
找到分段多项式的实根。
- 参数:
discontinuity (bool, optional) – 是否在断点处将跨越不连续点的符号变化报告为根。
extrapolate ({bool, 'periodic', None}, optional) – 如果是布尔值,决定是否基于第一个和最后一个区间返回从多项式外推得到的根,’periodic’ 的工作方式与 False 相同。如果是 None(默认),则使用 self.extrapolate。
- 返回:
roots – 多项式(或多组多项式)的根。如果 PPoly 对象描述了多个多项式,返回值是一个对象数组,其中每个元素是一个包含根的 ndarray。
- 返回类型:
参见
- solve(y=0.0, discontinuity=True, extrapolate=None)[源代码][源代码]#
找到方程
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#