艾艾 发表于 2007-6-5 10:04

请帮我看下这个程序运行结果是什么?

disp('请输入判断矩阵A(n阶)');
A=[1      1   1       4      1       1/2
1      1   2       4      1       1/2
   1      1/2   1      5      3       1/2
   1/4   1/4    1/5    1   1/3      1/3
       1      1      1/3    3      1      1
       2      2       2      3      1      1];

=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1));
y(:,1)=x(:,1);
x(:,2)=A*y(:,1);
m(2)=max(x(:,2));
y(:,2)=x(:,2)/m(2);
p=0.0001;i=2;k=abs(m(2)-m(1));
whilek>p
i=i+1;
x(:,i)=A*y(:,i-1);
m(i)=max(x(:,i));
y(:,i)=x(:,i)/m(i);
k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
w=y(:,i)/a;
t=m(i);
disp(w);disp(t);
         %以下是一致性检验
CI=(t-n)/(n-1);RI=;
CR=CI/RI(n);
if CR<0.10
    disp('此矩阵的一致性可以接受!');
    disp('CI=');disp(CI);
    disp('CR=');disp(CR);
end





请帮我看下这个程序有问题吗? 如果没有运行结果是什么? 我这里没有MATLAB软件谢谢了!

dmxl1984 发表于 2007-6-5 10:08

有错误,RI=;未定义RI是什么
??? Error: File: C:\matlab\work\c.m Line: 31 Column: 18
Missing variable or function.

eight 发表于 2007-6-5 10:12

原帖由 艾艾 于 2007-6-5 10:04 发表 http://www.chinavib.com/forum/images/common/back.gif
disp('请输入判断矩阵A(n阶)');
A=[1      1   1       4      1       1/2
1      1   2       4      1       1/2
   1      1/2   1      5      3       1/2
   1/4   1/4    1/5    1   ...

结果如下:

spano 发表于 2007-6-5 10:16

没有软件也可以写啊,强人啊.

中间好多地方看不懂,x,y初始化都是1的矩阵,怎么还要求最大值,又把x第一列赋给y

艾艾 发表于 2007-6-5 10:30

随机一致性指标RI的取值根据取

我不会MATLAB 着急要交论文 所以请大家帮帮忙这个结论对吗?

艾艾 发表于 2007-6-5 10:37

层次分析法的matlab程序

disp('请输入判断矩阵A(n阶)');
A=input('A=');
=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1));
y(:,1)=x(:,1);
x(:,2)=A*y(:,1);
m(2)=max(x(:,2));
y(:,2)=x(:,2)/m(2);
p=0.0001;i=2;k=abs(m(2)-m(1));
whilek>p
i=i+1;
x(:,i)=A*y(:,i-1);
m(i)=max(x(:,i));
y(:,i)=x(:,i)/m(i);
k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
w=y(:,i)/a;
t=m(i);
disp(w);disp(t);
         %以下是一致性检验
CI=(t-n)/(n-1);RI=;
CR=CI/RI(n);
if CR<0.10
    disp('此矩阵的一致性可以接受!');
    disp('CI=');disp(CI);
    disp('CR=');disp(CR);
end



这是我网上下的 拒阵A是给的 然后RI我不知道是什么就把权向量换上去了权向量就是的转置或者你们谁帮我做出来应该正确的程序是什么 我下午等着交论文 谢谢拉 ~!

咕噜噜 发表于 2007-6-5 11:12

权向量是时,CR>0.10,不显示结果,也就是
此矩阵的一致性不可以接受

白雪傲梅 发表于 2007-6-6 23:50

RI表示修正值,是给出的固定值。例如,判断矩阵是1维的时候,RI=0;判断矩阵是5维的时候,
    RI=1.12

jonezhou 发表于 2007-6-7 13:02

A=[1      1      1       4      1       1/2
   1      1      2       4      1       1/2
   1      1/2    1       5      3       1/2
   1/4      1/4    1/5   1      1/3   1/3
   1      1      1/3   3      1       1
   2      2      2       3      1       1];

=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1));
y(:,1)=x(:,1);
x(:,2)=A*y(:,1);
m(2)=max(x(:,2));
y(:,2)=x(:,2)/m(2);
p=0.0001;i=2;k=abs(m(2)-m(1));
whilek>p
i=i+1;
x(:,i)=A*y(:,i-1);
m(i)=max(x(:,i));
y(:,i)=x(:,i)/m(i);
k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
w=y(:,i)/a;
t=m(i);
disp(w);
disp(t);
%以下是一致性检验
CI=(t-n)/(n-1);
RI=;
CR=CI/RI(n);
if CR<0.10
    disp('此矩阵的一致性可以接受!')
    disp('CI=')
    disp(CI)
    disp('CR=')
    disp(CR)
else disp('此矩阵的一致性不可以接受!')
end
%%%%%%%%%%%%%%%%%%%
answer:
    0.1584
    0.1892
    0.1980
    0.0483
    0.1502
    0.2558

    6.4204

此矩阵的一致性不可以接受!

xjzuo 发表于 2007-6-7 16:12

还是提示你一句吧: 千万不要生搬硬套,应该先弄懂程序的含义,更应该看看书,弄懂层次分析法的计算步骤.
对于你的这个问题, 很明显有三层(在另一版面看到), 你的方案层判断矩阵都没有写出,更别谈正确计算了...

[ 本帖最后由 xjzuo 于 2007-6-7 16:14 编辑 ]
页: [1]
查看完整版本: 请帮我看下这个程序运行结果是什么?