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, spmatrixLinearOperator) – 线性系统的实数或复数矩阵,形状为 (n, n)A 必须是 cupy.ndarraycupyx.scipy.sparse.spmatrixLinearOperator

  • b (cupy.ndarray) – 线性系统的右侧向量,形状为 (n,)(n, 1)

  • x0 (cupy.ndarray) – 解的初始猜测值。

  • tol (float) – 收敛容差。

  • restart (int) – 重启之间的迭代次数。较大的值会增加迭代成本,但可能对于收敛是必需的。

  • maxiter (int) – 最大迭代次数。

  • M (ndarray, spmatrixLinearOperator) – A 的预条件子。预条件子应近似于 A 的逆。M 必须是 cupy.ndarraycupyx.scipy.sparse.spmatrixLinearOperator

  • callback (function) – 用户指定的函数,在每次重启时调用。调用形式为 callback(arg),其中 argcallback_type 选择。

  • callback_type (str) – ‘x’ 或 ‘pr_norm’。如果为 ‘x’,则当前解向量用作回调函数的参数。如果为 ‘pr_norm’,则相对(预处理的)残差范数用作参数。

  • atol (float) – 收敛容差。

返回值:

它返回 x (cupy.ndarray) 和 info (int),其中 x 是收敛的解,info 提供收敛信息。

返回类型:

tuple

参考

M. Wang, H. Klie, M. Parashar and H. Sudan, “Solving Sparse Linear Systems on NVIDIA Tesla GPUs”, ICCS 2009 (2009).