
- SVD разложение, где M - m x n матрица, U - m x m,

- m x n, V - n x n.

- матрица сингулярных значений, диагональная.
U, V - ортогональны.
Для машинной реализации, для случая m > n, удобно использовать вместо m x m матрицы U, матрицу m x n

, вместо

- n x n матрицу

- после их перемножения все равно получится матрица M (это понятно почему).
Теперь в чем проблема. Процедура из библиотеки GSL, реализующая SVD разложение (методом Голуба-Рейнча) требует, чтобы исходная матрица была размерностью m x n, где

.
А как быть со случаем, когда m < n?
Правильно ли я понимаю, что в этом случае надо найти разложение

и поменять местами U и V?
Добавлено спустя 1 час 47 минут 8 секунд:
ой все пардон
