EDIT: Estou testando se algum autovalor tem uma magnitude de um ou mais.
Preciso encontrar o maior autovalor absoluto de uma grande matriz esparsa e não simétrica.
Eu tenho usado a eigen()
função de R , que usa o QR algo do EISPACK ou LAPACK para encontrar todos os autovalores e, em seguida, utilizo abs()
para obter os valores absolutos. No entanto, eu preciso fazer isso mais rápido.
Eu também tentei usar a interface ARPACK no igraph
pacote R. No entanto, deu um erro para uma das minhas matrizes.
A implementação final deve ser acessível a partir de R.
Provavelmente haverá vários autovalores da mesma magnitude.
Você tem alguma sugestão?
EDIT:
Precisão só precisa ser 1e-11
. Até agora, uma matriz "típica" foi . Consegui fazer uma fatoração de QR nele. No entanto, também é possível ter muito maiores. Atualmente, estou começando a ler sobre o algoritmo de Arnoldi. Eu entendo que isso está relacionado ao Lanczsos.
EDIT2: Se eu tiver várias matrizes que estou "testando" e sei que existe uma submatriz grande que não varia. É possível ignorá-lo / descartá-lo?