你参考模仿一下吧。
clear
clc
%*****************************************
%初始化顾客源
%*****************************************
%总仿真时间
Total_time=10;
%队列最大长度
N=10000000000;
%到达率与服务率
lambda=10;
来自mu=6;
%平均到达时间与平均服务时间
arr_mean=1/lambda;
ser_mean360问答=1/mu;
arr_num=round(Total_time*lambda*2);
ev二管烧打善喜著星章持跑ents=[];
%按负指数分布产生各顾客达到时间间隔
events(1,:)=exprnd(arr_mean,1,arr_num);
%各顾客的到达时刻等于时间间隔的累积和
events(1,:)=cumsum(些统异元征功events(1,:九));
%按负指数分布产生各顾客服务时间
even陆究县减字去补评油或场ts(2,:)=exprnd(妈时社木苗史ser_mean,1,arr_num);
%续特架屋环计算仿真顾客个数,即到达时刻在仿真时间内的顾客数
len_sim部雷=sum(event讲造石s(1,:)<=Total_time);
%*****************************************
%计算第1个顾客的信息
%*************作力胜远怀够苦明值班色****************************
%第1个顾客进入系统后直接接受服务,无需等待
events(3,1)=0;
%其离开时刻等于其到达时刻与服务时间之和
ev式女己杆报死ents(4,1)=events(1,1)+events(2,1);
%联江养案冲其肯定被系统接纳见,此时系统内共有
%1个顾客,赵故标志位置1
events(5,1)=1;
%其进入系统后,系统内已有成员序号为1
member=[严娘积害情尔剂绿斯促1];
fori=2:arr_num
%如果第i个顾客的到达时间超过了仿真时间,则跳出循环
ifevents(1,i)>Total_time
bre极药的松维ak;
else
num药ber=sum(events(4,member)>events(1,i));
问%如果系统已满,则系统拒绝第i个顾客,其标志位置0
ifnumber>=N+1
events(5,i)=0;
%如果系统为空,则第i个顾客直接接受服务
else
ifnumber==0
%其等待时间为0
2009.1516
%PROGRAMLANGUAGEPROGRAMLANGUAGE
events(3,i)=0;
%其离开时刻等于到达时刻与服务时间之和
events(4,i)=events(1,i)+events(2,i);
%其标志位置1
events(5,i)=1;
member=[member,i];
%如果系统有顾客正在接受服务,且系统等待队列未满,则第i个顾客进入系统
elselen_mem=length(member);
%其等待时间等于队列中前一个顾客的离开时刻减去其到达时刻
events(3,i)=events(4,member(len_mem))-events(1,i);
%其离开时刻等于队列中前一个顾客的离开时刻加上其服
%务时间
events(4,i)=events(4,member(len_mem))+events(2,i);
%标识位表示其进入系统后,系统内共有的顾客数
events(5,i)=number+1;
member=[member,i];
end
end
end
end
%仿真结束时,进入系统的总顾客数
len_mem=length(member);
%*****************************************
%输出结果
%*****************************************
%绘制在仿真时间内,进入系统的所有顾客的到达时刻和离
%开时刻曲线图(stairs:绘制二维阶梯图)
stairs([0events(1,member)],0:len_mem);
holdon;
stairs([0events(4,member)],0:len_mem,'.-r');
legend('到达时间','离开时间');
holdoff;
gridon;
%绘制在仿真时间内,进入系统的所有顾客的停留时间和等
%待时间曲线图(plot:绘制二维线性图)
figure;
plot(1:len_mem,events(3,member),'r-*',1:len_mem,events(2,member)+events(3,member),'k-');
legend('等待时间','停留时间');
gridon;