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

时间:2013-01-02 21:04:08

标签: matlab sparse-matrix

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

问题是由于内存问题,Matlab甚至无法计算A' 我还尝试了[a,b,c] = find(A),然后通过创建转置稀疏矩阵进行转置,但尽管find()有效,但创建的sprase不会。

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

感谢。

1 个答案:

答案 0 :(得分:3)

如果A是稀疏的,请参阅此thread以及this documentation中的一些讨论(基本上是按部分进行)以获得转置它的方法等。

但现在你需要计算B=A'*A。问题是,它仍然稀疏吗?假设它是,使用链接中提到的先前技术继续进行应该没有问题。

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

eigs(B,1)

获得最大幅度的特征值。