scipy.linalg.interpolative.

svd#

scipy.linalg.interpolative.svd(A, eps_or_k, rand=True, rng=None)[источник]#

Вычислите SVD матрицы через ID.

SVD матрицы A является факторизацией:

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

где U и V имеют ортонормированные столбцы и S неотрицательно.

SVD может быть вычислена с любой относительной точностью или рангом (в зависимости от значения eps_or_k).

Смотрите также interp_decomp и id_to_svd.

Параметры:
Anumpy.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).

rngnumpy.random.Generator, опционально

Состояние генератора псевдослучайных чисел. Когда rng равно None, новый numpy.random.Generator создаётся с использованием энтропии из операционной системы. Типы, отличные от numpy.random.Generator передаются в numpy.random.default_rng для создания экземпляра Generator. Если rand является False, аргумент игнорируется.

Возвращает:
Unumpy.ndarray

2D массив левых сингулярных векторов.

Snumpy.ndarray

Одномерный массив сингулярных значений.

Vnumpy.ndarray

2D массив правых сингулярных векторов.