Sto cercando di diagonalizzare alcune matrici dense e mal condizionate. Nella precisione della macchina, i risultati non sono accurati (restituendo autovalori negativi, gli autovettori non hanno le simmetrie previste). Sono passato alla funzione Eigensystem [] di Mathematica per sfruttare la precisione arbitraria, ma i calcoli sono estremamente lenti. Sono aperto a qualsiasi numero di soluzioni. Esistono pacchetti / algoritmi che ben si adattano a problemi mal condizionati? Non sono un esperto di precondizionamento, quindi non sono sicuro di quanto ciò possa aiutare. Altrimenti, tutto ciò che riesco a pensare sono solutori di autovalori di precisione arbitraria parallelizzati, ma non ho familiarità con nulla al di là di Mathematica, MATLAB e C ++.
Per dare qualche informazione sul problema, le matrici sono grandi, ma non enormi (da 4096x4096 a 32768x32768 al massimo). Sono reali, simmetrici e gli autovalori sono limitati tra 0 e 1 (esclusivo), con molti autovalori molto vicini a 0 e nessuno vicino a 1. La matrice è essenzialmente un operatore di convoluzione. Non ho bisogno di diagonalizzare tutte le mie matrici, ma più grande posso andare, meglio è. Ho accesso a cluster informatici con molti processori e capacità di elaborazione distribuita.
Grazie