scipy.linalg.interpolative.

svd#

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

Berechnet die SVD einer Matrix über eine ID.

Eine SVD einer Matrix A ist eine Faktorisierung

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

wobei U und V orthonormale Spalten haben und S nicht negativ ist.

Die SVD kann mit jeder relativen Genauigkeit oder jedem Rang berechnet werden (abhängig vom Wert von eps_or_k).

Siehe auch interp_decomp und id_to_svd.

Parameter:
Anumpy.ndarray oder scipy.sparse.linalg.LinearOperator

Zu faktorisierende Matrix, entweder als numpy.ndarray oder als scipy.sparse.linalg.LinearOperator mit den Methoden matvec und rmatvec (zum Anwenden der Matrix und ihrer Adjungierten).

eps_or_kfloat oder int

Relative Fehler (wenn eps_or_k < 1) oder Rang (wenn eps_or_k >= 1) der Approximation.

randbool, optional

Ob Zufallsabtastung verwendet werden soll, wenn A vom Typ numpy.ndarray ist (zufallsbasierte Algorithmen werden immer verwendet, wenn A vom Typ scipy.sparse.linalg.LinearOperator ist).

rngnumpy.random.Generator, optional

Zustand des Pseudozufallszahlengenerators. Wenn rng None ist, wird ein neuer numpy.random.Generator mithilfe von Entropie aus dem Betriebssystem erstellt. Typen außer numpy.random.Generator werden an numpy.random.default_rng übergeben, um einen Generator zu instanziieren. Wenn rand False ist, wird das Argument ignoriert.

Rückgabe:
Unumpy.ndarray

2D-Array der linken singulären Vektoren.

Snumpy.ndarray

1D-Array der singulären Werte.

Vnumpy.ndarray

2D-Array der rechten singulären Vektoren.