数学建模实验答案离散模型Word格式.docx

上传人:b****6 文档编号:17718610 上传时间:2022-12-08 格式:DOCX 页数:21 大小:314.94KB
下载 相关 举报
数学建模实验答案离散模型Word格式.docx_第1页
第1页 / 共21页
数学建模实验答案离散模型Word格式.docx_第2页
第2页 / 共21页
数学建模实验答案离散模型Word格式.docx_第3页
第3页 / 共21页
数学建模实验答案离散模型Word格式.docx_第4页
第4页 / 共21页
数学建模实验答案离散模型Word格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数学建模实验答案离散模型Word格式.docx

《数学建模实验答案离散模型Word格式.docx》由会员分享,可在线阅读,更多相关《数学建模实验答案离散模型Word格式.docx(21页珍藏版)》请在冰豆网上搜索。

数学建模实验答案离散模型Word格式.docx

,k))

w=

0.5876

0.3234

0.0890

(2)幂法(见[263])

A为n×

n正互反矩阵,算法步骤如下:

a.任取n维非负归一化初始列向量(分量之和为1)

b.计算

c.

归一化,即令

d.对于预先给定的精度ε,当

时,

即为所求的特征向量;

否则返回到步骤b;

e.计算最大特征根

函数式m文件如下:

function[lambdaw]=p263MI(A,d)

%幂法——求正互反阵最大特征根和特征向量

%A正互反方阵

%d精度

%lambda最大特征根

%w归一化特征列向量

if(nargin==1)%若只输入一个变量(即A),则d取0.000001

d=1e-6;

end

n=length(A);

%取方阵A的阶数

w0=rand(n,1);

w0=w0/sum(w0);

%任取归一化初始列向量

while1

ww=A*w0;

w=ww/sum(ww);

%归一化

ifall(abs(w-w0)<

d)

break;

end

w0=w;

lambda=sum(ww./w0)/n;

(2)用幂法函数求A的最大特征根和特征向量。

(3)和法(见[264])

a.将A的每一列向量归一化得

b.对

按行求和得

c.将

归一化

即为近似特征向量;

d.计算

,作为最大特征根的近似值。

function[lambdaw]=p264HE(A)

%和法——求正互反阵最大特征根和特征向量

AA=A/diag(sum(A));

%a.将A的每一列向量归一化

ww=sum(AA,2);

%b.对AA按行求和,ww为列向量

w=ww./sum(ww);

%c.归一化,得w为近似特征列向量

lambda=sum(A*w./w)/length(A);

%d.计算最大特征根的近似值λ

☆(3)用和法函数求A的最大特征根和特征向量。

(4)根法(见[264])

按行求积并开n次方得

★(4)编写根法函数,用该函数求A的最大特征根和特征向量。

[提示:

sum,prod,diag]

对矩阵A按行求和的调用为sum(A,2)。

对矩阵A按行求积的调用为prod(A,2)。

diag(V),用向量V构造对角矩阵。

nargin,存放函数输入自变量的数目。

编写的程序和调用及运行结果(见[264]):

function[lambdaw]=p264GEN(A)

%根法——求正互反阵最大特征根和特征向量

%w归一化特征列向量

ww=(prod(AA,2)).^(1/n);

%b.对AA按行求积并开n次方,ww为列向量

lambda=sum(A*w./w)/n;

1.2(验证,编程)旅游决策问题p250~256

在下面程序中,脚本式m文件p250.m调用函数式m文件p250fun.m(求A的最大特征根及归一化特征列向量、一致性指标值CI、一致性比率值CR),p250fun.m中调用另一个函数式m文件p264HE.m(求A的最大特征根及归一化特征列向量)。

(1)脚本式m文件如下:

%旅游决策问题

%文件名:

p250.m

clear;

clc;

formatcompact;

%层次分析法的基本步骤:

%1.建立层次结构模型

%见p250图1选择旅游地的层次结构

%2.构造成对比较阵

%第2层为准则层:

景色、费用、居住、饮食和旅途5个准则

A=[11/2433;

...

21755;

1/41/711/21/3;

1/31/5211;

1/31/5311];

%第3层为方案层:

P1、P2和P3等3个供选择地点

B1=[125;

1/212;

1/51/21];

B2=[11/31/8;

311/3;

831];

B3=[113;

113;

1/31/31];

B4=[134;

1/311;

1/411];

B5=[111/4;

111/4;

441];

B=['

B1'

;

'

B2'

B3'

B4'

B5'

];

%3.计算权向量并做一致性检查

%第2层

[lambda2w2CI2CR2]=p250fun(A);

ifCR2>

=0.1%成对比较阵A的一致性检验

disp(['

CR2='

num2str(CR2),'

0.1,A没有通过一致性检查!

])

return;

%第3层

lambda3=zeros(1,5);

w3k=zeros(3,5);

CI3k=zeros(1,5);

CR3k=zeros(1,5);

fork=1:

5

[lambda3(k)w3k(:

k)CI3k(k)CR3k(k)]=p250fun(eval(B(k,:

)));

ifCR3k(k)>

0.1%成对比较阵B1的一致性检验

CR3k(k)='

num2str(CR3k(k)),'

0.1,B'

num2str(k),'

没有通过一致性检查!

%4.计算组合权向量并做组合一致性检验

w3=w3k*w2;

%最下层(第3层)对目标(第1层)的组合权向量

%第3层组合一致性检验(从第3层开始)

CI3=CI3k*w2;

%随机一致性指标RI的数值(下标对应成对比较方阵的阶数):

RI=[000.580.901.121.241.321.411.451.491.51];

RI3=RI([3,3,3,3,3])*w2;

%标量

CR3=CI3/RI3;

ifCR3>

0.1

CR3='

num2str(CR3),'

0.1,第3层没有通过组合一致性检查!

%最下层(第3层)对第1层的组合一致性比率为

CR=CR2+CR3;

ifCR>

CR='

num2str(CR),'

0.1,没有通过组合一致性检查!

%添加命令用于显示有关结果:

(2)函数式m文件如下:

function[lamdawCICR]=p250fun(A)

%求A的最大特征根及归一化特征列向量、一致性指标值CI、一致性比率值CR

%A成对比较阵(正互反方阵)

%lamda最大特征根值

%wA的归一化特征列向量(权向量)

%CI一致性指标值

%CR一致性比率值

[lamdaw]=p264HE(A);

%求A的最大特征根及归一化特征列向量

CI=(lamda-n)/(n-1);

%一致性指标,CI=0时A为一致阵;

CI越大A的不一致程度越严重

CR=CI/RI(n);

%一致性比率,CR<

0.1时认为A的不一致程度在容许范围之内

要求:

请仔细阅读以上程序,完成以下实验:

在脚本式m文件后面添加命令,使

★①显示第2层的数据。

包括:

最大特征根λ;

特征向量(权向量)w;

一致性指标CI;

一致性比率CR。

添加的命令和运行结果(见[254]):

lambda2,w2,CI2,CR2

★②显示第3层的数据。

一致性指标CI。

添加的命令和运行结果(见[255]表3):

w3k,lambda3,CI3k

★③显示最下层(第3层)对目标(第1层)的组合权向量。

添加的命令和运行结果(见[255]):

w3

★④显示第2层和第3层的组合一致性比率,以及最下层对第1层的组合一致性比率。

添加的命令和运行结果(见[256]):

CR2,CR3,CR

2.循环比赛的名次

2.1(编程,验证)双向连通竞赛图(4顶点)的名次排序p270,271~272

4个顶点的竞赛图(教材p270中图3(4))如下:

4个队得分(获胜场数)为(2,2,1,1)由得分排名为{(1,2),(3,4)},该竞赛图是双向连通图,属于第2种类型,可通过以下方法给出名次排序。

该图的邻接矩阵为:

(1)编写一个程序,求出1~8级得分向量,并依据8级得分向量给出排名。

给出程序和运行结果(比较[272]):

formatshortg;

A=[0110;

0011;

0001;

1000];

%邻接矩阵

%方阵A的阶数

s=A*ones(n,1);

disp(s'

);

fork=2:

8

s=A*s;

[~,k]=sort(s,'

descend'

%降序

k'

%排名

(2)求元素互不相等的得分向量法

得分向量为

s=A*ones

其中,

记s

(1)=s

s(k)=A*s(k-1)=Ak*ones,k=2,3,…(s(k)称为k级得分向量)

程序如下:

%双向连通竞赛图的名次排序(求元素不等的得分向量)

p272_1.m

k=1;

whilelength(unique(s))<

n%unique(s)去掉s中的重复元素

s=A*s;

k=k+1;

k%k级得分向量

s'

%元素不等的得分列向量

[~,kk]=sort(s,'

kk'

(2)运行求元素互不相等的得分向量法程序。

运行结果(比较[272]):

(3)特征根法

对于n≥4个顶点的双向连通竞赛图,其邻接矩阵A为素阵(存在正整数r,使Ar>

0),且有

其中,1为全1列向量,λ为最大实特征根且为正,s为其特征列向量。

%双向连通竞赛图的名次排序(特征根法)

p272_2.m

%邻接矩阵

[V,D]=eig(A);

%返回A的特征值和特征向量。

%其中D为A的特征值构成的对角阵,每个特征值

%对应的V的列为属于该特征值的一个特征向量。

D=diag(D);

%返回矩阵D的对角线元素构成列向量。

D=D.*(imag(D)==0);

%复数特征值用0代替,实数的则不变

[lamda,k]=max(D);

lamda

s=V(:

k));

%最大特征根对应的特征列向量(归一化)

k'

☆(3)运行特征根法程序。

给出运行结果(比较[272]):

2.2(验证)双向连通竞赛图(6顶点)的名次排序p270,272~273

6个顶点的竞赛图(教材p270中图1)如下:

使用上题的程序。

(1)求出1~4级得分向量,并依据4级得分向量给出排名。

运行结果:

运行结果(比较[273]):

3.公平的席位分配

3.1(验证)参照惯例的席位分配方法p278~279

某学校有甲乙丙三个系共有200名学生,其中甲系有103人,乙系有63人,丙系有34人。

(1)有20个代表席位,采用参照惯例的席位分配方法,分别求出甲乙丙系的“席位分配结果”。

(2)有21个代表席位,采用参照惯例的席位分配方法,分别求出甲乙丙系的“席位分配结果”。

下面是参照惯例的席位分配方法的求解函数:

function[qi,ni]=p278fun(p,n)

%p各单位人数(列向量)

%n总席位(标量)

%qi按比例分配的席位(列向量)

%ni参照惯例的结果(列向量)

qi=n*p/sum(p);

%按比例各单位所得席位(可能含小数)

ni=fix(qi);

%各单位所得席位取整

m=n-sum(ni);

%可能有没分配完的席位

ifm>

0%席位没分完

[~,k]=sort(qi-ni,'

%按降序排序(缺省为升序)

ni(k(1:

m))=ni(k(1:

m))+1;

%排在前m个,加1

①在命令窗口分别调用以上函数求解(使用最佳定点或浮点格式(5位数字)控制命令formatshortg)。

②两个结果比较,合理吗?

☆题

(1)(20个代表席位)的调用及结果(比较[279]表1)。

☆题

(2)(21个代表席位)的调用及结果(比较[279]表1)。

3.2(验证)Q值方法p280~281

(教材:

8.4公平的席位分配)

(1)有20个代表席位,采用Q值法分别求出甲乙丙系的“席位分配结果”。

(2)有21个代表席位,采用Q值法分别求出甲乙丙系的“席位分配结果”。

下面是Q值法的求解函数:

function[qi,ni]=p280fun(p,n)

qi=n*p/sum(p);

whilesum(ni)<

n

Qi=p.^2./(ni.*(ni+1));

%ni>

[~,i]=max(Qi);

%求最大值元素及下标

ni(i)=ni(i)+1;

☆题

(1)(20个代表席位)的调用及结果(见[281])。

☆题

(2)(21个代表席位)的调用及结果(见[281])。

附1:

实验提示

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1