排队论(matlab代码可运行)
for i=1:k
p_t=[p_t,p0*beta*R^i];
篇一
end
%/M/PH/1(k);
%p=stationary_prob(4,beta,S,order,lambda);
function[p,p_minus,p_add,mean,time]=stationary_prob(k,beta,S,lambda)
order=length(beta);
e=ones(order,1);
R=lambda*inv(lambda*eye(size(S))-lambda*e*beta-S);
R_k=eye(size(S));
for i=1:k
R_k=R_k+R^i;
end
p0=inv(beta*(R_k-lambda*R^k*inv(S))*e);
p_t=p0;
p_t=[p_t,p0*beta*(R^k)*(-lambda*inv(S))];
%the queue length distribution in any time
%add every phase in the same level
p=p0;
for i=1:k+1
sum=0;
for j=1:order
sum=sum+p_t(1+(i-1)*order+j);
end
p=[p,sum];
end
第 1 页 共 3 页
本文格式为Word版,下载可任意编辑
p_minus=p; %
%the queue length distribution at departure %application
%p_add=p_minus(i)/(1-p_minus(k+1)) %
p_add=[0]; for i=0:k p_add=[p(k-i+1)/(1-p(k+2)),p_add]; end %the mean queue length mean=0; for i=1:k mean=mean+i*p(i+1); end %the mean waiting time time=mean/lambda/(1-p(k+2)); %M/E2/1(k)
lambda=2;
mu=4;
beta=[1,0];
S=[-mu,mu;0,-mu];
[p,p_minus,p_add,mean,time]=stationary_prob(4,beta,S,lambda); p
p_minus
p_add
mean
time
%M/H2/1(k)
第 2 页 共 3 页
本文格式为Word版,下载可任意编辑
lambda=2; [p,p_minus,p_add,mean,time]=stationary_prob(4,beta,S,lambda); p
mu=2; p_minus
beta=[0.5,0.5]; p_add
S=[-3,0;0,-1.5]; [p,p_minus,p_add,mean,time]=stationary_prob(4,beta,S,lambda); p p_minus p_add mean
time
%M/M/1(k)
lambda=2;
mu=2;
beta=[1];
S=[-mu];
mean
time
第 3 页 共 3 页
因篇幅问题不能全部显示,请点此查看更多更全内容