3

scipy の 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)
4

1 に答える 1

2

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

これを間違えると奇妙なバグになるでしょう...

于 2013-01-15T11:37:25.623 に答える