为什么逻辑算子对这个矩阵的特征值不起作用?
1次观看(过去30天)
显示旧的注释
我试着找出一个矩阵的特征值的下标它等于1。但由于某些原因,'=='或'ismember'不能识别它。有人能看一下这段代码并提出问题吗?
Tm = [0.1,0.2,0.7;0.5, 0.2, 0.3, 0.1, 0.1, 0.8);
[V,D] = eig(TM');
V
D
vec = sum(D);
为N1 = 1:长度(vec)
如果(vec(n1) == 1)
Index_for_pop = n1;
结束
结束
index_for_pop
= = =输出
V =
-0.2022 -0.8100 -0.4938
-0.1711 0.3162 -0.3162
-0.9643 0.4938 0.8100
D =
1.0000 0
0 -0.1562 0
0 0 0.2562
未定义的函数或变量index_for_pop。
错误在trial2(第14行)
index_for_pop
0评论
接受的答案
克里斯汀Tobler
2021年4月30日
在特征值1上有一个小舍入误差:
> tm = [0.1,0.2,0.7;0.5, 0.2, 0.3, 0.1, 0.1, 0.8);
[V,D] = eig(TM',“向量”);
D (1)
ans =
1.0000
>> d (1) - 1
ans =
4.4409 e-16
在数值计算中,使用“==”类型的比较通常不是一个好主意,最好使用
abs(D(1) -1) < 1e-14
例如。