scipy.interpolate.

splder#

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

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

参数:
tckB 样条实例或元组

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

nint,可选

要计算的导数阶数。默认值:1

返回:
BSpline 实例或元组

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

另请参见

splantider, splev, spalde
B 样条

注意

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\)十分吻合。

有关使用splevsplderspalde计算 B 样条的导数的比较,请参阅spalde示例部分。