1、数学建模实验答案离散模型实验09 离散模型(2学时)(第8章 离散模型)1. 层次分析模型1.1(验证,编程)正互反阵最大特征根和特征向量的实用算法p263264已知正互反阵 注:263定理2 n阶正互反阵A的最大特征根 n。(1) 用MATLAB函数求A的最大特征根和特征向量。调用及运行结果(见264): A=1 2 6; 1/2 1 4; 1/6 1/4 1; V,D=eig(A)V = 0.8685 -0.8685 -0.8685 0.4779 0.2390 - 0.4139i 0.2390 + 0.4139i 0.1315 0.0658 + 0.1139i 0.0658 - 0.113
2、9iD = 3.0092 0 0 0 -0.0046 + 0.1663i 0 0 0 -0.0046 - 0.1663i D=diag(D)D = 3.0092 -0.0046 + 0.1663i -0.0046 - 0.1663i D=D.*(imag(D)=0)D = 3.0092 0 0 lambda,k=max(D)lambda = 3.0092k = 1 w=V(:,k)/sum(V(:,k)w = 0.5876 0.3234 0.0890(2) 幂法(见263)A为nn正互反矩阵,算法步骤如下:a. 任取n维非负归一化初始列向量(分量之和为1);b. 计算;c.归一化,即令;d.
3、对于预先给定的精度,当时,即为所求的特征向量;否则返回到步骤b;e. 计算最大特征根。注:函数式m文件如下:function lambda w=p263MI(A,d)%幂法求正互反阵最大特征根和特征向量% A 正互反方阵% d 精度% lambda 最大特征根% w 归一化特征列向量if(nargin=1) %若只输入一个变量(即A),则d取0.000001 d=1e-6;endn=length(A); %取方阵A的阶数w0=rand(n,1); w0=w0/sum(w0);%任取归一化初始列向量while 1 ww=A*w0; w=ww/sum(ww); %归一化 if all(abs(w-
4、w0)=0.1 % 成对比较阵A的一致性检验 disp(CR2=,num2str(CR2),0.1,A没有通过一致性检查!) return;end%第3层lambda3=zeros(1,5); w3k=zeros(3,5); CI3k=zeros(1,5); CR3k=zeros(1,5); for k=1:5 lambda3(k) w3k(:,k) CI3k(k) CR3k(k)=p250fun(eval(B(k,:); if CR3k(k)0.1 %成对比较阵B1的一致性检验 disp(CR3k(k)=,num2str(CR3k(k),0.1,B,num2str(k),没有通过一致性检查!
5、) return; endend %4.计算组合权向量并做组合一致性检验w3=w3k*w2; %最下层(第3层)对目标(第1层)的组合权向量%第3层组合一致性检验(从第3层开始)CI3=CI3k*w2;%随机一致性指标RI的数值(下标对应成对比较方阵的阶数):RI=0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51;RI3=RI(3,3,3,3,3)*w2;%标量CR3=CI3/RI3;if CR30.1 disp(CR3=,num2str(CR3),0.1,第3层没有通过组合一致性检查!) return;end%最下层(第3层)对第1层的组合一致
6、性比率为CR=CR2+CR3;if CR0.1 disp(CR=,num2str(CR),0.1,没有通过组合一致性检查!) return;end%添加命令用于显示有关结果:(2) 函数式m文件如下:function lamda w CI CR=p250fun(A)%求A的最大特征根及归一化特征列向量、一致性指标值CI、一致性比率值CR% A 成对比较阵(正互反方阵)% lamda 最大特征根值% w A的归一化特征列向量(权向量)% CI 一致性指标值% CR 一致性比率值 lamda w=p264HE(A); %求A的最大特征根及归一化特征列向量%随机一致性指标RI的数值(下标对应成对比较
7、方阵的阶数):RI=0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51;n=length(A);CI=(lamda-n)/(n-1); %一致性指标,CI=0时A为一致阵;CI越大A的不一致程度越严重CR=CI/RI(n); %一致性比率,CR0.1时认为A的不一致程度在容许范围之内要求:请仔细阅读以上程序,完成以下实验:在脚本式m文件后面添加命令,使 显示第2层的数据。包括:最大特征根;特征向量(权向量)w;一致性指标CI;一致性比率CR。添加的命令和运行结果(见254):lambda2,w2,CI2,CR2 显示第3层的数据。包括:特征向量(权
8、向量)w;最大特征根;一致性指标CI。添加的命令和运行结果(见255表3):w3k,lambda3,CI3k 显示最下层(第3层)对目标(第1层)的组合权向量。添加的命令和运行结果(见255):w3 显示第2层和第3层的组合一致性比率,以及最下层对第1层的组合一致性比率。添加的命令和运行结果(见256):CR2,CR3,CR2. 循环比赛的名次2.1(编程,验证)双向连通竞赛图(4顶点)的名次排序p270, 2712724个顶点的竞赛图(教材p270中图3(4))如下:4个队得分(获胜场数)为(2,2,1,1)由得分排名为(1,2),(3,4),该竞赛图是双向连通图,属于第2种类型,可通过以下
9、方法给出名次排序。该图的邻接矩阵为:(1) 编写一个程序,求出18级得分向量,并依据8级得分向量给出排名。给出程序和运行结果(比较272):clear; clc; format compact; format short g;A=0 1 1 0;0 0 1 1;0 0 0 1;1 0 0 0; %邻接矩阵n=length(A);%方阵A的阶数s=A*ones(n,1); disp(s);for k=2:8 s=A*s; disp(s);end,k=sort(s,descend); %降序k %排名(2) 求元素互不相等的得分向量法得分向量为s=A*ones其中, 记s(1)=ss(k)=A*s
10、(k-1)=Ak*ones, k=2, 3, (s(k)称为k级得分向量)程序如下:%双向连通竞赛图的名次排序(求元素不等的得分向量)%文件名:p272_1.mclear; clc; format compact; format short g;A=0 1 1 0;0 0 1 1;0 0 0 1;1 0 0 0; %邻接矩阵n=length(A);%方阵A的阶数s=A*ones(n,1); k=1;while length(unique(s)0),且有其中,1为全1列向量,为最大实特征根且为正,s为其特征列向量。%双向连通竞赛图的名次排序(特征根法)%文件名:p272_2.mclear; cl
11、c; format compact; format short g;A=0 1 1 0;0 0 1 1;0 0 0 1;1 0 0 0;%邻接矩阵V,D=eig(A); %返回A的特征值和特征向量。 %其中D为A的特征值构成的对角阵,每个特征值 %对应的V的列为属于该特征值的一个特征向量。D=diag(D); %返回矩阵D的对角线元素构成列向量。D=D.*(imag(D)=0); %复数特征值用0代替,实数的则不变lamda,k=max(D); lamdas=V(:,k)/sum(V(:,k); %最大特征根对应的特征列向量(归一化),k=sort(s,descend); %降序s, k(3)
12、 运行特征根法程序。给出运行结果(比较272):2.2(验证)双向连通竞赛图(6顶点)的名次排序p270,2722736个顶点的竞赛图(教材p270中图1)如下:该图的邻接矩阵为:要求:使用上题的程序。(1) 求出14级得分向量,并依据4级得分向量给出排名。运行结果(比较272):(2) 运行求元素互不相等的得分向量法程序。运行结果:(3) 运行特征根法程序。运行结果(比较273):3. 公平的席位分配3.1(验证)参照惯例的席位分配方法p278279某学校有甲乙丙三个系共有200名学生,其中甲系有103人,乙系有63人,丙系有34人。(1) 有20个代表席位,采用参照惯例的席位分配方法,分别
13、求出甲乙丙系的“席位分配结果”。(2) 有21个代表席位,采用参照惯例的席位分配方法,分别求出甲乙丙系的“席位分配结果”。下面是参照惯例的席位分配方法的求解函数:function qi,ni=p278fun(p,n)% p 各单位人数(列向量)% n 总席位(标量)% qi 按比例分配的席位(列向量)% ni 参照惯例的结果(列向量)qi=n*p/sum(p); %按比例各单位所得席位(可能含小数)ni=fix(qi); %各单位所得席位取整m=n-sum(ni); %可能有没分配完的席位if m0 %席位没分完 ,k=sort(qi-ni,descend); %按降序排序(缺省为升序) ni
14、(k(1: m)=ni(k(1: m)+1; %排在前m个,加1end要求: 在命令窗口分别调用以上函数求解(使用最佳定点或浮点格式(5位数字)控制命令format short g)。 两个结果比较,合理吗? 题(1)(20个代表席位)的调用及结果(比较279表1)。 题(2)(21个代表席位)的调用及结果(比较279表1)。3.2(验证)Q值方法p280281(教材:8.4 公平的席位分配)某学校有甲乙丙三个系共有200名学生,其中甲系有103人,乙系有63人,丙系有34人。(1) 有20个代表席位,采用Q值法分别求出甲乙丙系的“席位分配结果”。(2) 有21个代表席位,采用Q值法分别求出甲
15、乙丙系的“席位分配结果”。下面是Q值法的求解函数:function qi,ni=p280fun(p,n)% p 各单位人数(列向量)% n 总席位(标量)% qi 按比例分配的席位(列向量)% ni 参照惯例的结果(列向量)qi= n*p/sum(p);ni=fix(qi);while sum(ni)0 ,i=max(Qi); %求最大值元素及下标 ni(i)=ni(i)+1;end要求: 在命令窗口分别调用以上函数求解(使用最佳定点或浮点格式(5位数字)控制命令format short g)。 两个结果比较,合理吗? 题(1)(20个代表席位)的调用及结果(见281)。 题(2)(21个代表席位)的调用及结果(见281)。附1:实验提示附2:第8章 离散模型2498.1 层次分析模型254 题1.2答案255 题1.2答案256 题1.2答案263 题1.1(2)幂法264 题1.1(3)(4)和法、根法,答案2698.2 循环比赛的名次272 题2.1、2.2(1)答案273 题2.2(3)答案*本节完*2788.4 公平的席位分配279 题3.1答案281 题3.2答案286*本节完*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1