svd
Функция вычисления сингулярного разложения матрицы.
Синтаксис
S = svd(A);
S = svd(A, U, V);
Аргументы
| Имя | Тип данных | Описание |
|---|---|---|
| A | array2 | Входная матрица общего вида |
| U | array2 | Выходная матрица, содержащая левые сингулярные векторы по столбцам |
| V | array2 | Выходная матрица, содержащая правые сингулярные векторы по строкам |
Описание
svd(A) – функция вычисляет
сингулярное разложение матрицы A, результат - вектор сингулярных значений
S
svd(A, U,
V) – функция вычисляет сингулярное разложение матрицы A,
результат - вектор сингулярных значений S и матрицы левых и правых
сингулярных векторов U и V такие, что A = U * diag(S) *
V
Входная матрица A может задаваться:
- как переменная типа матрица, определенная ранее:
S = svd(A); - как матрица, состоящая из переменных, определенных ранее:
S = svd([[a1, a2],[a3, a4]]); - как постоянный массив:
S = svd([[1, 2],[5, 7]]);
Результат
| Имя | Тип данных | Описание |
|---|---|---|
| S | array | Вектор диагональных значений сингулярной матрицы. Сингулярные значения являются неотрицательными вещественными числами, расположенными в порядке убывания |
Пример 1
const A = [[1, 0, 1], [-1, -2, 0], [0, 1, -1]];
S = svd(A);
В скрипте примера производится сингулярное разложение матрицы A. В
результате выполнения скрипта массиву сингулярных S будет присвоено
значение [2.46050487 , 1.699628148 , 0.2391232783].
Пример 2
const A = [[1, 2], [3, 4], [5, 6], [7, 8]];
var U: array2, V: array2;
S = svd(A,U,V);
//Проверка разложения
D = U * diag(S,4) * V
В скрипте примера производится сингулярное разложение матрицы A. В
результате выполнения скрипта массиву сингулярных S будет присвоено
значение [14.2690955 , 0.6268282324]. Переменным U и V
будут присвоены значения матриц, содержащих левые и правые сингулярные векторы
соответственно:
U = [[-0.1524832333, -0.8226474722, -0.3945010223, -0.3799591339];
[-0.3499183718, -0.4213752877, 0.2427965457, 0.8006558795];
[-0.5473535103, -0.02010310314, 0.6979099754, -0.4614343574];
[-0.7447886488, 0.3811690814, -0.5462054989, 0.04073761175]]
V = [[-0.641423028, -0.7671873951];
[0.7671873951, -0.641423028]]
diag(S,4) = [[14.2690955, 0];
[ 0, 0.6268282324];
[ 0, 0];
[ 0, 0]]
Переменной D будет присвоено значение, равное исходной матрице
A.
Сопутствующие материалы
Материалов нет.