2011年数学建模B题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011年数学建模B题答案
load B1.txt %巡警站点号、横坐标、纵坐标(前三列)
load B2.txt %起始点,末端位置号(两列)
hzb=B1(:,2);%横坐标
zzb=B1(:,3);%纵坐标
start=B2(:,1);%起始位置
fina=B2(:,2);%末端位置
n=length(hzb);%坐标个数
m=length(start);%起始点个数:含重复
a=ones(n,n);%n阶矩阵
b=10000.*a;%b为矩阵a的值乘上10000
for i=1:m %每个始点出去
x=start(i);
y=fina(i);
if y<=92
s=((hzb(x)-hzb(y))^2+(zzb(x)-zzb(y))^2)^0.5;
b(x,y)=s;
b(y,x)=s;%双向图距离
end
end
path=zeros(n,20);%终点前一个路劲节点
distance=b(:,1:20);%二十个站到其他点的最短距离
u=0;
mindis=10000;%最短距离初始为10000
flag=1;
s=zeros(n,1);
for i=1:20
s=0.*s;%每次清零
flag=1;%bool型标量
for j=1:n
if distance(j,i)<10000
path(j,i)=i;%若满足,就往下走end
end
s(i)=1;
for j=1:n
% if flag==1
mindis=10000;
for k=1:n
if s(k)==0 & distance(k,i)<mindis
u=k;
mindis=distance(k,i);%选择最小的赋给mindis
end
end
% if mindis>30
% flag=0;
% end
s(u)=1;
for k=1:n
if s(k)==0 & b(u,k)<10000 & distance(u,i)+b(u,k)<distance(k,i)
distance(k,i)=distance(u,i)+b(u,k);
path(k,i)=u; %选择最短路径
end
end
% end
end
end
for i=1:20
for j=1:n
ifdistance(j,i)<10000&
fprintf(' %d %d %f,%d\n',i,j,distance(j,i),pa th(j,i));
%
fprintf('%d %d %f %d\n',i,j,distance(j,i),path(j ,i));
%fprintf('%f\n',distance(j,i)); %输出路径,始点,终点,及终点前一个结点
end
end
end
数学建模文章格式模版
题目:明确题目意思
一、摘要:500个字左右,包括模型的主要特点、建模方法和主要结果
二、关键字:3-5个
三.问题重述。
略
四.模型假设
根据全国组委会确定的评阅原则,基本假设的合理性很重要。
(1)根据题目中条件作出假设
(2)根据题目中要求作出假设
关键性假设不能缺;假设要切合题意
五.模型的建立
(1)基本模型:
1) 首先要有数学模型:数学公式、方案等
2. 图中任意两相邻标志点之间的道路为直线
3. 警察在规定时间内到达目的地的标志点就算满足要求
4. 警察按最短的路程选择赶往目的地
5. 不考虑交通阻塞等因素。
到达目的地的车辆行驶速度只与道路条件有关
6. 没有两个或两个以上的地方同时报警或按交巡警服务平台
7. 每个交巡警服务平台的职能和警力配备基本相同。
三. 符号说明
如无特别说明,本文的符号具有以下意义:
如无特别说明,本文的符号具有以下意义:
:任意两个标志点与间的距离
:标志点间的距离组成的距离矩阵
:标志点的邻接矩阵
:邻接矩阵的元素。
:相邻标志点间的距离矩阵。
:相邻标志点与间的距离
:标志点的权值矩阵
:标志点间的最短距离矩阵
:标志点与之间的最短距离。
:第一类学校顺序值向量(列向量)
:第二类学校顺序值向量(列向量)
四. 问题分析
本题所要解决的是交巡警服务平台分配管辖范围,我们利用已知的数据进行分析,利用MATLAB和Excel求的A区各路线起点与终点的距离。
并求出两点之间相应的时间。
(一)问题1的求解:
问题1 我们必须先根据题中所给的数据计算出各标志点任意两两之间的最短距离。
从而得到时间的模型,同时还可以得到警员布置的初步方案。
1、首先我们可以根据题中所给的各个标志点的坐标,用matlab计算出任意两点之间的直线距离,得到95*95的距离矩阵:
2、根据题中的分布图,我们可以得到各标志点的邻接矩阵:,即如果两个点相邻,则邻接矩阵中相对应的元素的值为1,否则为0;例如:1和2这两个点相邻,那么= =1。
3、根据Floyd算法,我们是要求出各标志点任意两两之间的距离,所以我们需要得到相邻两个标志点的直线距离。
我们可以利用距离矩阵的元素与的点乘积得到相邻标志点间的距离矩阵:。