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
其中 U 和 V 具有标准正交列,S 是非负的。
可以计算 SVD 到任何相对精度或秩(取决于 eps_or_k 的值)。
另请参阅
interp_decomp
和id_to_svd
。- 参数:
- A
numpy.ndarray
或scipy.sparse.linalg.LinearOperator
要分解的矩阵,可以是
numpy.ndarray
或具有 matvec 和 rmatvec 方法(用于应用矩阵及其伴随)的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
,则始终使用随机算法)。- rng
numpy.random.Generator
,可选 伪随机数生成器状态。当 rng 为 None 时,将使用来自操作系统的熵创建一个新的
numpy.random.Generator
。除numpy.random.Generator
之外的类型将传递给numpy.random.default_rng
以实例化Generator
。如果rand
是False
,则忽略该参数。
- A
- 返回:
- U
numpy.ndarray
左奇异向量的二维数组。
- S
numpy.ndarray
奇异值的一维数组。
- V
numpy.ndarray
右奇异向量的二维数组。
- U