4

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

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

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

对于较大的矩阵,它会弹出错误消息,例如 '(A-sigma*I)is single。偏移是一个特征值。或有关命令行窗口中的“APPAPK”(使用“sr”时)的内容。

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

那么,我想知道 eigs 是否有任何技巧可以使其与大型矩阵一起使用?

感谢您的时间和帮助。

4

1 回答 1

1

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

于 2013-05-03T10:14:10.897 回答