数学建模 离散模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六 离散模型

学号:1109301-22 姓名:张芳 评分:

一、 实验目的

1. 掌握层次分析模型、最短路模型等的建模基本方法和步骤,;

2. 会利用计算机求解层次分析模型、最短路模型 二、 实验要求

1. 预习层次分析模型、最短路模型等的建模与求解方法和实际案例分析;

2. 完成下面的实验内容;

3. 整理并上交实验报告(问题提出→模型建立→模型求解→程序运算结果→结果分析→心

得体会)。

三、实验内容与步骤

1. 你已经去过几家主要的摩托车商店,基本确定将从三种车型中选购一种。你选择的标准

主要有:价格、耗油量大小、舒适程度和外表美观情况。经反复思考比较,构造了它们之间的成对比较矩阵

⎥⎥⎥⎥⎦⎤⎢

⎢⎢

⎢⎣⎡=115181315171551318731

A

三种车型(记为a ,b ,c )关于价格、耗油量、舒适程度及你对它们表观喜欢程度的成对比较矩阵为

(价格) (耗油量)

c b

a

c b

a

c b a ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡121312121321 c b a ⎥⎥⎥⎦⎤

⎢⎢⎢⎣⎡171271521511

(舒适程度) (外表)

c b

a

c b

a

c b a ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡1411411531 c b a ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡17131715311

(1)根据上述矩阵可以看出四项标准在你心目中的比重是不同的,请按由重到轻的顺序将它们排出。

(2)哪辆车最便宜、哪辆车最省油、哪辆车最舒适,你认为哪辆车最漂亮? (3)用层次分析法确定你对这三种车型的喜欢程度(用百分比表示)。 解:(1)b,c,a;

(2)c 车最便宜,a 车最省油,a 车最舒适,b 车最漂亮。

程序:

function[w,nbt]=ccfxf(B) %层次分析计算成对比较矩阵特征向量、特征根% n=length(B);

w=zeros(n,1);C=zeros(n,n);D=zeros(1,n);F=zeros(n,1); E=zeros(n,1);C=B;nbt=zeros(1,1); for i=1:n for j=1:n

C(i,j)=B(i,j)./sum(B(:,j)); end end for i=1:n

E(i,1)=sum(C(i,:));

end %对矩阵C 按行求和% for i=1:n

w(i,1)=E(i,1)./sum(E(:,1)); end

nbt=(1/n)*sum((B*w)./w); end

(3)对a 种类型车的喜欢程度:41.06%;对c 种类型车的喜欢程度:43.78%;对c 种类型车的喜欢程度:15.16%。

2. 生产策略问题:现代化生产过程中,生产部门面临的突出问题之一,便是如何选取合理

的生产率.生产率过高,导致产品大量积压,使流动资金不能及时回笼;生产率过低,产品不能满足市场需要,使生产部门失去获利的机会.可见,生产部门在生产过程中必须时刻注意市场需求的变化,以便适时调整生产率,获取最大收益. 某生产厂家年初要制定生产策略,已预知其产品在年初的需求量为万单位,并以1b =万单位/月速度递增.若生产产品过剩,则需付单位产品单位时间(月)的库存保管费元;若产品短缺,则单位产品单位时间的短期损失费元.假定生产率每调整一次带有固定的调整费万元,问:工厂应如何制定当年的生产策略,使工厂的总损失最小? 提示:方法一建立数学规划模型,用LINGO 求解;方法二建立动态规划模型,用动态规划方法求解;方法三建立最短路模型,用Dijkstr 算法求解。

3. 某城市要建立一个消防站,为该市所属的七个区服

务,如图所示.问应设在哪个区,才能使它至最远区的路径最短. (1)用Floyd 算法求出距离矩阵D =νν⨯)(ij d .

(2) 计算在各点i v 设立服务设施的最大服务距

离)(i v S .

}{m a x )(1ij j i d v S ν

≤≤= 1,2,,i ν=

则k v 就是要求的建立消防站的地点.此点称为图的中心点. 解答:

建立M 文件:m-file

function[D,R]=floyd(a)

n=size(a,1);

D=a

for i=1:n

for j=1:n

R(i,j)=j;

end

end

R

for k=1:n

for i=1:n

for j=1:n

if D(i,k)+D(k,j)

D(i,j)=D(i,k)+D(k,j);

R(i,j)=R(i,k);

end

end

end

k

D

R

end

>>a=[0 3 inf inf inf inf inf;3 0 2 inf 18 2.5 inf;...

inf 2 0 6 2 inf inf;inf inf 6 0 3 inf inf;...

inf 18 2 3 0 4 inf;inf 2.5 inf inf 4 0 1.5;...

inf inf inf inf inf 1.5 0];

[D,R]=floyd(a)

D =

Columns 1 through 6

0 3.0000 5.0000 10.0000 7.0000 5.5000

3.0000 0 2.0000 7.0000

4.0000 2.5000

5.0000 2.0000 0 5.0000 2.0000 4.5000

10.0000 7.0000 5.0000 0 3.0000 7.0000

7.0000 4.0000 2.0000 3.0000 0 4.0000

5.5000 2.5000 4.5000 7.0000 4.0000 0

7.0000 4.0000 6.0000 8.5000 5.5000 1.5000

Column 7

7.0000

4.0000

相关文档
最新文档