Matlab算法在处理大矩阵时失效



在matlab中,我使用函数'eigs()'来获得一个大矩阵(5000x5000)的几个(大约10个)最小特征向量。这样的:

[V,UU] = eigs(A, 10,'sm');

经过一些尝试,我发现矩阵'eigs()'能够处理的最大尺寸是1300到1500之间的东西。

对于更大的矩阵,它弹出错误消息,如'(A-sigma*I)是奇异的。移位是一个特征值。'或关于'APPAPK'(当使用'sr'时)在命令窗口。

我从谷歌上得到了一些关于这些错误的信息,但它们是关于一些内部代码或定理(听起来像一个),我不太理解。

所以,我想知道是否有什么技巧可以让它在大矩阵下工作?

感谢您的时间和帮助。

您可以尝试添加一个大小相同的单位矩阵,如:A = A + k*eye(size(A,1));这里k是小于1的实验系数。这样做可以保证矩阵A是非奇异的

最新更新