对M/M/N排队论模型的matlab代码实现

@对M/M/N排队论模型的matlab代码实现

为什么有这串代码?

苦逼大学生为了完成一个课的作业倒腾的,搜不到别人的代码所以自己从头到尾根据题目需求码了一个。

题目要求

已知M/M/1也就是单个服务台情况下的顾客到达率、服务台服务率,要求计算多个(c个)服务台的情况下优化后的排队时间。

计算公式

此处因为算的是排队时间不是逗留时间,所以Ls、Ws不用算。
(下图中c就是c(t),是服务台数,是你要输入的三个参数的其中一个)
对M/M/N排队论模型的matlab代码实现_第1张图片
(下图第一个和第二个字母也是你需要输入的参数)
对M/M/N排队论模型的matlab代码实现_第2张图片

相应代码

clear %清屏
%根据需求改【】标志的三个参数的值就可以了!其他的不用动
%分别定义【服务台数c】,【到达率arrive】,【服务率service】, 以及到达率和服务率的比值
c = 7; arrive = 6.86; service = 1.23; a_s = arrive / service;
%求服务强度
service_strength = arrive / (c * service); 
%求P_0式子的中括号中带k的级数和部分的值
sum_1 = 0;
for k = 0:(c-1) 
    sum_1 = sum_1 + a_s^k/factorial(k);
end
%求P_0式子的中括号中剩下部分的值
sum_2 = a_s^c/(factorial(c)*(1-service_strength));
%------------求P_0的值--------------(t时段系统空闲概率)
P_0 = 1/(sum_1 + sum_2);
%------------求L_q的值--------------(t时段排队的旅客数)
L_q = a_s^c * service_strength * P_0 / (factorial(c) * (1-service_strength)^2);
%------------求W_q的值--------------(t时段优化后排队的时间)
W_q = L_q / arrive;

你可能感兴趣的:(排队论)