Транспонирование матрицы перед выполнением SVD с Jama
Поэтому я использую Jama (матричную библиотеку Java) для вычисления SVD матрицы A. Проблема в том, что Jama работает, только если A (mxn) - это матрица, где m >=n, и я использую матрицу, где m
Я читал, что это можно решить, выполнив A' (транспонировать). Так что если у вас есть
SVD(A) = U*D*V'
(U*D*V')' = V*D'*U'
По сути, они говорят, что вы можете получить тот же ответ, просто переместив U и V. Сингулярные значения в D остаются прежними. Путаница у меня с этим заключается в том, что, глядя на размеры
U (mxn)
D (nxn)
V/V' (nxn)
Но если бы вы делали SVD(A'), вы бы
U (nxm)
D (mxm)
V/V' (nxn)
Может кто-то объяснить это мне?