scipy.linalg.interpolative.

svd#

scipy.linalg.interpolative.svd(A, eps_or_k, rand=True, rng=None)[源代码]#

通过 ID 计算矩阵的 SVD。

矩阵 A 的 SVD 是一种分解

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

其中 UV 具有标准正交列,S 是非负的。

可以计算 SVD 到任何相对精度或秩(取决于 eps_or_k 的值)。

另请参阅 interp_decompid_to_svd

参数:
Anumpy.ndarrayscipy.sparse.linalg.LinearOperator

要分解的矩阵,可以是 numpy.ndarray 或具有 matvecrmatvec 方法(用于应用矩阵及其伴随)的 scipy.sparse.linalg.LinearOperator

eps_or_kfloat 或 int

近似的相对误差(如果 eps_or_k < 1)或秩(如果 eps_or_k >= 1)。

randbool,可选

如果 A 的类型是 numpy.ndarray 是否使用随机抽样(如果 A 的类型是 scipy.sparse.linalg.LinearOperator,则始终使用随机算法)。

rngnumpy.random.Generator,可选

伪随机数生成器状态。当 rng 为 None 时,将使用来自操作系统的熵创建一个新的 numpy.random.Generator。除 numpy.random.Generator 之外的类型将传递给 numpy.random.default_rng 以实例化 Generator。如果 randFalse,则忽略该参数。

返回:
Unumpy.ndarray

左奇异向量的二维数组。

Snumpy.ndarray

奇异值的一维数组。

Vnumpy.ndarray

右奇异向量的二维数组。