scipy.interpolate.

splder#

scipy.interpolate.splder(tck, n=1)[源代码]#

计算给定样条的导数的样条表示

旧版

此函数被认为是旧版,将不再接收更新。虽然我们目前没有计划删除它,但我们建议新代码使用更现代的替代方案。具体来说,我们建议构造一个 BSpline 对象并使用其 derivative 方法。

参数:
tckBSpline 实例或元组

BSpline 实例或包含节点向量、B 样条系数和要计算导数的样条的阶数的元组 (t,c,k)

nint,可选

要评估的导数阶数。默认值:1

返回:
BSpline 实例或元组

表示输入样条导数的 k2=k-n 阶的样条。如果输入参数 tck 是元组,则返回元组,否则构造并返回 BSpline 对象。

另请参阅

splantider, splev, spalde
BSpline

注释

在版本 0.13.0 中添加。

示例

这可以用于查找曲线的最大值

>>> from scipy.interpolate import splrep, splder, sproot
>>> import numpy as np
>>> x = np.linspace(0, 10, 70)
>>> y = np.sin(x)
>>> spl = splrep(x, y, k=4)

现在,对样条进行微分并找到导数的零点。(注意:sproot 仅适用于 3 阶样条,因此我们拟合一个 4 阶样条)

>>> dspl = splder(spl)
>>> sproot(dspl) / np.pi
array([ 0.50000001,  1.5       ,  2.49999998])

这与 \(\cos(x) = \sin'(x)\) 的根 \(\pi/2 + n\pi\) 非常吻合。

可以在 spalde 示例部分中找到 splevsplderspalde 之间用于计算 B 样条的导数的比较。