0
Вышеупомянутая функция не работает, когда я использую линейный оператор абстрактного/черного ящика. Вот минимальный пример:scipy.sparse.linalg.eigs не работает с абстрактным линейным оператором
import numpy as np
import scipy.sparse.linalg as la
# Just generate an n X n matrix
n = 9
a = np.random.normal(size = n * n)
a = a.reshape((n,n))
# A is a black-box linear operator
def A(v):
global a
return np.dot(a, v)
# If you don't define a shpae for A you get an error
A.shape = (n,n)
# This works
success = la.eigs(a)
# This throws an error.
failure = la.eigs(A)
Это происходит питон 3.2.2 с SciPy 0.13.3, а также для питона 2.7.3 с SciPy 0.16.0.
Сообщение об ошибке:
File "/home/daon/.local/lib/python2.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 1227, in eigs
matvec = _aslinearoperator_with_dtype(A).matvec
File "/home/daon/.local/lib/python2.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 885, in _aslinearoperator_with_dtype
m = aslinearoperator(m)
File "/home/daon/.local/lib/python2.7/site-packages/scipy/sparse/linalg/interface.py", line 682, in aslinearoperator
raise TypeError('type not understood')
TypeError: type not understood
Любая помощь будет оценена.