Matlab eigs因大矩阵而失败

时间:2013-03-26 03:32:27

标签: matlab sparse-matrix

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

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

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

使用更大的矩阵,它会弹出错误信息,例如'(A-sigma * I)是单数。这种转变是一个特征值。或者在命令窗口中使用'APPAPK'(当使用'sr'时)。

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

所以,我想知道是否有任何使用eigs的技巧使其适用于大型矩阵?

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:1)

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