【发布时间】:2016-02-05 22:55:46
【问题描述】:
我想求解一个稀疏线性方程组:A x = b,其中 A 是一个 (M x M) 数组,b 是一个 (M x N) 数组,x 是一个 (M x N) 数组。
我使用以下三种方式解决此问题:
-
scipy.linalg.solve(A.toarray(), b.toarray()), -
scipy.sparse.linalg.spsolve(A, b), -
scipy.sparse.linalg.splu(A).solve(b.toarray())# 返回一个密集数组
我希望使用迭代的scipy.sparse.linalg 方法来解决问题:
-
scipy.sparse.linalg.cg, -
scipy.sparse.linalg.bicg, - ...
但是,这些方法仅支持具有形状 (M,) 或 (M, 1) 的右侧 b。关于如何将这些方法扩展到 (M x N) 数组 b 的任何想法?
【问题讨论】:
-
虽然 A 和 b 可能是稀疏的,但通常 Ax = b 的解决方案将是密集的
-
你看过这些方法的代码了吗?基础数学呢?也许第 2 列的解决方案本质上独立于第 1 列的解决方案,并且需要不同数量的迭代。
-
我还没有进入代码。
标签: python arrays numpy scipy linear-algebra