CubicHermiteSpline#
- class scipy.interpolate.CubicHermiteSpline(x, y, dydx, axis=0, extrapolate=None)[源代码]#
用于拟合值和一阶导数的分段三次插值器 (C1 光滑)。
结果表示为一个
PPoly
实例。- 参数:
- x类数组, 形状 (n,)
包含自变量值的一维数组。值必须是实数、有限且严格递增。
- y类数组
包含因变量值的数组。它可以具有任意数量的维度,但沿
axis
(见下文)的长度必须与x
的长度匹配。值必须是有限的。- dydx类数组
包含因变量导数的数组。它可以具有任意数量的维度,但沿
axis
(见下文)的长度必须与x
的长度匹配。值必须是有限的。- axis整数, 可选
假设 y 变化的轴。这意味着对于
x[i]
,对应的值是np.take(y, i, axis=axis)
。默认为 0。- extrapolate{布尔值, ‘periodic’, None}, 可选
如果是布尔值,则确定是根据第一个和最后一个区间外推到界外点,还是返回 NaNs。如果是‘periodic’,则使用周期性外推。如果是 None(默认),则设置为 True。
- 属性:
- xndarray, 形状 (n,)
断点。与传递给构造函数的
x
相同。- cndarray, 形状 (4, n-1, …)
每个分段上的多项式系数。末尾的维度与 y 的维度匹配,不包括
axis
。例如,如果 y 是一维的,则c[k, i]
是(x-x[i])**(3-k)
在x[i]
和x[i+1]
之间的分段上的系数。- axis整数
插值轴。与传递给构造函数的轴相同。
方法
__call__
(x[, nu, extrapolate])评估分段多项式或其导数。
derivative
([nu])构造一个表示导数的新分段多项式。
antiderivative
([nu])构造一个表示不定积分的新分段多项式。
integrate
(a, b[, extrapolate])计算分段多项式上的定积分。
solve
([y, discontinuity, extrapolate])找到方程
pp(x) == y
的实数解。roots
([discontinuity, extrapolate])找到分段多项式的实数根。
另请参阅
Akima1DInterpolator
Akima 一维插值器。
PchipInterpolator
PCHIP 一维单调三次插值器。
CubicSpline
三次样条数据插值器。
PPoly
以系数和断点表示的分段多项式
备注
如果要创建匹配更高阶导数的高阶样条,请使用
BPoly.from_derivatives
。参考文献
[1]维基百科上的三次Hermite样条。