scipy.interpolate.
splder#
- scipy.interpolate.splder(tck, n=1)[源代码][源代码]#
计算给定样条的导数的样条表示
- 参数:
- tckBSpline 实例或元组
BSpline 实例或一个元组 (t,c,k),包含节点向量、B样条系数和样条的阶数,用于计算其导数。
- nint, 可选
要计算的导数的阶数。默认值:1
- 返回:
BSpline
实例或元组阶数为 k2=k-n 的样条曲线,表示输入样条曲线的导数。如果输入参数 tck 是一个元组,则返回一个元组,否则构造并返回一个 BSpline 对象。
参见
注释
Added in version 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\) 非常吻合。