cupyx.scipy.sparse.linalg.gmres#
- cupyx.scipy.sparse.linalg.gmres(A, b, x0=None, tol=1e-05, restart=None, maxiter=None, M=None, callback=None, atol=None, callback_type=None)[源代码]#
使用广义最小残差迭代法求解
Ax = b
。- 参数:
A (ndarray, spmatrix 或 LinearOperator) – 线性系统的实数或复数矩阵,形状为
(n, n)
。A
必须是cupy.ndarray
、cupyx.scipy.sparse.spmatrix
或 LinearOperator。b (cupy.ndarray) – 线性系统的右侧向量,形状为
(n,)
或(n, 1)
。x0 (cupy.ndarray) – 解的初始猜测值。
tol (float) – 收敛容差。
restart (int) – 重启之间的迭代次数。较大的值会增加迭代成本,但可能对于收敛是必需的。
maxiter (int) – 最大迭代次数。
M (ndarray, spmatrix 或 LinearOperator) –
A
的预条件子。预条件子应近似于A
的逆。M
必须是cupy.ndarray
、cupyx.scipy.sparse.spmatrix
或 LinearOperator。callback (function) – 用户指定的函数,在每次重启时调用。调用形式为
callback(arg)
,其中arg
由callback_type
选择。callback_type (str) – ‘x’ 或 ‘pr_norm’。如果为 ‘x’,则当前解向量用作回调函数的参数。如果为 ‘pr_norm’,则相对(预处理的)残差范数用作参数。
atol (float) – 收敛容差。
- 返回值:
它返回
x
(cupy.ndarray) 和info
(int),其中x
是收敛的解,info
提供收敛信息。- 返回类型:
- 参考
M. Wang, H. Klie, M. Parashar and H. Sudan, “Solving Sparse Linear Systems on NVIDIA Tesla GPUs”, ICCS 2009 (2009).