随机模拟实验报告
目的:了解随即现象,分析随即过程找出规律,解决实际问题
实验原理:
1. 随机变量及其分布
随机事件:在一定条件下有可能发生的事件。
概率:随机事件发生的可能性的度量 P(A), 0 ≤ P(A) ≤ 1.
随机变量:在一定的范围内随机取值的变量,“X=ak” (k=1,2,…,n), 或
随机发生.
随机变量的分布:
则称
ak : a1 a2 … an
P(“X=ak”) p1 p2 … pn
为随机变量 X 的分布列, 简称 X 的分布
若已知
则称 p(x) 为随机变量 X 的分布密度, 简称X的分布
实验过程:
假设:市场服务超市有两个出口的收款台,两项服务:收款、装袋。两名职工在出口处工作。有两种安排方案:
1. 开一个出口,一人收款、一人装袋;
2. 开两个出口,每个人既收款又装袋。
问商店经理应选择哪一种收款台的服务方案。
随机变量 x = {0,1,2}表示每分钟到达超市收款台的人数,有分布列
xk 0 1 2
pk 0.4 0.3 0.3
利用matlab软件的rand产生的随即数。模拟十分钟内顾客到达收款台的状况
模型假设:1. 顾客的到达是随机的。 2. 收款装袋的时间是相同的。
第一种方案中,收款与装袋同时进行,用的时间相同。代码如下:
clf
line=zeros(1,60);%等待的顾客人数
wait=zeros(1,60);%等待时间的累加
serve=zeros(1,60); %服务时间的累加
num=zeros(1,60); %L1到达顾客人数累加。
st=1;%服务时间
r=rand(1,60);%随机数
for i=1:60;
if r(i)<0.4
n(i)=0;
elseif 0.4<=r(i)&r(i)<0.7
n(i)=1;
else n(i)=2;
end
end
if n(1)==2
line(1)=1;serve(1)=st;
end
for t=2:60
if line(t-1)==0&(n(t)==0|n(t)==1)
line(t)=0;
serve(t)=serve(t-1)+n(t);
wait(t)=wait(t-1)+n(t);
num(t)=num(t-1)+n(t);
else
line(t)=line(t-1)+n(t)-st;
wait(t)=wait(t-1)+line(t);
serve(t)=serve(t-1)+1;
num(t)=num(t-1)+n(t);
end
end
m=1:60;
hold on
plot(m,n,'b');
plot(m,line,'r');
hold off
server_average=serve(60)/60
totla_num=num(60)
wait_average=wait(60)/60
运行结果如下:
server_average =
0.8500
totla_num =
53
wait_average =
1.5500
结果评价:试验多次总有等待的高峰期。即是总有等待时候。
第二种方案中,收款与装袋分开进行,用的时间增加一倍。代码如下:
clf
line2=zeros(1,60);%等待的顾客人数
line1=zeros(1,60);%等待时间的累加
serve=zeros(1,61); %服务时间的累加
num=zeros(1,61); %L1到达顾客人数累加
st=1/2;%服务时间
r=rand(1,60);%随机数
for i=1:60
if r(i)<0.4
n(i)=0;
elseif 0.4<=r(i)&r(i)<0.7
n(i)=1;
else n(i)=2;
end
end
if n(1)==2
line1(1)=st;line2(1)=st;
elseif n(1)==1.0
line1(1)=st;
end
for t=2:60
if n(t)==1
if line1(t-1)>li