jax.numpy.polyfit
jax.numpy.polyfit#
- jax.numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)[source]#
Least squares polynomial fit.
LAX-backend implementation of
numpy.polyfit()
.Unlike NumPyâ€™s implementation of polyfit,
jax.numpy.polyfit()
will not warn on rank reduction, which indicates an ill conditioned matrix Also, it works best on rcond <= 10e-3 values.Original docstring below.
Note
This forms part of the old polynomial API. Since version 1.4, the new polynomial API defined in numpy.polynomial is preferred. A summary of the differences can be found in the transition guide.
Fit a polynomial
p(x) = p[0] * x**deg + ... + p[deg]
of degree deg to points (x, y). Returns a vector of coefficients p that minimises the squared error in the order deg, deg-1, â€¦ 0.The Polynomial.fit <numpy.polynomial.polynomial.Polynomial.fit> class method is recommended for new code as it is more stable numerically. See the documentation of the method for more information.
- Parameters
x (array_like, shape (M,)) â€“ x-coordinates of the M sample points
(x[i], y[i])
.y (array_like, shape (M,) or (M, K)) â€“ y-coordinates of the sample points. Several data sets of sample points sharing the same x-coordinates can be fitted at once by passing in a 2D-array that contains one dataset per column.
deg (int) â€“ Degree of the fitting polynomial
rcond (float, optional) â€“ Relative condition number of the fit. Singular values smaller than this relative to the largest singular value will be ignored. The default value is len(x)*eps, where eps is the relative precision of the float type, about 2e-16 in most cases.
full (bool, optional) â€“ Switch determining nature of return value. When it is False (the default) just the coefficients are returned, when True diagnostic information from the singular value decomposition is also returned.
w (array_like, shape (M,), optional) â€“ Weights. If not None, the weight
w[i]
applies to the unsquared residualy[i] - y_hat[i]
atx[i]
. Ideally the weights are chosen so that the errors of the productsw[i]*y[i]
all have the same variance. When using inverse-variance weighting, usew[i] = 1/sigma(y[i])
. The default value is None.cov (bool or str, optional) â€“ If given and not False, return not just the estimate but also its covariance matrix. By default, the covariance are scaled by chi2/dof, where dof = M - (deg + 1), i.e., the weights are presumed to be unreliable except in a relative sense and everything is scaled such that the reduced chi2 is unity. This scaling is omitted if
cov='unscaled'
, as is relevant for the case that the weights are w = 1/sigma, with sigma known to be a reliable estimate of the uncertainty.
- Returns
p (ndarray, shape (deg + 1,) or (deg + 1, K)) â€“ Polynomial coefficients, highest power first. If y was 2-D, the coefficients for k-th data set are in
p[:,k]
.residuals, rank, singular_values, rcond â€“ These values are only returned if
full == True
residuals â€“ sum of squared residuals of the least squares fit
- rank â€“ the effective rank of the scaled Vandermonde
coefficient matrix
- singular_values â€“ singular values of the scaled Vandermonde
coefficient matrix
rcond â€“ value of rcond.
For more details, see numpy.linalg.lstsq.
V (ndarray, shape (M,M) or (M,M,K)) â€“ Present only if
full == False
andcov == True
. The covariance matrix of the polynomial coefficient estimates. The diagonal of this matrix are the variance estimates for each coefficient. If y is a 2-D array, then the covariance matrix for the k-th data set are inV[:,:,k]
References
- 1
Wikipedia, â€śCurve fittingâ€ť, https://en.wikipedia.org/wiki/Curve_fitting
- 2
Wikipedia, â€śPolynomial interpolationâ€ť, https://en.wikipedia.org/wiki/Polynomial_interpolation