Scipy Arpack Eigs против Eigsh Количество собственных значений
В привязках ARPACK Сципи нельзя вычислить все собственные значения матрицы. Однако я обнаружил, что 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)
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
Было бы странной ошибкой ошибиться...