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, …)
多项式系数,阶数 k 和 m 个区间。
- 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 时,可能会开始出现精度问题。