У меня есть проблема, когда мне нужно найти все положительные (так как собственное значение положительно) собственные пары небольшой (обычно меньше, чем 60x60) несимметричной матрицы. Я могу прекратить вычислять, когда собственное значение меньше определенного порога. Я знаю, что собственные значения реальны. Какие-нибудь предложения по алгоритмам, которые я мог бы использовать, чтобы попытаться выжать лучшую производительность? Я должен сделать несколько тысяч таких разложений, поэтому скорость важна.
Заранее спасибо.
РЕДАКТИРОВАТЬ: Мне нужно сделать это на GPU в общей памяти. Матрицы также не обязательно имеют одинаковый размер. Я не знаю ни о каких библиотеках, которые делают это в данный момент. Предложения алгоритмов, которые были бы хорошо подходят для этой проблемы, будут оценены.
источник
Ответы:
Не делая большого поиска, я рекомендую вам взглянуть на библиотеку MAGMA . Свободно доступный код с постоянной поддержкой. NVIDIA признала MAGMA «прорывом в решении проблем собственных значений».
Существует также библиотека CULA , которая, как правило, является коммерческим продуктом, хотя недавно она стала бесплатной для академического использования (подробности см. Здесь ).
источник
Используйте функции в LAPACK, вряд ли вы сможете превзойти их в своей собственной реализации.
источник