24小时热门版块排行榜    

查看: 806  |  回复: 0

ilovesci80

金虫 (正式写手)

[求助] 层次分析法编程

现在的准则层有两层,该怎么用MATLAB求解?另附当准则层只有一层时的代码及我要求的数据。
这是我知道的只有一个准则层代码:
clc;clear
fid=fopen('ahptxt.txt','r');
n1=2;n2=4;
a=[];
for i=1:n1
tmp=str2num(fgetl(fid));
a=[a;tmp]; %读准则层判断矩阵
end
for i=1:n1
str1=char(['b',int2str(i),'=[];']);
str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']);
eval(str1);
for j=1:n2
tmp=str2num(fgetl(fid));
eval(str2); %读方案层的判断矩阵
end
end
ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %平均随机一致性指标
[x,y]=eig(a);
lamda=max(diag(y));
num=find(diag(y)==lamda);
w0=x(:,num)/sum(x(:,num));%准则层排序权重
cr0=(lamda-n1)/(n1-1)/ri(n1);%准则层随机一直性比率
ci0=(lamda-n1)/(n1-1)/ri(n1);%一致性指标
for i=1:n1
[x,y]=eig(eval(char(['b',int2str(i)])));
lamda=max(diag(y));
num=find(diag(y)==lamda);
w1(:,i)=x(:,num)/sum(x(:,num));%指标层单层排序权重
cr1(i)=(lamda-n2)/(n2-1)/ri(n2);%指标层随机一直性比率
ci1(i)=(lamda-n2)/(n2-1)/ri(n2);%一致性指标
end
cr1;
ts=w1*w0; %指标层总排序权重
cr=cr1*w0;%指标层总排序随机一直性比率

我现在要求的有两个准则层:
比较矩阵:
准则层
1, 1
1, 1

1, 3/5
5/3, 1

1, 8/7
7/8, 1
指标层
1, 4/3, 4/5, 2/3
3/4, 1, 3/5, 1/2
5/4, 5/3, 1, 5/6
3/2, 2, 6/5, 1

1, 3, 2, 3/2
1/3, 1, 2/3, 1/2
1/2, 3/2, 1, 3/4
2/3, 2, 4/3, 1

1, 3/7, 3/7, 1/2
7/3, 1, 1, 7/6
7/3, 1, 1, 7/6
2, 6/7, 6/7, 1

1, 5/8, 5/7, 5/7
8/5, 1, 8/7, 8/7
7/5, 7/8, 1, 1
7/5, 7/8, 1, 1

求MATLAB大牛帮助!谢谢!

[ Last edited by ilovesci80 on 2013-3-16 at 12:37 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 ilovesci80 的主题更新
信息提示
请填处理意见