ninipig 发表于 2009-8-16 11:08

跪求基于MATLAB的层次分析法程序!!

哪位高手有基于MATLAB的层次分析法程序,可否贡献出来大家一起分享了~~~
O(∩_∩)O谢谢!

yyfanghui010 发表于 2009-8-16 11:15

A=
=eig(A);%y是特征值且从大到小排列。x是特征矩阵,每一列为相应特征值的一个特征向量。
eigenvalue=diag(y);
lamda=eigenvalue(1);
y_lamda=x(:,1)
v1=y_lamda./norm(x,1) % 单位化
ads(v1) %绝对化
不知道是不是你要的,A是判断矩阵

dsshirley 发表于 2009-8-17 17:19

没有学习讨论的专区 就没有长期固定的活跃网友

ninipig 发表于 2009-8-28 08:33

喔,谢谢大家了。O(∩_∩)O~

chendaolee 发表于 2011-6-5 15:40

{:3_59:}{:3_49:}

muyitianmo 发表于 2012-12-7 22:03

好像菏泽个拉丁火把节说的话

568506561 发表于 2013-4-27 23:18

yyfanghui010 发表于 2009-8-16 11:15 static/image/common/back.gif
A=
=eig(A);%y是特征值且从大到小排列。x ...

你的标点都错了,不一致,而且矩阵也不是方阵,怎么可能求出来呢?

568506561 发表于 2013-4-27 23:19

%层次分析法的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));
while  k>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('权向量');disp(w);
disp('最大特征值');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
不知道能否帮到你

EvanZQ 发表于 2016-9-3 19:52

{:3_41:}{:3_41:}{:3_46:}{:3_48:}
页: [1]
查看完整版本: 跪求基于MATLAB的层次分析法程序!!