scipy.interpolate.

splder#

scipy.interpolate.splder(tck, n=1)[source]#

Compute the spline representation of the derivative of a given spline

Legacy

This function is considered legacy and will no longer receive updates. While we currently have no plans to remove it, we recommend that new code uses more modern alternatives instead. Specifically, we recommend constructing a BSpline object and using its derivative method.

Parameters:
tckBSpline instance or tuple

BSpline instance or a tuple (t,c,k) containing the vector of knots, the B-spline coefficients, and the degree of the spline whose derivative to compute

nint, optional

Order of derivative to evaluate. Default: 1

Returns:
BSpline instance or tuple

Spline of order k2=k-n representing the derivative of the input spline. A tuple is returned if the input argument tck is a tuple, otherwise a BSpline object is constructed and returned.

Notes

Added in version 0.13.0.

Examples

This can be used for finding maxima of a curve:

>>> 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)

Now, differentiate the spline and find the zeros of the derivative. (NB: sproot only works for order 3 splines, so we fit an order 4 spline):

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

This agrees well with roots \(\pi/2 + n\pi\) of \(\cos(x) = \sin'(x)\).

A comparison between splev, splder and spalde to compute the derivatives of a B-spline can be found in the spalde examples section.