Matlab - 计算大稀疏(A'*A)矩阵的最大特征值

yok*_*oki 5 matlab sparse-matrix

我有一个大的(400K*400K)稀疏矩阵,我需要计算A'*A的最大特征值.

问题是由于内存问题,Matlab甚至无法计算A'.
我也试过[a,b,c] = find(A),然后通过创建一个转置稀疏矩阵进行转置,但虽然find()有效,但是创建的sprase却没有.

有一个很好的解决方案吗?它可以是matlab函数或另一种技术来计算这种乘法的最大特征值.

谢谢.

bla*_*bla 3

如果 A 是稀疏的,请参阅此线程和本文档中的一些讨论(基本上是部分地进行)以了解转置它的方法等。

但现在你需要计算一下B=A'*A。问题是,还稀疏吗?假设是这样,继续使用链接中提到的先前技术应该不会有问题。

然后在获得后B=A'*A,使用eigs

eigs(B,1)
Run Code Online (Sandbox Code Playgroud)

以获得最大幅度的特征值。