matlab - 计算 n×n Hermitian 矩阵的最大特征值和相应的特征向量有多昂贵?
问题描述
有一个类似的问题:计算矩阵的特征值有多昂贵?
对于方形和对称矩阵,答案是 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)
解决方案
尝试这个:
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');
请告诉我进展如何!
推荐阅读
- javascript - 反应:为什么调试器暂停两次,但 console.log 记录一次?
- javascript - 如何在水平布局中触发动画
- python - python:无法打开文件'manage.py':[Errno 2]撰写docker时没有这样的文件或目录
- crc - crc32关于数据流的功能说明
- c# - 无法使用 C# 中某个单元格的值更新现有的 excel 文件
- r - 如何使用函数填充 R 中的空向量?
- python - 有没有办法在 JSON 文件的字段上运行 spaCy NER?
- javascript - 访问路由器参数 VueJS
- angular - 角度表单阵列上的单选按钮无法正确切换
- macos - macOS xargs 不会打开 mdfind 和 grep 找到的应用程序