Я намагаюсь діагоналізувати деякі щільні, погано обумовлені матриці. У машинній точності результати є неточними (повертаючи негативні власні значення, власні вектори не мають очікуваної симетрії). Я перейшов на функцію Eigensystem [] Mathematica, щоб скористатися довільною точністю, але обчислення надзвичайно повільні. Я відкритий для будь-якої кількості рішень. Чи є пакети / алгоритми, які добре підходять до проблем, що не обумовлені? Я не фахівець з передумови, тому я не впевнений, наскільки це може допомогти. Інакше все, що я можу придумати, - це паралелізовані довільні точні вирішення власних значень, але я не знайомий ні з чим, крім Mathematica, MATLAB та C ++.
Для ознайомлення з проблемою матриці великі, але не величезні (максимум від 4096x4096 до 32768x32768). Вони реальні, симетричні, а власні значення обмежені між 0 і 1 (винятково), при цьому багато власних значень дуже близькі до 0 і жодні не близькі до 1. Матриця по суті є оператором згортки. Мені не потрібно діагоналізувати всі мої матриці, але чим більше я можу пройти, тим краще. У мене є доступ до обчислювальних кластерів з багатьма процесорами та розподіленими можливостями обчислень.
Дякую