概述
2019数学建模国赛C
运用模拟仿真的思想
附录1 在一定时间段内出租车在市区的平均空载率 zhs02.m
clear;
clc;
data=xlsread('C:UserslimaoliDesktop成都数据20140804.xlsx');
index=find(data(:,2)<30.66|data(:,2)>30.68|data(:,3)<104.05|data(:,3)>104.07);
data(index,:)=[]; %筛选出市区范围的出租车
a1=find(data(:,8)>21600&data(:,8)<28800);
data_1=data(a1,:); %筛选出6点到8点的车
a2=find(data(:,8)>28800&data(:,8)<36000);
data_2=data(a2,:);
a3=find(data(:,8)>36000&data(:,8)<43200);
data_3=data(a3,:);
a4=find(data(:,8)>43200&data(:,8)<50400);
data_4=data(a4,:);
a5=find(data(:,8)>50400&data(:,8)<57600);
data_5=data(a5,:);
a6=find(data(:,8)>57600&data(:,8)<64800);
data_6=data(a6,:);
a7=find(data(:,8)>64800&data(:,8)<72000);
data_7=data(a7,:);
a8=find(data(:,8)>72000&data(:,8)<79200);
data_8=data(a8,:);
a9=find(data(:,8)>79200&data(:,8)<86400);
data_9=data(a9,:);
waittime=0;
worktime=0;
m1=1;m2=1;m3=1;m4=1;m5=1;m6=1;m7=1;m8=1;m9=1;
for i=1:824
if data_1(i,1)==data_1(i+1,1)
if data_1(i,4)==1&&data_1(i+1,4)==1
worktime=worktime+data_1(i+1,8)-data_1(i,8);
else
waittime=waittime+data_1(i+1,8)-data_1(i,8);
end
else
kzl_1(m1)=waittime/(worktime+waittime); %求空载率
m1=m1+1;
waittime=0;
worktime=0;
end
end
附录2 在一定时间段内出租车在机场的平均等待时间 zhs04.m
clear;
clc;
for M=1:60 %机场已有出租车数量从1到60进行遍历
ZT=0;
for i=1:1000
%循环并求1000次出租车在机场的等待时间
N=M;
%令当前出租车数量为M
u=random('Poisson',115/1215,1,180);T=1300; n=0;
%泊松分布产生在一定时间段内的随机数
t=0; %令初始时间为0
while (N>0&&T<=3580)
if n==0
n=u(T/20+1);
%出租车开始排队时乘客排队数量
T=T+20;
t= t+20;
else
n=n-1+u(T/20+1);
%已有乘客全部上车之后剩余的乘客数量
N=N-1;
t=t+20;
T=T+20;
end
end
TT=T;tt=t;
%令TT为机场到市区时间,tt为出租车在机场的等待时间
ZT=ZT+t;
%出租车在机场的等待时间累加
avg(M)=ZT/1000;
%求1000次出租车在机场的等待时间的平均
end
end
avg
%输出在一定时间段内的出租车平均出租车在机场的等待时间
附录3 模拟乘客上车过程 zhs06.m
clear;
clc;
p=0;q=0;C=6;
for num1=1:6
for num2=1:10
for num3=1:10
passengers=random('Poisson',num1*0.2,1,180);
taxi=random('Poisson',num2*0.2,1,180);
T=0;n=0;N=0;
while (T<=1780)
if N==0
N=N+taxi(T/20+1);
n=n+passengers(T/20+1);
T=T+20;
else %N>0
if n==0
n=n+passengers(T/20+1);
N=N+taxi(T/20+1);
T=T+20;
else %n>0
if (0<n)&&(n<=C)
if N<=n
n=n+passengers(T/20+1)-N;
N=N+taxi(T/20+1)-N;
T=T+20;
else %N>n
n=n+passengers(T/20+1)-n;
N=taxi(T/20+1)+N-n;
T=T+20;
end
else% n>C
if N<=C
n=n+passengers(T/20+1)-N;
N=taxi(T/20+1)+N-N;
T=T+20;
else %N>C
n=n+passengers(T/20+1)-C;
N=taxi(T/20+1)+N-C;
T=T+20;
end
end
end
end
end
p=p+N;
q=q+n;
end
A(num1,11-num2)=p/100;
B(num1,11-num2)=q/100;
end
end
A;
B;
figure(1);
contour(A)
figure(2)
contour(B)
以上部分程序 代码和数据集以及论文上传到资源了
最后
以上就是甜美蜗牛为你收集整理的2019数学建模国赛C题2019数学建模国赛C的全部内容,希望文章能够帮你解决2019数学建模国赛C题2019数学建模国赛C所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复