作业帮 > 综合 > 作业

麻烦你帮我检查一下这个对不对,跪谢,我就抱你的大腿了,都是为了讨女神高兴,你懂的.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/14 08:54:07
麻烦你帮我检查一下这个对不对,跪谢,我就抱你的大腿了,都是为了讨女神高兴,你懂的.
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]; %原始对比矩阵数据,对应你的U矩阵
A1=A;
[m,n]=size(A) ; %求出矩阵的行和列
z=sum(A); %列向量归一
for i=1:m
for j=1:n
A(i,j)=A(i,j)/z(j);
end
end
A; %列向量归一后的矩阵
B=cumsum(A,2); %行向量求和
for i=1:m-1 %去掉前m-1列,得单列向量
B(:,1)=[];
end
B2=sum(B); %列归一
for i=1:length(B)
B(i)=B(i)/B2;
end
B; %归一后得矩阵
TZXL=A1*B ; %所求得特征向量
for i=1:m %和法求最大特征向量
T(i)=TZXL(i)/B(i);
end
ZD=sum(T)/m %ZD为最大特征根
B %最大特征根对应的特征向量
RI=[0 0 0.58 0.9 1.12 1.24 1.32 1.41 1.45 1.49 1.51];%RI为随机一致性指标,如果不够的话,根据你的变量个数改变吧,网上一般有这个表
CI=(ZD-m)/(m-1) %CI为一致性指标
CR=CI/RI(m) %CR为一致性比率,
我的程序在这,不是很难编,给你了.祝你早日抱得美人归!哈哈~ps:不懂可以继续问.
再问:   大神,我把你给我的程序粘进去了,然后我就不会操作了,你要理解一个小白跟大神对话是很难的。  要不麻烦您老人家帮我把程序直接编好行不,我要的数据有最大值、特征向量、一致性检验。  或者你把我上面的程序检查一下看看对不对,要是不对你给我改一下,然后我直接粘进来运行就出结果那种的。  再次跪谢大神救命之恩。
再答: 你的程序我看不懂,没那么复杂吧。不就是先求特征值和特征向量(matlab有自动函数),然后检验是否通过一致性检验,若通过给出最大特征值所对应的特征向量的标准化向量吗?我还是教你怎么用我的程序吧!首先我给你的是个m脚本文件。你双击打开应该是这个样子的(局部图)。直接点击绿色小箭头运行,如下。看到了吧若这个m函数不在你的工作目录下,这时matlab会提醒你是否改变当前工作目录。选择“是”。然后在你的命令空间会出现,如下字样:你照着输入就行,如下:输入完敲回车,就出现结果了。为了看的更明白,我将之前给你的m函数又改了一下。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];
特征值为:
D1 =
。。。
对应的特征向量为:
V =
。。。     
最大特征值为:
m =
    6.1225

CR =
    0.0198
是否通过一致性检验?
pass
权向量为
B =
    0.1006
    0.1596
    0.0641
    0.2504
    0.0428
    0.3825

ans =
 。。。有些数据我用。。。代替了。ans是你输入的矩阵,不用管。看到了吧,矩阵所有的特征值为D1你要的最大特征值为m.CR<=0.1 所以通过检验最大特征值所对应的原向量在特征值矩阵中可以对应的找出(和最大特征值对应一个列),将最大特征值所对应的特征向量归一化之后,结果为B.总而言之,你要的最大特征值为:6.1225
一致性检验结果:CR=0.0198,通过检验特征向量为:特征矩阵第一列特征向量归一化之后为(不知道你需不需要归一化,在层次分析法中是需要的):m改过之后的m函数给你付上了。 
再问: 大神,你真的是大神,膜拜!!!谢谢你!!