Я пытаюсь найти 100 собственных значений и векторов огромной разреженной матрицы размером 409600x409600. Я использую scipy.sparse.linalg.eigs
для этого, и требуются годы, чтобы найти результат, тогда как eigs
на Matlab решает его в течение 10 минут. Есть предложения о том, как его ускорить?
Python:
eigenvectors, eigenvalues = scipy.sparse.linalg.eigs(Laplacian, k=100, which='SM')
Matlab:
eigCnt = 100;
[eigenvectors, eigenvalues] = eigs(Laplacian, eigCnt, 'SM');
где Laplacian
- это разреженная матрица размера 409600x409600
с 10418204
ненулевыми записями
`