【发布时间】:2021-11-12 02:44:01
【问题描述】:
有一个类似的问题:How expensive is it to compute the eigenvalues of a matrix?
对于正方形和对称矩阵,答案是 big-Oh(n^3)。
n×n矩阵的最大特征值和对应的特征向量呢?
这里我假设矩阵是正方形和 Hermitian。我认为它仍然必须比 big-Oh(n^3) 快,因为我们只对最大特征值和相应的特征向量感兴趣。
这是我目前使用的 Matlab 代码,但我认为它不是最好的,因为我仍然计算所有特征值而不是最大特征值并对它们进行排序。
A=2.*rand(3,3)-1*ones(3,3)+i*(2.*rand(3,3) -1*ones(3,3));
[v,e]=eig(A+A');
[d,ind] = sort(diag(e),'descend');
e=d(1)
v = v(:,ind);
v(1:3,1)
【问题讨论】:
-
使用函数
eigs(),您可以在其中选择要输出的特征值数量。它在文档中有参考书目参考,但我相信它只计算你问的那些,但不知道算法 O()。
标签: matlab linear-algebra complexity-theory eigenvalue eigenvector