Estou tentando diagonalizar algumas matrizes densas e mal condicionadas. Na precisão da máquina, os resultados são imprecisos (retornando valores próprios negativos, os vetores próprios não possuem as simetrias esperadas). Eu mudei para a função Eigensystem [] do Mathematica para tirar proveito da precisão arbitrária, mas os cálculos são extremamente lentos. Estou aberto a qualquer número de soluções. Existem pacotes / algoritmos adequados para problemas mal condicionados? Como não sou especialista em pré-condicionamento, não tenho certeza de quanto isso poderia ajudar. Caso contrário, só consigo pensar em solucionadores de autovalores de precisão arbitrários paralelizados, mas não estou familiarizado com nada além do Mathematica, MATLAB e C ++.
Para dar uma idéia do problema, as matrizes são grandes, mas não enormes (no máximo de 4096 x 4096 a 32768 x 32768). Eles são reais, simétricos e os autovalores são limitados entre 0 e 1 (exclusivo), com muitos autovalores sendo muito próximos de 0 e nenhum próximo de 1. A matriz é essencialmente um operador de convolução. Não preciso diagonalizar todas as minhas matrizes, mas quanto maior eu puder, melhor. Eu tenho acesso a clusters de computação com muitos processadores e recursos de computação distribuída.
Obrigado