小编viv*_*nov的帖子

scipy.sparse.linalg:spl和分解之间有什么区别?

使用有什么区别

 scipy.sparse.linalg.factorized(A)
Run Code Online (Sandbox Code Playgroud)

 scipy.sparse.linalg.splu(A)
Run Code Online (Sandbox Code Playgroud)

它们都使用.solve(rhs)方法返回对象,并且文档中说它们都使用 LU 分解。我想知道他们两个的性能差异。

更具体地说,我正在编写一个实现动态 FEM 模型的 python/numpy/scipy 应用程序。我需要在每个时间步上求解方程Au = f。A 很稀疏而且相当大,但不依赖于时间步长,所以我想提前投入一些时间以使迭代更快(可能有数千次迭代)。我尝试使用scipy.sparse.linalg.inv(A),但是当矩阵大小很大时它会引发内存异常。直到最近我才使用scipy.linalg.spsolve每个步骤,现在正在考虑使用某种分解来获得更好的性能。所以,除了LU之外,如果你还有其他建议,欢迎提出!

numpy linear-algebra scipy sparse-matrix equation-solving

5
推荐指数
1
解决办法
1676
查看次数