cupyx.scipy.interpolate.make_lsq_spline#
- cupyx.scipy.interpolate.make_lsq_spline(x, y, t, k=3, w=None, axis=0, check_finite=True, *, method='qr')[source]#
Construct a BSpline via an LSQ (Least SQuared) fit.
The result is a linear combination
\[S(x) = \sum_j c_j B_j(x; t)\]of the B-spline basis elements, \(B_j(x; t)\), which minimizes
\[\sum_{j} \left( w_j \times (S(x_j) - y_j) \right)^2\]- Parameters:
x (array_like, shape (m,)) – Abscissas.
y (array_like, shape (m, ...)) – Ordinates.
t (array_like, shape (n + k + 1,).) – Knots. Knots and data points must satisfy Schoenberg-Whitney conditions.
k (int, optional) – B-spline degree. Default is cubic,
k = 3
.w (array_like, shape (m,), optional) – Weights for spline fitting. Must be positive. If
None
, then weights are all equal. Default isNone
.axis (int, optional) – Interpolation axis. Default is zero.
check_finite (bool, optional) – Whether to check that the input arrays contain only finite numbers. Disabling may give a performance gain, but may result in problems (crashes, non-termination) if the inputs do contain infinities or NaNs. Default is True.
- Returns:
b
- Return type:
a BSpline object of the degree
k
with knotst
.
See also
scipy.interpolate.make_lsq_spline
BSpline
base class representing the B-spline objects
make_interp_spline
a similar factory function for interpolating splines
Notes
The number of data points must be larger than the spline degree
k
. Knotst
must satisfy the Schoenberg-Whitney conditions, i.e., there must be a subset of data pointsx[j]
such thatt[j] < x[j] < t[j+k+1]
, forj=0, 1,...,n-k-2
.