{ } Raw JSON

bundles / scipy 1.17.1 / scipy / linalg / interpolative / svd

function

scipy.linalg.interpolative:svd

source: /scipy/linalg/interpolative.py :776

Signature

def   svd ( A eps_or_k rand = True rng = None )

Summary

Compute SVD of a matrix via an ID.

Extended Summary

An SVD of a matrix A is a factorization

A = U @ np.diag(S) @ V.conj().T

where U and V have orthonormal columns and S is nonnegative.

The SVD can be computed to any relative precision or rank (depending on the value of eps_or_k).

See also interp_decomp and id_to_svd.

Parameters

A : :class:`numpy.ndarray` or :class:`scipy.sparse.linalg.LinearOperator`

Matrix to be factored, given as either a numpy.ndarray or a scipy.sparse.linalg.LinearOperator with the matvec and rmatvec methods (to apply the matrix and its adjoint).

eps_or_k : float or int

Relative error (if eps_or_k < 1) or rank (if eps_or_k >= 1) of approximation.

rand : bool, optional

Whether to use random sampling if A is of type numpy.ndarray (randomized algorithms are always used if A is of type scipy.sparse.linalg.LinearOperator).

rng : `numpy.random.Generator`, optional

Pseudorandom number generator state. When rng is None, a new numpy.random.Generator is created using entropy from the operating system. Types other than numpy.random.Generator are passed to numpy.random.default_rng to instantiate a Generator. If rand is False, the argument is ignored.

Returns

U : :class:`numpy.ndarray`

2D array of left singular vectors.

S : :class:`numpy.ndarray`

1D array of singular values.

V : :class:`numpy.ndarray`

2D array right singular vectors.

Aliases

  • scipy.linalg.interpolative.svd