cupyx.scipy.sparse.linalg.eigsh#

cupyx.scipy.sparse.linalg.eigsh(a, k=6, *, which='LM', v0=None, ncv=None, maxiter=None, tol=0, return_eigenvectors=True)[source]#

求解实对称方阵或复厄米特矩阵 Ak 个特征值和特征向量。

求解标准特征值问题 Ax = wx,其中 w 是特征值,x 是对应的特征向量。

参数
  • a (ndarray, spmatrix or LinearOperator) – 维度为 (n, n) 的对称方阵。a 必须是 cupy.ndarraycupyx.scipy.sparse.spmatrixcupyx.scipy.sparse.linalg.LinearOperator

  • k (int) – 要计算的特征值和特征向量的数量。必须满足 1 <= k < n

  • which (str) – 'LM' 或 'LA' 或 'SA'。'LM':找到 k 个最大(按绝对值)的特征值。'LA':找到 k 个最大(按代数值)的特征值。'SA':找到 k 个最小(按代数值)的特征值。

  • v0 (ndarray) – 迭代的起始向量。如果为 None,则使用随机单位向量。

  • ncv (int) – 生成的 Lanczos 向量的数量。必须满足 k + 1 < ncv < n。如果为 None,则使用默认值。

  • maxiter (int) – 最大 Lanczos 更新迭代次数。如果为 None,则使用默认值。

  • tol (float) – 残差 ||Ax - wx|| 的容差。如果为 0,则使用机器精度。

  • return_eigenvectors (bool) – 如果为 True,则除了特征值外,还返回特征向量。

返回值

如果 return_eigenvectors is True,则返回 wx,其中 w 是特征值,x 是特征向量。否则,仅返回 w

返回类型

tuple

注意

此函数使用厚重启 Lanczos 方法 (https://sdm.lbl.gov/~kewu/ps/trlan.html)。