Scipy arpack eigs против eigsh числа собственных значений

В привязках ARPACK scipy нельзя вычислить все собственные значения матрицы. Однако я обнаружил, что eigsh может вычислить n - 1 собственное значение, в то время как eigs может вычислить только n - 2 собственных значения. Может ли кто-нибудь проверить, что это действительно фундаментальное ограничение ARPACK, а не ошибка в scipy?

Вот пример кода:

import scipy.sparse, scipy.sparse.linalg
t = scipy.sparse.eye(3,3).tocsr()
l,v = scipy.sparse.linalg.arpack.eigs(t,k=2)
l,v = scipy.sparse.linalg.arpack.eigsh(t,k=2)

person user1973192    schedule 12.01.2013    source источник


Ответы (1)


Это ограничение ARPACK:

http://forge.scilab.org/index.php/p/arpack-ng/source/tree/master/SRC/dnaupd.f

http://forge.scilab.org/index.php/p/arpack-ng/source/tree/master/SRC/dsaupd.f

Было бы странной ошибкой ошибиться...

person pv.    schedule 15.01.2013
comment
Спасибо, ответил на мой вопрос! - person user1973192; 15.01.2013