艾艾 发表于 2007-6-4 15:43

求助应用层次分析法用MATLAB软件做出这道题的程序

某大学将毕业就业,有三个单位可供选择,假设该生选择职业时主要考虑如下因素:(1)进一步深造条件;(2)单位今后发展前景;(3)本人的兴趣和爱好;(4)单位所处的地域;(5)单位的声誉;(6)单位的经济效益,工资与福利待遇。


使用MATLAB软件 做希望如果有人会马上回复 谢谢了 我急用网上找了找不到的

[ 本帖最后由 xinyuxf 于 2007-6-5 10:18 编辑 ]

咕噜噜 发表于 2007-6-4 16:00

没有期望值?
把问题说明白,你说的太简单了

hunter_009 发表于 2007-6-4 16:01

上面的问题怎么量化?

艾艾 发表于 2007-6-4 16:07

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

艾艾 发表于 2007-6-4 16:08

就是套这个程序来做 可是我根本都不会 我们实习的论文 可是没实习 就是直接让交论文 而且我这段时间也没去上课 所以不会
还需要什么资料我这都有

[ 本帖最后由 mjhzhjg 于 2007-6-5 10:27 编辑 ]

艾艾 发表于 2007-6-4 16:15

目标层       选择工作单位 A

               深造条件B1
               发展前途B2
               兴趣爱好B3
准则层       单位地域B4
               单位声誉B5
               工资福利B6

               单位C1
方案层       单位C2
               单位C3

该生分析上述个因素,构造个因素成对比阵为

            B1   B2    B3    B4   B5   B6
B1         1      1   1       4      1       1/2
B2         1      1   2       4      1       1/2
B3         1      1/2   1      5      3       1/2
B4          1/4   1/4    1/5    1   1/3      1/3
B5         1      1      1/3    3      1      1
B6         2      2       2      3      1      1



就这么建立模型 然后再计算出权向量之类的还有对比阵 但是我不知道具体怎么编到程序里

咕噜噜 发表于 2007-6-4 16:28

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

艾艾 发表于 2007-6-4 16:32

让带中文吗? 直接这么写就可以吗? 可是那个RI矩阵不是还得换吗?

[ 本帖最后由 mjhzhjg 于 2007-6-5 10:28 编辑 ]

咕噜噜 发表于 2007-6-4 16:35

RI矩阵?那个?不就是那个期望值矩阵吗?7楼给的那个?不是吗?
matlab里面可以有中文,没关系,不想要你自己删掉

艾艾 发表于 2007-6-4 16:41

不是那个 那个不是A矩阵吗 后面最后不是还有个RI矩阵吗 那个矩阵怎么可能和给的源程序是一个呢不是要换数吗?

[ 本帖最后由 mjhzhjg 于 2007-6-5 10:29 编辑 ]

咕噜噜 发表于 2007-6-4 16:47

RI矩阵具体含义如何?不好意思,刚才没看清楚
如果猜测实话应该是矩阵A各列之和组成

艾艾 发表于 2007-6-4 16:56

解题时求出了个权向量(0。17   0。19   0。220。05   0。15   0。22)的转置
然后t=6.46    CI=0.092
CR=CI/RI=0.092/1.24=0.07<0.1

然后就是几个比较阵了还有这个程序中间的那些mn值都不需要换成具体数吗?

咕噜噜 发表于 2007-6-4 17:02

那RI就是等于
m,n不用赋值,n是矩阵维数,系统根据矩阵A判断,m根据前面条件系统决定
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

艾艾 发表于 2007-6-4 17:05

%以下是一致性检验
这句也需要打上吗? 这句什么意思啊? 能输出吗? 我这里没安MATLAB软件 所以不好意思再问一句谢谢拉

咕噜噜 发表于 2007-6-4 17:11

可以写可以不写,这是注释语句,写上就是为了知道程序的那一部分是什么功能
注释语句是不会有输出的
页: [1] 2
查看完整版本: 求助应用层次分析法用MATLAB软件做出这道题的程序