2013-01-22 9 views
5

Esiste un pacchetto o un metodo ottimizzato che stima l'autovalore Perron-Frobenius di una matrice reale, quadrata, non negativa? Questo potrebbe essere significativamente più veloce (specialmente per matrici grandi e/o sparse) rispetto a un calcolo esatto - dato che l'autovalore Perron-Frobenius può essere ottenuto iterando la matrice. Spero che esista un pacchetto ottimizzato che fa questo.Pacchetto Python per stimare l'autovalore Perron-Frobenius della matrice reale, quadrata, non negativa

risposta

4

In scipy.sparse.linalg si hanno le funzioni eigs e eigsh che utilizzano ARPACK library. Si può leggere di più in this tutorial, ma se a è una matrice quadrata, possibilmente in formato sparse, allora si può ottenere il suo più grande autovalore grandezza, cioè la sua autovalore di Perron-Frobenius, e il corrispondente autovettore come:

val, vec = scipy.sparse.linalg.eigs(a, k=1, which='LM') 
+0

Grazie ! Questo è esattamente quello che volevo. Manca la bandiera 'which'. Inoltre, è interessante (e fantastico) che questo dovrebbe essere nel pacchetto sparse. Doppi punti. – gabe