求教关于求解矩阵特征值的问题
计算一个矩阵的特征值和特征向量时,其中特征值包含了虚数,本人会过滤掉虚数特征值,但是不会得到对应的特征向量, 请问怎么改?请各位大虾指导一下。谢谢
=eig(A);v的每一列为d中特征值对应的特征向量,找到对应的虚数特征值,就可以对应找到虚数的特征向量 chybeyond 发表于 2014-6-27 22:15
=eig(A);v的每一列为d中特征值对应的特征向量,找到对应的虚数特征值,就可以对应找到虚数的特征向量
只能慢慢找吗?能不能编个程序,除去虚数特征值及对应的特征向量,得到实数特征值,同时得到对应的特征向量?因为得到的特征值太多了,一个个去找不是很方便。 江山美人 发表于 2014-6-28 21:58
只能慢慢找吗?能不能编个程序,除去虚数特征值及对应的特征向量,得到实数特征值,同时得到对应的特征向 ...
特征值和特征向量是一一对应的 chybeyond 发表于 2014-6-28 21:59
特征值和特征向量是一一对应的
我的想法是在过滤掉虚数特征值的时候,能不能把对应的向量也过滤掉? 江山美人 发表于 2014-6-28 22:03
我的想法是在过滤掉虚数特征值的时候,能不能把对应的向量也过滤掉? = eig(a);
d = diag(d);
for ii = 1:length(d)
x(ii) = isreal(d(ii));
end
v = v(:, x);
chybeyond 发表于 2014-6-28 22:23
我试试啊,谢谢了 chybeyond 发表于 2014-6-28 22:23
效果明显,谢谢啊 如果过滤了虚数特征值,我按升序重新排列了一下剩下的特征值,那对应的特征向量怎么也能重新排一下啊? 江山美人 发表于 2014-6-29 09:01
如果过滤了虚数特征值,我按升序重新排列了一下剩下的特征值,那对应的特征向量怎么也能重新排一下啊?
=sort(d);
v = v(:, indx); 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)
出现这个问题了,下标索引必须为正整数类型或逻辑类型。这个没有不适整数啊,昨晚上好像还是可以计算运行的,现在又不行了
chybeyond 发表于 2014-6-29 09:32
好像是每运行一次,都要清除一次命令,才可以再运行 江山美人 发表于 2014-6-29 10:19
好像是每运行一次,都要清除一次命令,才可以再运行
可能你工作空间有变量x,但不是logical型的,运行前clear all或者clear x chybeyond 发表于 2014-6-29 10:22
可能你工作空间有变量x,但不是logical型的,运行前clear all或者clear x
嗯,我试试,谢谢 本帖最后由 牛小贱 于 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