具有预处理器的稀疏矩阵求解器

时间:2017-10-22 17:14:35

标签: python numpy scipy sparse-matrix

我有scipy.sparse.csc_matrix形状为A的稀疏矩阵(N, N),其中N约为15000A的元素数少于1 %

我需要尽可能快地解决Ax=b

使用scipy.sparse.linalg.spsolve使用350 ms大约scikit-umfpack。 使用scipy.sparse.linalg.gmres预处理程序时50 ms ILU显着加快1.5 s。没有预处理器需要一分多钟。

但是,创建预处理器大约需要scipy.sparse.linalg.spsolve。鉴于此,仅使用M会更有效。

我用

创建预处理器from scipy.sparse.linalg import LinearOperator, spilu ilu = spilu(A) Mx = lambda x: ilu.solve(x) M = LinearOperator((N, N), Mx)
scipy.sparse.linalg.gmres

是否有更有效的方法可以做到这一点,这样使用{{1}}会更有利可图?

0 个答案:

没有答案