scipy.linalg.interpolative.
svd#
- scipy.linalg.interpolative.svd(A, eps_or_k, rand=True, rng=None)[source]#
透過 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
或scipy.sparse.linalg.LinearOperator
的形式給定,具有 matvec 和 rmatvec 方法(用於應用矩陣及其伴隨)。- 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
左奇異向量的 2D 陣列。
- S
numpy.ndarray
奇異值的 1D 陣列。
- V
numpy.ndarray
右奇異向量的 2D 陣列。
- U