scipy.interpolate.

PPoly#

class 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 是多项式的次数。

参数:
cndarray, 形状 (k, m, …)

多项式系数,阶数 km 个区间。

xndarray, 形状 (m+1,)

多项式断点。必须按递增或递减顺序排序。

extrapolatebool 或 ‘periodic’,可选

如果为布尔值,则确定是根据第一个和最后一个区间外推到界外点,还是返回 NaNs。如果为 'periodic',则使用周期性外推。默认为 True。

axisint,可选

插值轴。默认为零。

属性:
xndarray

断点。

cndarray

多项式的系数。它们被重塑为 3-D 数组,其中最后一维表示原始系数数组的尾部维度。

axisint

插值轴。

方法

__call__(x[, nu, extrapolate])

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

derivative([nu])

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

antiderivative([nu])

构造一个表示不定积分的新分段多项式。

integrate(a, b[, extrapolate])

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

solve([y, discontinuity, extrapolate])

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

roots([discontinuity, extrapolate])

查找分段多项式的实根。

extend(c, x)

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

from_spline(tck[, extrapolate])

从样条构造分段多项式

from_bernstein_basis(bp[, extrapolate])

从伯恩斯坦基多项式构造幂基分段多项式。

construct_fast(c, x[, extrapolate, axis])

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

另请参阅

BPoly

伯恩斯坦基分段多项式

注意

幂基中的高阶多项式可能在数值上不稳定。当阶数大于 20-30 时,可能会开始出现精度问题。