对于scipy.sparse.linalg
中的迭代解算器,例如bicg
、gmres
等,有一个选项可以为矩阵A
添加预处理器。然而,documentation对于我应该给出什么作为预条件并不十分清楚。如果我使用ilu = sp.sparse.linalg.spilu(A)
,ilu
不是任何矩阵,而是包含许多事物的对象。你知道吗
有人问了一个类似的问题here关于python2.7,但我不适合我(python3.7,scipyversion1.1.0)
所以我的问题是如何将不完全LU预条件加入到这些迭代算法中?你知道吗
作为预条件,bicg或gmres接受
在您的例子中,预条件来自一个因式分解,因此它必须作为一个线性运算符传递。你知道吗
因此,您可能希望从通过
spilu
获得的ILU分解中显式定义一个线性运算符。一些类似的东西:这里,
sA
是CSC格式的稀疏矩阵,M
现在将是提供给迭代解算器的预条件线性运算符。你知道吗一个完整的例子based on the question you mentioned:
注意事项:
M
的大小是硬编码的。你知道吗相关问题 更多 >
编程相关推荐