数学建模之排队论模型及代码

数学建模之排队论模型及代码数学建模之排队论模型及代码本人新手第一次搞了个博客 以前都是看别人写的博客 汲取别人的知识 今天自己也写一下自己的博客 分享一下自己的收获 希望对你有用 言归正传 排队论是数学建模中很常见的数学模型 但因其涉及到专业知识 所以对于非理工专业的人来说 还是很有困难的 下面讲解一下 模型一般步骤 第一步 数据的准备即确定客户的来源符合什么分布 确定服务时间符合什么分布 比如大部分游客到达时间符

数学建模之排队论模型及代码
本人新手第一次搞了个博客,以前都是看别人写的博客,汲取别人的知识,今天自己也写一下自己的博客,分享一下自己的收获,希望对你有用。
言归正传,排队论是数学建模中很常见的数学模型,但因其涉及到专业知识,所以对于非理工专业的人来说,还是很有困难的。下面讲解一下,模型一般步骤:
第一步:数据的准备
即确定客户的来源符合什么分布,确定服务时间符合什么分布。比如大部分游客到达时间符合泊松分布,服务时间又符合指数分布。但请注意,符合什么分布,要结合你的数据进行分析。所以这里要涉及到分布验证的问题,一般而言,大都采用假设性检验。(是什么请关注博主,后期讲解。本文只讲模型,和代码)验证成功后,才能够说明你的数据符合什么分布,参数为多少(要先用SPSS先进行验证,然后进行假设检验,否则万一假设错了,就尴尬了)。
第二步:机构运行机制的模拟
你的服务机构的运行机制是什么,决定了你的客户将按怎样的方式进行出入。这样才能确定客户的到达时间,等待时间,离开时间。常用的有单服务台,多服务台,单人,多人一班次的模型。
第三步:计算机模拟
在确定了所有的因素之后,就可以通过计算机模拟进行仿真了。按照模型的思路一步一步来。(编程能力要有一定功底)
这里,小编给出了多人一班次的代码,注释很详细,你们可以按照它进行仿写,多练习练习。


















clear clc to_time=600; L=10; a=30; lamda=5; mu =3; ser_mean = 1/mu; arr_num = round(to_time*lamda*2); qu(2,:)=exprnd(ser_mean,1,arr_num);%服务时间 qu(1,:)=poissrnd(1/lamda,1,arr_num); qu(1,:)=cumsum(qu(1,:));%到达时间 %逐步实验 %第一轮的模拟 s(1)=qu(1,a);%一轮开始的时间 e(1)=max(qu(2,1:a));%一轮逗留的时间段 for k=1:a qu(3,k)=s(1)+L+qu(2,k);%离去时间 qu(4,k)=s(1);%预测时间 qu(5,k)=s(1)-qu(1,k);%等待时间 end %第i轮模拟 for i=2:10000 %结束条件,采用结束时间进行判断 if(e(i-1)+s(i-1)+L>=to_time) break; end if(s(i-1)+L+e(i-1) 
  
    a)%超出规定人数时 s(i)=s(i-1)+e(i-1)+L;%开始时间 e(i)=max(qu(2,a*(i-1):a*i));%逗留时间 for k=a*(i-1)+1:a*i qu(3,k)=s(i)+qu(2,k)+L;%离去时间 qu(4,k)=s(i);%预约时间 qu(5,k)=s(i)-qu(1,k);%等待时间 end end end end %可视化处理 %满足条件对平均等待时间的影响 %figure; %x=1:c; %plot(x,dely(x),'-o'); %legend('x的性能曲线'); %预约时间,和到达时间 figure; x=1:a*(i-1); plot(x,qu(1,x),'-r',x,qu(4,x),'-b'); legend('到达时间','预约时间'); figure; plot(x,qu(4,x)-qu(1,x),'-o'); legend('预测需要多少时间后开始'); figure; plot(x,qu(3,x),'-o'); legend('离去时间'); 
  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223341.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午2:18
下一篇 2026年3月17日 下午2:18


相关推荐

  • OpenClaw的安装(纯Windows11,纯国内+本地模型)

    OpenClaw的安装(纯Windows11,纯国内+本地模型)

    2026年3月13日
    1
  • hibernate Java 时间和日期类型的 Hibernate 映射

    hibernate Java 时间和日期类型的 Hibernate 映射

    2021年11月29日
    53
  • GC overhead limit exceeded 问题分析与解决

    GC overhead limit exceeded 问题分析与解决今天出现了一个很奇怪的异常:java.lang.OutOfMemoryError:GCoverheadlimitexceeded,超出了GC开销限制。科普了一下,这个是JDK6新添的错误类型。是发生在GC占用大量时间为释放很小空间的时候发生的,是一种保护机制。一般是因为堆太小,导致异常的原因:没有足够的内存。Sun官方对此的定义:超过98%的时间用来做GC并且回收了不到2%…

    2022年5月21日
    62
  • Python数据结构与算法(1.5)——Python基础之函数与异常

    Python数据结构与算法(1.5)——Python基础之函数与异常Python 是简洁 易学 面向对象的编程语言 我们已经介绍了 Python 中的内置原生数据类型 并且也了解了程序如何利用输入 输出语句与用户进行交互 以及 Python 中的控制语句 本节的主要目标是介绍 Python 中的函数和异常等有用的编程方法 接下来的算法学习奠定基础

    2026年3月16日
    2
  • linux .vimrc设置 tab设置

    linux .vimrc设置 tab设置一.仅设置当前用户的Tab键宽度输入命令:vim~/.vimrc然后:settabstop=4 //我这里将Tab键的宽度设置为4保存:ctrl+z+z(或:wq!)OK!二.设置所有用户的Tab键宽度输入命令:vim/etc/vimrc在vimrc文件的最后添加:settabstop=4保存:ctrl+z+z(或:wq!)OK!这样不管是哪个用…

    2022年5月3日
    64
  • java 检查bytebuf长度_ByteBuf分析

    java 检查bytebuf长度_ByteBuf分析1 概念 JavaNIOAPI 自带的缓冲区类功能相当有限 没有经过优化 使用 JDK 的 ByteBuffer 操作更复杂 故而 Netty 的作者 TrustinLee 为了实现高效率的网络传输 重新造轮子 Netty 中的 ByteBuf 实际上就相当于 JDK 中的 ByteBuffer 其作用是在 Netty 中通过 Channel 传输数据 2 优势可以自定义缓冲类型 通过内置的复合缓冲类型 实现透明的零拷贝 ze

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号