【问题标题】:How expensive is it to compute the largest eigenvalue and corresponding eigenvector of n-by-n Hermitian matrix?计算 n×n Hermitian 矩阵的最大特征值和对应的特征向量有多昂贵?
【发布时间】: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


【解决方案1】:

试试这个:

A=2.*rand(3,3)-1*ones(3,3)+i*(2.*rand(3,3) -1*ones(3,3));
[v,e]=eigs(A+A',1,'largestabs');

请告诉我进展如何!

【讨论】:

  • 感谢您的回答。我认为这段代码给出了最大的特征值,而不是实际的最大特征值。无论如何,我的问题更多地与计算复杂度有关,我想知道计算最大特征值和相应特征向量的速度有多快。
  • 我认为这取决于您要使用的特征求解器以及您使用的矩阵的属性。以我的经验,传统的 QR 算法收敛于 n^3,但是,它会为您提供所有特征值,其他方法会在此方法(QZ、子空间、lanczos 等)上添加变体并使用矩阵中的属性减少操作次数(即使用 hassenberg 表示)
  • 我可以推荐几个关于这个主题的参考资料:[1] Tzounas, G., Dassios, I., Liu, M. 和 Milano, F.,2020,“数值方法的比较和开放- 用于大型电力系统特征值分析的源库,”Appl。科学,10(21),p。 7592. [2] Golub, G. H. 和 Van Loan, C. F.,2013 年,矩阵计算,约翰霍普金斯大学出版社。 [3] Trefethen, L. N., & Bau III, D. (1997)。数值线性代数(第 50 卷)。暹罗。
  • [4] Moler, C. B. 和 Stewart, G. W. (1973)。一种广义矩阵特征值问题的算法。 SIAM 数值分析杂志,10(2),241-256。我自己对即将发表的一篇论文进行了讨论:Navarro, J. D 等。人。使用多元泰勒级数展开法结合布洛赫定理分析声子超材料的任意阶灵敏度,应用力学杂志,
猜你喜欢
  • 2010-10-17
  • 2018-10-12
  • 1970-01-01
  • 2012-08-08
  • 2019-08-18
  • 1970-01-01
  • 2018-10-31
  • 2012-02-23
  • 1970-01-01
相关资源
最近更新 更多