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

其中 UV 具有正交歸一化列,而 S 是非負的。

SVD 可以計算到任何相對精度或秩(取決於 eps_or_k 的值)。

另請參閱 interp_decompid_to_svd

參數:
Anumpy.ndarrayscipy.sparse.linalg.LinearOperator

要分解的矩陣,可以是以 numpy.ndarrayscipy.sparse.linalg.LinearOperator 的形式給定,具有 matvecrmatvec 方法(用於應用矩陣及其伴隨)。

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

左奇異向量的 2D 陣列。

Snumpy.ndarray

奇異值的 1D 陣列。

Vnumpy.ndarray

右奇異向量的 2D 陣列。