对称矩阵中特定特征值的特征向量的快速计算

2024-10-01 15:44:21 发布

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

我有一个对称矩阵(无向图的邻接矩阵),我有一个特定的特征值(最大特征值),我想要与之相关联的特征向量(左或右,任意一个,因为我认为左是对称矩阵的右转置)。在

我运行的图可以从数千到数十万个节点,因此相应的邻接矩阵将很大。但是密度是稀疏的,因此相应的矩阵也将是稀疏的。在

在SciPy有没有一种有效的方法来做到这一点?更好的是,有没有一种方法只计算给定对称矩阵的前导特征值和对应的特征向量(这意味着我不必自己用linalg.eigvals显式地计算前导特征值)。在


Tags: 方法节点矩阵scipy密度特征值特征向量前导
1条回答
网友
1楼 · 发布于 2024-10-01 15:44:21

是的,有,^{},末尾的h代表Hermitian,还有一个非对称矩阵的版本^{}。在

如果a是您的矩阵,不管稀疏与否,您的调用将如下所示:

evals, evecs = scipy.sparse.linalg.eigsh(a, k=1)

你的evalsevecs是特征值和相应特征向量的数组,因为如果将{}设置为1以外的值,则可以请求多个特征值。返回的特征值和向量由which参数控制,该参数默认为LM,代表最大值。在

相关问题 更多 >

    热门问题