MATLAB:Eig算法和替代方案

时间:2016-09-19 17:11:29

标签: matlab

我正在模拟一个物理系统,我需要计算一个非常大(~10000x10000)矩阵的特征值和向量。 到目前为止,我已经在MATLAB中使用了内置的Eig算法,但对于大型矩阵来说它非常慢。在MATLAB中是否有其他算法可以做得更好,还是可以以某种方式提高Eig的性能?具体来说,事实证明我只需要从最小的数值特征值开始的矩阵的前~100个特征向量。有没有办法让算法只计算前N个特征向量和特征值来节省计算时间?当然,这只有在特征向量出来排序但它们似乎这样做时才会起作用,因为我正在使用的矩阵的对称性。

1 个答案:

答案 0 :(得分:0)

你的矩阵大多是零,所以你应该把它变成一个稀疏矩阵。然后,您将能够使用EIGS计算较少数量的特征值和特征向量。

http://www.mathworks.com/help/matlab/ref/eigs.html