scipy.linalg.lstsq¶

scipy.linalg.
lstsq
(a, b, cond=None, overwrite_a=False, overwrite_b=False, check_finite=True, lapack_driver=None)[source]¶ Compute leastsquares solution to equation Ax = b.
Compute a vector x such that the 2norm
b  A x
is minimized.Parameters: a : (M, N) array_like
Left hand side matrix (2D array).
b : (M,) or (M, K) array_like
Right hand side matrix or vector (1D or 2D array).
cond : float, optional
Cutoff for ‘small’ singular values; used to determine effective rank of a. Singular values smaller than
rcond * largest_singular_value
are considered zero.overwrite_a : bool, optional
Discard data in a (may enhance performance). Default is False.
overwrite_b : bool, optional
Discard data in b (may enhance performance). Default is False.
check_finite : bool, optional
Whether to check that the input matrices contain only finite numbers. Disabling may give a performance gain, but may result in problems (crashes, nontermination) if the inputs do contain infinities or NaNs.
lapack_driver : str, optional
Which LAPACK driver is used to solve the leastsquares problem. Options are
'gelsd'
,'gelsy'
,'gelss'
. Default ('gelsd'
) is a good choice. However,'gelsy'
can be slightly faster on many problems.'gelss'
was used historically. It is generally slow but uses less memory.New in version 0.17.0.
Returns: x : (N,) or (N, K) ndarray
Leastsquares solution. Return shape matches shape of b.
residues : () or (1,) or (K,) ndarray
Sums of residues, squared 2norm for each column in
b  a x
. If rank of matrix a is< N
orN > M
, or'gelsy'
is used, this is an empty array. If b was 1D, this is an (1,) shape array, otherwise the shape is (K,).rank : int
Effective rank of matrix a.
s : (min(M,N),) ndarray or None
Singular values of a. The condition number of a is
abs(s[0] / s[1])
. None is returned when'gelsy'
is used.Raises: LinAlgError
If computation does not converge.
ValueError
When parameters are wrong.
See also
optimize.nnls
 linear least squares with nonnegativity constraint