Транспонирование матрицы перед выполнением 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)

Может кто-то объяснить это мне?

0 ответов

Другие вопросы по тегам