毕业论文中需要用matlab求解矩阵的最大特征值及对应的正规化特征向量并做一致性检验。矩阵为
A=(1,1/2,2,1/3,3,1/4;2,1,3,1/2,4,1/3;1/2,1/3,1,1/4,2,1/5;3,2,4,1,5,1/2;1/3,1/4,1/2,1/5,1,1/6;4,3,5,2,6,1) 麻烦哪位大神请给我完整matlab程序代码。。。。
用matlab求解矩阵的最大特征值及对应的正规化特征向量并做一致性检验
答案:3 悬赏:20 手机版
解决时间 2021-03-07 15:02
- 提问者网友:温柔港
- 2021-03-07 08:03
最佳答案
- 五星知识达人网友:大漠
- 2021-03-07 09:32
matlab求解矩阵的最大特征值及对应的正规化特征向量:
[V, D] = eig(A);
D = diag(D); % 特征值
[D, idx] = sort(D, 'descend');
V = V(:, idx); % 特征向量矩阵
这样,D(1)是最大特征值,V(:,1)是最大特征向量
只会这些了。
[V, D] = eig(A);
D = diag(D); % 特征值
[D, idx] = sort(D, 'descend');
V = V(:, idx); % 特征向量矩阵
这样,D(1)是最大特征值,V(:,1)是最大特征向量
只会这些了。
全部回答
- 1楼网友:深街酒徒
- 2021-03-07 10:44
你说的应该是层次分析中的一致性检验吧。下面是我准备美赛建模时提前写的一个程序。
输入相应矩阵后自动判断是否通过一致性检验。若通过则给出最大特征值和标准化特征向量。
结果为“pass”,恭喜通过一致性检验。
输入要判定的矩阵
A=[1,1/2,2,1/3,3,1/4;2,1,3,1/2,4,1/3;1/2,1/3,1,1/4,2,1/5;3,2,4,1,5,1/2;1/3,1/4,1/2,1/5,1,1/6;4,3,5,2,6,1]
特征向量及特征值为:
V =
-0.2010 -0.1745 + 0.0436i -0.1745 - 0.0436i 0.2290 - 0.0656i 0.2290 + 0.0656i -0.2957
-0.3188 -0.1092 + 0.2551i -0.1092 - 0.2551i -0.2238 - 0.2904i -0.2238 + 0.2904i 0.3946
-0.1280 -0.0814 - 0.0764i -0.0814 + 0.0764i -0.0090 + 0.1722i -0.0090 - 0.1722i 0.2061
-0.5003 0.2477 + 0.3589i 0.2477 - 0.3589i -0.2917 + 0.4246i -0.2917 - 0.4246i -0.5680
-0.0855 0.0211 - 0.0954i 0.0211 + 0.0954i -0.0614 - 0.0801i -0.0614 + 0.0801i -0.0895
-0.7642 0.8237 0.8237 0.7096 0.7096 0.6195
D =
6.1225 0 0 0 0 0
0 0.0162 + 0.8535i 0 0 0 0
0 0 0.0162 - 0.8535i 0 0 0
0 0 0 -0.0594 + 0.1353i 0 0
0 0 0 0 -0.0594 - 0.1353i 0
0 0 0 0 0 -0.0361
CR =
0.0198
pass
权向量为
B =
0.1006
0.1596
0.0641
0.2504
0.0428
0.3825
- 2楼网友:你可爱的野爹
- 2021-03-07 10:07
给你提供一种很专业的数值算法“幂法”,这是专门用来算矩阵最大特征值的经典算法。“幂法“的算法过程其实很简单,就是拿一个向量,不停地用a乘,最后就会慢慢趋近于最大特征值对应的特征向量。“幂法”在矩阵拥有唯一最大特征值的前提下,迭代足够多次,就一定能收敛的,可以用线性代数的矩阵相似性原理证明。
我这段代码迭代了100次,取了随便一个向量[1 0 0 0 0 0]'作为初始值(一般是取个随机向量,其实没啥大差别)。
a=[1 1 1/4 3 3 3 ;1 1 1/4 3 3 3 ;4 4 1 5 5 5;1/3 1/3 1/5 1 2 2; 1/3 1/3 1/5 1/2 1 3;1/3 1/3 1/5 1/2 1/3 1];
v=[1 0 0 0 0 0]';
for i = 1:100
v=a*v;
v=v/sqrt(sum(v.^2));
end
lamda=sqrt(sum((a*v).^2))/sqrt(sum(v.^2))
v
结果:
lamda =
6.3526
v =
0.3242
0.3242
0.8571
0.1612
0.1414
0.0963
你会发现,和内置算法的eigs命令求出的结果是一样的。
>>eigs(a)
ans =
6.3526
0.0737 - 1.4350i
0.0737 + 1.4350i
-0.2500 - 0.4319i
-0.2500 + 0.4319i
-0.0000
最大特征值同样是6.3526。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯