Seb*_*ian 7 python numpy scipy sparse-matrix
我有一个形状scipy.sparse.csc_matrix稀疏的矩阵A,(N, N)其中N大约为15000。A少于1 %非零元素。
我需要Ax=b尽可能高效地解决问题。
Usingscipy.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)
Run Code Online (Sandbox Code Playgroud)
有没有更有效的方法来做到这一点,这样使用scipy.sparse.linalg.gmres会更有利可图?
| 归档时间: |
|
| 查看次数: |
1113 次 |
| 最近记录: |