EDITAR: Estoy probando si algún valor propio tiene una magnitud de uno o más.
Necesito encontrar el valor propio absoluto más grande de una gran matriz dispersa, no simétrica.
He estado usando la eigen()
función de R , que usa el algoritmo QR de EISPACK o LAPACK para encontrar todos los valores propios y luego uso abs()
para obtener los valores absolutos. Sin embargo, necesito hacerlo más rápido.
También he intentado usar la interfaz ARPACK en el igraph
paquete R. Sin embargo, dio un error para una de mis matrices.
La implementación final debe ser accesible desde R.
Probablemente habrá múltiples valores propios de la misma magnitud.
¿Tienes alguna sugerencia?
EDITAR:
Precisión solo necesita ser 1e-11
. Una matriz "típica" ha sido hasta ahora . He podido hacer una factorización QR en él. Sin embargo, también es posible tener unos mucho más grandes. Actualmente estoy empezando a leer sobre el algoritmo Arnoldi. Entiendo que está relacionado con Lanczsos.
EDIT2: si tengo varias matrices que estoy "probando" y sé que hay una gran submatriz que no varía. ¿Es posible ignorarlo / descartarlo?