Matrix 求大型稀疏矩阵的特征值

Matrix 求大型稀疏矩阵的特征值,matrix,sparse-matrix,eigenvector,Matrix,Sparse Matrix,Eigenvector,我有以下问题。有一个大小为NxN的矩阵a,其中N=200000。它是非常稀疏的,每行中正好有M元素,其中M={6,18,40,68,102}(我有5种不同的场景),其余为零 现在我想得到矩阵A的所有特征值和特征向量 问题是,我无法将矩阵A放入内存,因为它大约有160 GB的数据。我要找的是一个软件,它可以很好地存储稀疏矩阵(没有零,我的矩阵只有几MB),然后将这个存储的没有零的矩阵放到计算特征值和向量的算法中 你们谁能给我推荐一个软件吗 编辑:我发现我可以重新配置我的矩阵A,使其成为频带矩阵。然

我有以下问题。有一个大小为
NxN
的矩阵
a
,其中
N=200000
。它是非常稀疏的,每行中正好有
M
元素,其中
M={6,18,40,68,102}
(我有5种不同的场景),其余为零

现在我想得到矩阵
A
的所有特征值和特征向量

问题是,我无法将矩阵
A
放入内存,因为它大约有160 GB的数据。我要找的是一个软件,它可以很好地存储稀疏矩阵(没有零,我的矩阵只有几MB),然后将这个存储的没有零的矩阵放到计算特征值和向量的算法中

你们谁能给我推荐一个软件吗


编辑:我发现我可以重新配置我的矩阵
A
,使其成为频带矩阵。然后我可以使用
LAPACK
来获得特征值和特征向量(具体来说:)。问题是,我需要所有向量,因为我的矩阵是
NxN
,所以我不能允许
LAPACK
将解(所有特征向量)存储在内存中。最好的方法是使用一个函数,首先给出K个特征向量,然后重新运行程序以获得下一个K个特征向量,依此类推,这样我就可以将结果保存到文件中。

您可以尝试使用SLEPC库:

SLEPc特征值问题计算的可扩展库,是在并行计算机上解决大型稀疏特征值问题的软件库

阅读用户手册的第二章“EPS:特征值问题求解器”。他们专注于保持稀疏性的方法……但计算的特征值和特征向量数量有限

我希望我们的矩阵具有良好的性质(例如正定矩阵…)

你可能会被要求“光谱切片”来计算给定区间内的所有特征值。。。或者,您可以设置一个目标并计算该目标周围最近的特征值

参见示例

为什么需要计算这么大矩阵的所有特征向量

再见

 EPSIsPositive(EPS eps,PetscBool *pos);