scipy.interpolate.

NdPPoly#

class scipy.interpolate.NdPPoly(c, x, extrapolate=None)[源代码]#

分段张量积多项式

在点 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 中多项式的阶数。 这种表示是分段多元幂基。

参数:
cndarray,形状 (k0, …, kn, m0, …, mn, …)

多项式系数,每个维度 j 的多项式阶数为 kj,区间数为 mj+1

xndim-元组的 ndarray,形状为 (mj+1,)

每个维度的多项式断点。 这些必须按递增顺序排序。

extrapolatebool,可选

是否基于第一个和最后一个区间外推到超出范围的点,或者返回 NaN。 默认值:True。

参见

PPoly

1D 中的分段多项式

说明

幂基中的高阶多项式可能在数值上不稳定。

属性:
xndarray 元组

断点。

cndarray

多项式的系数。

方法

__call__(x[, nu, extrapolate])

计算分段多项式或其导数

derivative(nu)

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

antiderivative(nu)

构造一个新的分段多项式来表示反导数。

integrate(ranges[, extrapolate])

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

integrate_1d(a, b, axis[, extrapolate])

计算一维定积分的 NdPPoly 表示

construct_fast(c, x[, extrapolate])

构造分段多项式,而不进行检查。