Matlab-计算大稀疏(A'* A)矩阵的最大特征值 [英] Matlab - calculating max eigenvalue of a big sparse (A'*A) matrix

查看:448
本文介绍了Matlab-计算大稀疏(A'* A)矩阵的最大特征值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a big (400K*400K) sparse matrix and I need to calculate the largest eigenvalue of A'*A.

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

The problem is that Matlab can't even calculate A' due to memory problems.
I also tried [a,b,c] = find(A) and then transpose by creating a transpose sparse matrix, but although the find() works, the sprase creation doesn't.

是否有一个很好的解决方案?它既可以在matlab函数中,也可以在另一种技术中,为这种乘法计算最大特征值.

Is there a nice solution for this? it can be either in a matlab function or in another technique to calculate the largest eigenvalue for this kind of multiplication.

谢谢.

推荐答案

如果A稀疏,请参见此

If A is sparse, see this thread and some discussion in this documentation (basically do it part by part) for a way to transpose it etc.

但是现在您需要计算B=A'*A.问题是,它仍然稀疏吗?假设是这样,那么使用链接中提到的先前技术就不会有问题.

But now you need to calculate B=A'*A. The question is, is it still sparse? assuming it is, there shouldn't be a problem to proceed using the previous technique mentioned in the link.

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

Then after you've obtained B=A'*A, use eigs

eigs(B,1)

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

to obtain the largest magnitude eigenvalue.

这篇关于Matlab-计算大稀疏(A'* A)矩阵的最大特征值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆