数学建模 离散模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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