江山美人 发表于 2014-6-27 10:24

求教关于求解矩阵特征值的问题

计算一个矩阵的特征值和特征向量时,其中特征值包含了虚数,本人会过滤掉虚数特征值,但是不会得到对应的特征向量, 请问怎么改?
请各位大虾指导一下。谢谢

chybeyond 发表于 2014-6-27 22:15

=eig(A);v的每一列为d中特征值对应的特征向量,找到对应的虚数特征值,就可以对应找到虚数的特征向量

江山美人 发表于 2014-6-28 21:58

chybeyond 发表于 2014-6-27 22:15
=eig(A);v的每一列为d中特征值对应的特征向量,找到对应的虚数特征值,就可以对应找到虚数的特征向量

只能慢慢找吗?能不能编个程序,除去虚数特征值及对应的特征向量,得到实数特征值,同时得到对应的特征向量?因为得到的特征值太多了,一个个去找不是很方便。

chybeyond 发表于 2014-6-28 21:59

江山美人 发表于 2014-6-28 21:58
只能慢慢找吗?能不能编个程序,除去虚数特征值及对应的特征向量,得到实数特征值,同时得到对应的特征向 ...

特征值和特征向量是一一对应的

江山美人 发表于 2014-6-28 22:03

chybeyond 发表于 2014-6-28 21:59
特征值和特征向量是一一对应的

我的想法是在过滤掉虚数特征值的时候,能不能把对应的向量也过滤掉?

chybeyond 发表于 2014-6-28 22:23

江山美人 发表于 2014-6-28 22:03
我的想法是在过滤掉虚数特征值的时候,能不能把对应的向量也过滤掉? = eig(a);
d = diag(d);
for ii = 1:length(d)
    x(ii) = isreal(d(ii));
end
v = v(:, x);

江山美人 发表于 2014-6-28 22:29

chybeyond 发表于 2014-6-28 22:23


我试试啊,谢谢了

江山美人 发表于 2014-6-28 22:50

chybeyond 发表于 2014-6-28 22:23


效果明显,谢谢啊

江山美人 发表于 2014-6-29 09:01

如果过滤了虚数特征值,我按升序重新排列了一下剩下的特征值,那对应的特征向量怎么也能重新排一下啊?

chybeyond 发表于 2014-6-29 09:32

江山美人 发表于 2014-6-29 09:01
如果过滤了虚数特征值,我按升序重新排列了一下剩下的特征值,那对应的特征向量怎么也能重新排一下啊?

=sort(d);
v = v(:, indx);

江山美人 发表于 2014-6-29 09:40

chybeyond 发表于 2014-6-29 09:32


a=magic(4);
= eig(a);
d = diag(d);
for ii = 1:length(d)
    x(ii) = isreal(d(ii));
end
v=v(:, x)
出现这个问题了,下标索引必须为正整数类型或逻辑类型。这个没有不适整数啊,昨晚上好像还是可以计算运行的,现在又不行了

江山美人 发表于 2014-6-29 10:19

chybeyond 发表于 2014-6-29 09:32


好像是每运行一次,都要清除一次命令,才可以再运行

chybeyond 发表于 2014-6-29 10:22

江山美人 发表于 2014-6-29 10:19
好像是每运行一次,都要清除一次命令,才可以再运行

可能你工作空间有变量x,但不是logical型的,运行前clear all或者clear x

江山美人 发表于 2014-6-29 10:34

chybeyond 发表于 2014-6-29 10:22
可能你工作空间有变量x,但不是logical型的,运行前clear all或者clear x

嗯,我试试,谢谢

江山美人 发表于 2014-6-29 10:43

本帖最后由 牛小贱 于 2014-6-29 13:11 编辑

chybeyond 发表于 2014-6-29 10:22
可能你工作空间有变量x,但不是logical型的,运行前clear all或者clear x
求得特征值之后,需要开个平方才可以得到虚数特征值,我过滤了虚数特征值,再按升序重新排列了一下剩下的特征值,最后求得排列后的特征值及特征向量,程序是下面这个吗,有点问题啊,索引超出矩阵维度。再请指教一下,谢谢
clear all
a=magic(5);
= eig(a);
d = sqrt(diag(d));
for k = 1:length(d)
    x(k) = isreal(d(k));
end
v = v(:, x);
=sort(d);
v = v(:,indx)

页: [1] 2
查看完整版本: 求教关于求解矩阵特征值的问题