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
6
A
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
- 1. Trova autovettore per un determinato autovalore R
- 2. Calcolo inverso di una matrice molto grande
- 3. Algoritmo più veloce per calcolare il determinante di una matrice?
- 4. Applicare PCA su matrice sparse molto grande
- 5. algoritmo per trovare il più grande calo in un array
- 6. Stringa molto grande nella matrice di byte
- 7. come creare una matrice molto grande usando matlab
- 8. Il modo migliore per calcolare la matrice fondamentale di una catena Markov assorbente?
- 9. Algoritmo migliore per trovare i bordi (poligono) dei vertici
- 10. Come trovare il determinante della matrice grande
- 11. Come calcolare le distanze tra centroidi e matrice di dati (per algoritmo kmeans)
- 12. Come calcolare k i maggiori valori di autovalore sulla GPU?
- 13. Algoritmo per calcolare l'inverso di un polinomio
- 14. Algoritmo per contare le occorrenze di una matrice all'interno di una più grande
- 15. Algoritmo di confronto matrice
- 16. Come devo gestire un array molto grande in Java?
- 17. Algoritmo per trovare la migliore combinazione di dimensioni
- 18. Scorrere un GtkDrawingArea molto grande
- 19. Algoritmo di Mo per calcolare "potenza" dell'array
- 20. Algoritmo migliore per svanire una winform
- 21. Recupero matrice originale da Autovalore decomposizione
- 22. Algoritmo di voto: come calcolare il grado?
- 23. Echo un numero molto grande
- 24. Creazione di una mappa molto, molto grande in Java
- 25. Durata (grande O)) di un algoritmo
- 26. pow o ** per un numero molto grande in Python
- 27. Algoritmo per trovare il valore minimo di una funzione
- 28. Calcolare "v^TA v" per una matrice di vettori v
- 29. Come calcolare la complessità esatta di un algoritmo?
- 30. k-significa il clustering in R su una matrice molto grande e sparsa?
Questa domanda ha [già avuto risposta qui] (http://mathoverflow.net/questions/62904/complexity-of-eigenvalue-decomposition) –
L'algoritmo di Coppersmith e Winograd può risolvere il problema in O (n^2.376) –