Eigenvalue Decomposition
После более детального исследования оказалось, что других хороших библиотек кроме Matrix Toolkits for Java для работы с матрицами и векторами на Java попросту нет. Ни по набору функций, ни по производительности. MTJ построена поверх BLAS/LAPACK и может использовать оптимизированные под определенную платформу реализации этих библиотек (инструкции для Linux и Windows).
Достаточно часто в задачах IR требуется найти собственные вектора какой-либо матрицы
Binaries: mtj.jar
Source code: mtj-src.tar.gz
Достаточно часто в задачах IR требуется найти собственные вектора какой-либо матрицы
nxn
(eigenvalue decomposition, EVD), причем обычно нам нужны только k << n
векторов соответствующих k
наибольшим собственным числам матрицы. Но существующие в MTJ классы для вычисления EVD находят сразу все вектора, что приводит к совершенно неоправданным временным затратам. Для решения этой задачи я немного модифицировал класс SymmDenseEVD
, который находит собственные вектора у симметричной матрицы. Теперь в конструкторе можно задать какие собственные числа (по убыванию) и соответствующие им вектора нам нужны.Binaries: mtj.jar
Source code: mtj-src.tar.gz
Комментариев нет:
Отправить комментарий