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 or LinearOperator) – 线性系统的实矩阵或复矩阵,形状为
(n, n)。A必须是cupy.ndarray、cupyx.scipy.sparse.spmatrix或cupyx.scipy.sparse.linalg.LinearOperator。b (cupy.ndarray) – 线性系统的右侧,形状为
(n,)或(n, 1)。x0 (cupy.ndarray) – 解决方案的初始猜测。
tol (float) – 收敛容差。
restart (int) – 重启之间的迭代次数。较大的值会增加迭代成本,但可能对收敛是必要的。
maxiter (int) – 最大迭代次数。
M (ndarray, spmatrix or LinearOperator) –
A的预处理器。预处理器应近似于A的逆。M必须是cupy.ndarray、cupyx.scipy.sparse.spmatrix或cupyx.scipy.sparse.linalg.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).