2015-03-19 10 views
6

Ho usato il metodo Jacobi per trovare tutti gli autovalori e autovettori nel codice c. Sebbene la complessità del metodo di Jacobi sia O (n^3), la dimensione della mia matrice è enorme (17814 x 17814). Ci vuole molto tempo. Voglio conoscere un algoritmo migliore con il quale posso risolvere questo problema. Se vuoi posso allegare il mio codice c.Come trovare un algoritmo migliore per calcolare autovalore e autovettore di una matrice molto grande

+1

Questa domanda ha [già avuto risposta qui] (http://mathoverflow.net/questions/62904/complexity-of-eigenvalue-decomposition) –

+1

L'algoritmo di Coppersmith e Winograd può risolvere il problema in O (n^2.376) –

risposta

2

L'algoritmo suggerito nei commenti non è necessariamente il migliore.
Come si può vedere here, il metodo Jacobi può essere molto più veloce quando si utilizzano tecniche speciali.
Inoltre, Jacobi è abbastanza facile da eseguire in parallelo, ed è molto più veloce per le matrici sparse che per le matrici dense, quindi è possibile sfruttarle anche a seconda dell'architettura e del tipo di matrice che si possiede.

Direi che la cosa migliore è testare alcuni metodi diversi e vedere in pratica dove è possibile ottenere i migliori risultati.
O(n^2.376) non è necessariamente migliore di O(n^3) a seconda delle costanti.

Problemi correlati