One-dimensional spline with explicit internal knots.
Fits a spline y=s(x) of degree k to the provided x, y data. t specifies the internal knots of the spline
Parameters: | x : (N,) array_like
y : (N,) array_like
t : (M,) array_like
w : (N,) array_like, optional
bbox : (2,) array_like, optional
k : int, optional
|
---|---|
Raises: | ValueError
|
See also
Notes
The number of data points must be larger than the spline degree k.
Examples
>>> from numpy import linspace,exp
>>> from numpy.random import randn
>>> from scipy.interpolate import LSQUnivariateSpline
>>> import matplotlib.pyplot as plt
>>> x = linspace(-3,3,100)
>>> y = exp(-x**2) + randn(100)/10
>>> t = [-1,0,1]
>>> s = LSQUnivariateSpline(x,y,t)
>>> xs = linspace(-3,3,1000)
>>> ys = s(xs)
>>> plt.plot(x, y, '.-')
>>> plt.plot(xs, ys)
>>> plt.show()
xs,ys is now a smoothed, super-sampled version of the noisy gaussian x,y with knots [-3,-1,0,1,3]
Methods
__call__(x[, nu]) | Evaluate spline (or its nu-th derivative) at positions x. |
antiderivative([n]) | Construct a new spline representing the antiderivative of this spline. |
derivative([n]) | Construct a new spline representing the derivative of this spline. |
derivatives(x) | Return all derivatives of the spline at the point x. |
get_coeffs() | Return spline coefficients. |
get_knots() | Return positions of (boundary and interior) knots of the spline. |
get_residual() | Return weighted sum of squared residuals of the spline approximation: sum((w[i] * (y[i]-s(x[i])))**2, axis=0). |
integral(a, b) | Return definite integral of the spline between two given points. |
roots() | Return the zeros of the spline. |
set_smoothing_factor(s) | Continue spline computation with the given smoothing factor s and with the knots found at the last call. |