Python怎么能利纳格·艾格什找到所有的特征向量?

2024-03-29 08:06:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用文档页面上linalg.eigshhere的示例代码:

import scipy.sparse.linalg as sp
import numpy as np

id = np.eye(13)
vals, vecs = sp.eigsh(id, k=6)

len(vals)
# 6
len(vecs)
# 13

我要求它提供6特征值(k=6),它确实返回6,但是它给了我13个特征向量。
在文档中,当它谈到k时,它说:

The number of eigenvalues and eigenvectors desired. k must be smaller than N. It is not possible to compute all eigenvectors of a matrix.

事实上,我认为Lanczos方法的速度,潜在的eighsh是因为它只找到了eigvector的一个子集。你知道吗

那么它如何返回所有的特征向量呢?你知道吗


Tags: of文档importidlenasnp页面
2条回答

不是,向量是一个13×6的矩阵。特征向量n为:

vecs[:, n]

你把结果解释错了。特征向量是vecs,但您正在计算行数。vecs有六列,如预期的那样。你知道吗

相关问题 更多 >