随机模拟方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序%simu1.m clear i=2; w=0; x(i)=exprnd(10); c(i)=x(i); b(i)=x(i); while b(i)<=480 y(i)=unifrnd(4,15); e(i)=b(i)+y(i); w=w+b(i)-c(i); i=i+1; x(i)=exprnd(10);
随机模拟方法
在用传统方法难以解决的问题中, 某些问题含有不确定的随机因素,分析起 来通常比确定性的模型困难。 有的模型难做定量分析,得不到解析的结果或者是 有解析结果,但计算代价太大以至不能使用,在这种情况下,可以考虑随机模拟 的方法即 Monte Carlo 方法。该方法是一类以概率统计理论为指导的非常重要的 数值计算方法, 也是一种用于解决数值问题的基于计算机的统计抽样方法。 目前, 随机模拟方法已广泛应用于诸如生物信息学、统计物理学、计算机科学、材料科 学、金融学和经济学等领域。 基本知识 1. 基本思想 为了求解物理、数学、工程技术以及生产管理等方面的问题,首先建立一个 概率或者随机过程, 使它的参数等于问题的解;然后通过对模型或过程的观察或 者抽样实验来计算所求参数的统计特征, 最后给出所求解的近似值。而解的精确 度可用估计值的标准误差来表示。 该方法是一种独具风格的数值计算方法,其优 点大致有如下三方面: (A)方法的程序结构简单; (B)算法的概率性和问题的 维数无关; (3)方法的适应强。 2. 随机数和伪随机数 用 Monte Carlo 方法模拟某过程的时候,需要产生各种概率分布的随机变量。 最基本、 最简单、 最重要的随机变量是在 [0,1] 上均匀分布的随机变量。 为了方便, 通常把[0,1] 上均匀分布随机变量的抽样值成为随机数, 其他分布随机变量的抽样 都可以借助于随机数来实现,因此,随机数是随机抽样的基本工具。在计算机上 用数学的方法产生随机数是目前广泛使用的方法, 它的特点是占用内存少、产生 速度快、又便于重复产生,比如说平方取中法、移位指令加法、同余法等等。然 而这种随机数是根据确定的递推公式求得的, 存在着周期现象,初值确定后所有 随机的数便被唯一确定下来, 不满足真正随机数的要求,所以通常称数学方法产 生的随机数为伪随机数。 在实际应用中,只要这些伪随机数序列通过一系列的统 计检验,还是可以把它当称“真正”的随机数来使用。 3. 产生随机数的命令 在 Matlab 软件中,可以直接产生满足各种分布的随机数,命令如下: (1)产生 m n 阶 [ a, b] 均匀分布 U (a , b ) 的随机数矩阵:unifrnd (a,b,m, n); 产生一个[ a, b] 均匀分布的随机数:unifrnd (a,b); (2)产生 m n 阶 [0,1] 均匀分布的随机数矩阵:rand (m, n); 产生一个[0,1] 均匀分布的随机数:rand; (3) 产生 m n 阶均值为 ,方差为 2 的正态分布的随机数矩阵:
normrnd ( , ,m, n); (4) 产生 m n 阶期望值为 的指数分布的随机数矩阵:exprnd( ,m,n)
x e 若连续型随机变量 X 的概率密度函数为 f ( x) 0
x 0 , x 0
其中 0 为常数,则称 X 服从参数为 的指数分布.排队服务系统中顾客到 达率为常数时的到达间隔、 故障率为常数时零件的寿命都服从指数分布。指数分 布在排队论、可靠性分析中有广泛应用。 1 注: 参数为 的指数分布的期望值为 , 故在 MATLAB 中产生参数为 的指 数分布的命令为:exprnd(1/ ) (5)产生 m n 阶参数为 的泊松分布的随机数矩阵:poissrnd( ,m,n) 注:参数为 的泊松分布的期望值为 。
应 1. 高维积分的数值模拟

2.排队论中的模拟 排队论主要研究随机服务系统的工作过程。 在排队系统中,服务对象的到达 时间和服务时间都是随机的。排队论通过对每个个别的随机服务现象的统计研 究, 找出反映这些随机现象平均特性的规律,从而为设计新的服务系统和改进现 有服务系统的工作提供依据。 对于排队服务系统, 顾客常常注意排队的人是否太 多, 等候的时间是否长, 而服务员则关心他空闲的时间是否太短. 于是人们常 用排队的长度、等待的时间及服务利用率等指标来衡量系统的性能。 单服务员的排队模型:在某商店有一个售货员,顾客陆续来到,售货员逐个地接 待顾客.当到来的顾客较多时,一部分顾客便须排队等待,被接待后的顾客便离 开商店.设: 1.顾客到来间隔时间服从参数为 0.1 的指数分布. 2.对顾客的服务时间服从[4,15]上的均匀分布. 3.排队按先到先服务规则,队长无限制. 假定一个工作日为 8 小时,时间以分钟为单位。 [1]模拟一个工作日内完成服务的个数及顾客平均等待时间 t. [2]模拟 100 个工作日,求出平均每日完成服务的个数及每日顾客的平均等待时 间。 [1] 系统的假设: (1) 顾客源是无穷的; (2) 排队的长度没有限制; ( 3) 到达系统的顾客按先后顺序依次进入服务, 即“先到先服务”
c(i)=c(i-1)+x(i); b(i)=max(c(i),e(i-1)); end i=i-2; t=w/i m=i 程序%simu2.m %100个工作日的模拟 clear cs=100; for j=1:cs j w(j)=0; i=2; x(i)=exprnd(10); c(i)=x(i); b(i)=x(i); while b(i)<=480 y(i)=unifrnd(4,15); e(i)=b(i)+y(i); w(j)=w(j)+b(i)-c(i); i=i+1; x(i)=exprnd(10); c(i)=c(i-1)+x(i); b(i)=max(c(i),e(i-1)); end i=i-2; t(j)=w(j)/i; m(j)=i; end
[2] 符号说明 w:总等待时间;ci:第 i 个顾客的到达时刻; bi:第 i 个顾客开始服务时刻; ei:第 i 个顾客服务结束时刻. xi:第 i-1 个顾客与第 i 个顾客之间到达的间隔时间 yi:对第 i 个顾客的服务时间
ci=ci-1+ xi ei=bi+yi bi=max(ci,ei-1)
பைடு நூலகம்
pt=0; pm=0; for j=1:cs pt=pt+t(j); pm=pm+m(j); end pt=pt/cs
pm=pm/cs
3.非线性规划的求解
4.零件参数的设定
相关文档
最新文档