Java SVD как определено википедией - PullRequest
3 голосов
/ 01 декабря 2011

Я ищу библиотеку Java, которая выполняет декомпозицию единственного значения, как описано в википедии: из матрицы A (m X n) получаем A = U * S * V ', где U - mxm, S - mxn, а V - nx n.

Кто-нибудь может мне помочь?

Пожалуйста, не отвечайте на жеребенка или джаму, потому что их определение SVD отличается от определения Википедии. На самом деле colt возвращает A = U * S * V ', где U - m x n, S - n x n и V - n x n.

Альтернатива, как я могу вычислить svd Википедии, используя кольт?

Спасибо

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Java-документ для методов единственного разложения из jblas , кажется, придерживается этого определения, поскольку вы требуете его с первого взгляда, но я думаю, что вам придется проверить, чтобы получить какую-то определенность.

Еще один универсальный пакет Java Matrix Package , но просмотр JavaDoc вызывает недоумение и заставляет меня немного опасаться за его дизайн (интерфейс для определения геттеров и сеттеров?!)

1 голос
/ 13 февраля 2012

Извините за поздний ответ. Но лучше поздно, чем никогда.

Если вы внимательно посмотрите на страницу википедии,

она изображает матрицу 4 * 5, которая разбита на u: 4 * 4, с: 4 * 5, v = 5 * 5

Но если вы внимательно посмотрите на нее, то матрица s имеет последнюю строку и последнюю колонку, полную нулей, следовательно, это фактически матрица 4 * 4. (т.е. нижний размер используется только постоянно)

Полагаю, это отвечает на ваш вопрос!

...