排队论大作业重点讲义.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
排队论大作业重点讲义

随机过程与排队论姓名:刘世杰学号:14030120083基于一步转移矩阵收敛快慢的分析14030120083 刘世杰摘要:一步转移矩阵最终会收敛到一个稳定的状态,但是收敛有快慢之分。本文着重于讨论影响一步转移矩阵收敛快慢的因素。设其初始转态为X0,一步转移矩阵为P,由马尔科夫过程可以得到X0*P^n =Y(当n足够大时nN)。通过对不同X0的一步转移矩阵计算其n值,得到收敛快慢与X0的关系,再比较不同的一步转移矩阵P收敛快慢,得到P与收敛快慢的关系。一 概述:马尔科夫链的应用非常重要,同事也非常广泛的应用在现代的各个领域中,像马尔科夫链预测,能够对状态转移和时间序列做很好的预测,同时一步转移矩阵在市场营销上也有起到预测作用。当然还有很多的其他应用,这里就不多说了。二 一步转移矩阵的模型分析根据前面的假设,初始状态为X0,一步转移矩阵概率为P,当n足够大时X0*P^n = Y设置一个初始转态X0,计算n的收敛阈值,当矩阵收敛到一个稳定的状态时,会得到Y为一个稳定的行列式。X0 *P^n=其中 p11+......+p15=1 P21+......+p25=1.. P51+......+p55=1根据计算对于不同的X0,一步转移矩阵收敛时n的值没有变化,可以得到其与初始状态X0无关。此时,改变一步转移矩阵的类型,使用不同的一步转移矩阵,并设置同样的初始状态X0,计算此时的阈值n发现对于不同的一步转移矩阵,其收敛速度并不一样。对于不同的一步转移矩阵,其收敛速度与什么有关,有以下假设:1 一步转移矩阵行列式的值会对收敛速度有影响。对于一步转移矩阵的行列式值,通过计算不同行列式的值的得到矩阵的收敛速度图如下仿真结果:环境:matlab,win7对于行列式为1的此矩阵,是收敛的,且速度最快对于一个随机转移矩阵B,n在19时收敛det(B)=-0.003;对于行列式值为0.03的矩阵D,n=100时收敛对于行列式值为0的矩阵E在n=150时收敛对于行列式值为0.358的矩阵F,在n=40时收敛从以上的数据中可以得到,当det(P)为1时,矩阵已经是收敛的,当det(P)=0时,矩阵几乎是不收敛的,当det(P)趋近与1时收敛越快。测量多组数据得到如下图曲线图(横坐标为Det,纵坐标为收敛速度)四总结:从本次实验中可以得出一步转移矩阵的收敛速度与矩阵行列式的值有关,行列式的值越大,收敛越快。题目二要求:分析但服务窗等待制M/M/N排队系统,其中平均到达速率I,每个服务员的平均服务速率为u,由概率分布求系统中的总顾客数L,考虑到公式推导的复杂性,用自己熟悉的语言纸上写代码,给出求解l近似值的核心代码,代码关键部分必须标注。代码如下:#includeiostreamusing namespace std;double getp0(double p,int N);double getl(double p0,double p ,int N); int factorial(int n);double powerr(double,int);void show();int main(){ while(1) {show(); }} double getp0(double p,int N){ //求p0 int k=0;double p0;double sum=0;while(kN){double s;s = powerr(N*p,k)/factorial(k) + powerr(N*p,N)/(factorial(N)*(1-p));sum+=s;k++;}p0 = 1/sum;return p0;}double getl(double p0,double p ,int N){ //求队长L double s;s = N*p +p0*p*powerr(N*p,N)/(factorial(N)*(1-p)*(1-p));return s;}int factorial(int n){ //求阶乘 int s = n;if(n0){while(n1){s=s*(n-1);n--;}return s;}else return 1;}double powerr(double a,int n){ //求指数 double s=1;while(n0){s*=a;n--;}return s;}void show(){double u; //服务速率 double I;//输入速率int N ; //服务窗的个数 cout输入顾客到达速率I:endl;cout输入服务速率u:endl;cout输入N:endl;cinIuN; double p = I/(N*u);double L;L = getl(g

文档评论(0)

bjuxiao + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档