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]#
求解实对称方阵或复厄米特矩阵
A
的k
个特征值和特征向量。求解标准特征值问题
Ax = wx
,其中w
是特征值,x
是对应的特征向量。- 参数:
a (ndarray, spmatrix or LinearOperator) – 维度为
(n, n)
的对称方阵。a
必须是cupy.ndarray
、cupyx.scipy.sparse.spmatrix
或cupyx.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
,则返回w
和x
,其中w
是特征值,x
是特征向量。否则,仅返回w
。- 返回类型:
注意
此函数使用厚重启 Lanczos 方法 (https://sdm.lbl.gov/~kewu/ps/trlan.html)。