scipy.sparse.linalg.gcrotmk¶
- scipy.sparse.linalg.gcrotmk(A, b, x0=None, tol=1e-05, maxiter=1000, M=None, callback=None, m=20, k=None, CU=None, discard_C=False, truncate='oldest', atol=None)[源代码]¶
使用灵活的GCROT(m,k)算法求解矩阵方程。
- 参数
- A{稀疏矩阵,ndarray,LinearOperator}
线性系统的实数或复数的N乘N矩阵。或者,
A
可以是线性运算符,它可以产生Ax
使用,例如,scipy.sparse.linalg.LinearOperator
。- bndarray
线性系统的右侧。具有形状(N,)或(N,1)。
- x0ndarray
开始猜测解决方案。
- TOL,ATOL浮动,可选
收敛容差,
norm(residual) <= max(tol*norm(b), atol)
。的默认设置atol
是 tol 。警告
的默认值 atol 将在将来的版本中进行更改。为了将来的兼容性,请指定 atol 明确地说。
- maxiter整型,可选
最大迭代次数。即使未达到指定的公差,迭代也将在最大步长后停止。
- M{稀疏矩阵,ndarray,LinearOperator},可选
A的预处理器。预处理器应该近似于A的逆。gcrotmk是一种“灵活的”算法,并且预条件器可以随迭代而变化。有效的预处理极大地提高了收敛速度,这意味着需要更少的迭代来达到给定的误差容限。
- callback函数,可选
每次迭代后要调用的用户提供的函数。它被称为回调(Xk),其中xk是当前的解向量。
- m整型,可选
每个外部迭代的内部FGMRES迭代数。默认值:20
- k整型,可选
内部FGMRES迭代之间要携带的向量数。根据 [2], 好值在m左右,默认值:m
- CU元组列表,可选
元组列表
(c, u)
其包含GCROT(m,k)算法中的矩阵C和U的列。有关详细信息,请参阅 [2]. 给定的列表和其中包含的向量将被就地修改。如果没有给出,则从空矩阵开始。这个c
元组中的元素可以是None
,在这种情况下,通过以下方式重新计算向量c = A u
开始时,并按中所述正交化 [3].- discard_C布尔值,可选
丢弃末尾的C向量。如果为不同的线性系统回收Krylov子空间,则非常有用。
- truncate{‘最旧’,‘最小’},可选
要使用的截断方案。DROP:使用中讨论的方案的最旧矢量或奇异值最小的矢量 [1,2]. See [2] 进行详细的比较。默认值:‘最旧的’
- 退货
- xndarray
找到了解决方案。
- info集成
提供融合信息:
0:退出成功
>0:未达到容差收敛,迭代次数
参考文献