scipy.interpolate.

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样条