cupyx.scipy.sparse.linalg.lobpcg#

cupyx.scipy.sparse.linalg.lobpcg(A, X, B=None, M=None, Y=None, tol=None, maxiter=None, largest=True, verbosityLevel=0, retLambdaHistory=False, retResidualNormsHistory=False)[source]#

局部最优块预条件共轭梯度法 (LOBPCG)

LOBPCG 是一种用于大型对称正定 (SPD) 广义特征值问题的预条件特征值求解器。

参数:
  • A (array-like) – 问题的对称线性算子,通常是稀疏矩阵。可以是以下类型之一:- cupy.ndarray - cupyx.scipy.sparse.csr_matrix - cupy.scipy.sparse.linalg.LinearOperator

  • X (cupy.ndarray) – 对 k 个特征向量的初始近似值(非稀疏)。如果 Ashape=(n,n),则 X 的 shape 应为 shape=(n,k)

  • B (array-like) – 广义特征值问题中的右手侧算子。默认为 B = Identity。可以是以下类型:- cupy.ndarray - cupyx.scipy.sparse.csr_matrix - cupy.scipy.sparse.linalg.LinearOperator

  • M (array-like) – A 的预条件子;默认为 M = IdentityM 应该近似 A 的逆。可以是以下类型之一:- cupy.ndarray - cupyx.scipy.sparse.csr_matrix - cupy.scipy.sparse.linalg.LinearOperator

  • Y (cupy.ndarray) – n-by-sizeY 的约束矩阵(非稀疏),sizeY < n 迭代将在 Y 的列空间的 B 正交补空间中执行。Y 必须是满秩的。

  • tol (float) – 求解器容差(停止准则)。默认为 tol=n*sqrt(eps)

  • maxiter (int) – 最大迭代次数。默认为 maxiter = 20

  • largest (bool) – 为 True 时,求解最大的特征值,否则求解最小的特征值。

  • verbosityLevel (int) – 控制求解器输出。默认为 verbosityLevel=0

  • retLambdaHistory (bool) – 是否返回特征值历史。默认为 False。

  • retResidualNormsHistory (bool) – 是否返回残差范数历史。默认为 False。

返回:

  • w (cupy.ndarray): 包含 k 个特征值的数组

  • v (cupy.ndarray) 包含 k 个特征向量的数组。v 的 shape 与 X 相同。

  • lambdas (cupy.ndarray 列表): 特征值历史,如果 retLambdaHistory 为 True。

  • rnorms (cupy.ndarray 列表): 残差范数历史,如果 retResidualNormsHistory 为 True。

返回类型:

元组

注意

如果 retLambdaHistoryretResidualNormsHistory 都为 True,则返回元组的格式如下:(lambda, V, 特征值历史, 残差范数历史)