Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python scipy.sparse.linalg.eigs的工作速度比linalg.eigvals慢,即使对于大型矩阵也是如此_Python_Scipy_Linear Algebra_Eigenvalue - Fatal编程技术网

Python scipy.sparse.linalg.eigs的工作速度比linalg.eigvals慢,即使对于大型矩阵也是如此

Python scipy.sparse.linalg.eigs的工作速度比linalg.eigvals慢,即使对于大型矩阵也是如此,python,scipy,linear-algebra,eigenvalue,Python,Scipy,Linear Algebra,Eigenvalue,我在这里看到了关于scipy.sparse.linalg.eigs的静止状态,其工作速度比linalg.eigvals慢,但问题是存在小矩阵。在我的例子中,我有矩阵1000x1000,但linalg.eigvals的性能仍然比下面的代码好得多: import scipy as sp import scipy.sparse.linalg as lg N = 1000 m = sp.sparse.random(N, N, density=0.05).tocsc() a = m.A %timeit

我在这里看到了关于scipy.sparse.linalg.eigs的静止状态,其工作速度比linalg.eigvals慢,但问题是存在小矩阵。在我的例子中,我有矩阵1000x1000,但linalg.eigvals的性能仍然比下面的代码好得多:

import scipy as sp
import scipy.sparse.linalg as lg

N = 1000
m = sp.sparse.random(N, N, density=0.05).tocsc()
a = m.A

%timeit lg.eigs(m, k=500, return_eigenvectors=False, which='LR', tol = 0.0001)

%timeit sp.linalg.eigvals(a)
EIG的每个环路3.62 s±520 ms(7次运行的平均值±标准偏差,每个环路1次)
eigvals的每个循环1.68 s±420 ms(7次运行的平均值±标准偏差,每个循环1次)


我不明白怎么可能

我不熟悉
scipy.sparse.linalg.eigs
中隐含重新启动的Arnoldi方法的局限性,但是一半的特征值似乎需要很多特征值。而且,5%的稀疏度可能不足以让基于稀疏度的优化产生效果。我不熟悉
scipy.sparse.linalg.eigs
中隐含重新启动的Arnoldi方法的局限性,但一半的特征值似乎需要很多特征值。此外,对于基于稀疏性的优化来说,5%可能不够稀疏。