Полное сингулярное разложение в R
В большинстве приложений (особенно статистических) достаточно тонкого СВД. Однако иногда требуется полный SVD, чтобы получить ортобазис нулевого пространства матрицы (и его сопряженного). Похоже, что svd() в R возвращает только тонкую версию. Можно ли произвести полную версию? Есть ли альтернативы?
2 ответа
Решение
library(sos)
> findFn("svd NULL space")
found 47 matches; retrieving 3 pages
Это выглядит на точке:
R Core использует процедуры Linpack, Lapack, ... которые ему нужны.
Если вам нужно что-то другое, вам, вероятно, нужно либо получить другие подпрограммы Linpack и т. Д., Либо подключиться к библиотеке, предоставляющей больше.
Даг Бейтс только что обернул библиотеку Eigen в пакет RcppEigen, который может иметь что-то для вас. Eigen выглядит мощным и довольно функциональным, но в то же время высоко оптимизированным.