排队论计算Matlab代码,排队论(matlab代码可运行)
时间: 2024-02-20 19:58:30 浏览: 126
以下是一个简单的排队论模型的Matlab代码,可以计算排队系统的平均等待时间、平均逗留时间等指标。
```matlab
% 排队论模型计算程序
lambda = input('请输入顾客到达率:'); % 顾客到达率
mu = input('请输入服务率:'); % 服务率
s = input('请输入服务台数量:'); % 服务台数量
K = input('请输入系统容量:'); % 系统容量,0表示无限制
if s <= 0 || lambda <= 0 || mu <= 0
error('参数错误');
end
if s == 1 % 单个服务员
if lambda >= mu % 稳态不可达
error('稳态不可达');
end
rho = lambda / mu; % 系统利用率
Lq = rho^2 / (1 - rho); % 平均等待队列长度
Wq = Lq / lambda; % 平均等待时间
W = Wq + 1 / mu; % 平均逗留时间
disp(['系统利用率:', num2str(rho)]);
disp(['平均等待队列长度:', num2str(Lq)]);
disp(['平均等待时间:', num2str(Wq)]);
disp(['平均逗留时间:', num2str(W)]);
else % 多个服务员
if lambda / (s * mu) >= 1 % 稳态不可达
error('稳态不可达');
end
rho = lambda / (s * mu); % 系统利用率
P0 = 1 / (sum((rho.^k) ./ factorial(k)) + (rho^s / factorial(s)) * (1 / (1 - rho / s))); % 系统空闲概率
Lq = (rho^(s+1) * P0) / (factorial(s - 1) * s^s * (1 - rho / s)^2); % 平均等待队列长度
Wq = Lq / lambda; % 平均等待时间
W = Wq + 1 / mu; % 平均逗留时间
disp(['系统利用率:', num2str(rho)]);
disp(['平均等待队列长度:', num2str(Lq)]);
disp(['平均等待时间:', num2str(Wq)]);
disp(['平均逗留时间:', num2str(W)]);
end
```
输入顾客到达率、服务率、服务台数量和系统容量等参数,即可得到计算结果。如果输入的参数不合法或者稳态不可达,程序会输出错误信息。
阅读全文