建模骰子问题

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

计算机随机数模拟方法

学院:理学院

专业:

姓名:

学号:

摘要:计算机模拟在建模的角度来看,有很大的作用,给出了蒙特卡洛方法,现实对象

都不可避免地具有一些不确定性,所涉及的许多变量都是随机变量,许多模型是随机模型。我们对随机模型进行模拟,需要产生服从某种分布的一系列随机数,亦即服从某种分布的一系列样本值。因此,我们寻求一种简便、经济、可靠,并能在计算机上进行的产生随机数的方法。最常用的是在(0,1)区间内均匀分布的随机数,得到的随机数可看作是(0,1)区间内均匀分布的随机变量的一组样本值,其他分布的随机数可利用均匀分布随机数来产生。均匀分布随机数的产生方法有乘同余法,混合同余法;对数随机数的统计检验产生要进行参数检验,分布均匀性检验,独立性检验。任意分布随机数又离散型随机数,连续性随机数,方法有反函数法,舍选法。正态分布随机数。方法:反函数法、舍选法模拟正态随机数、坐标变换法、利用中心极限定理。

关键字:计算机模拟蒙特卡洛方法乘同余法舍选法MATKAB 6.0

一·问题重述

随着现代社会全方位的高速发展,给人们的生活带来了很大的方便。对于现实中的问题计算机会很简便,快速,准确的给予解决。计算机更是用于很有难度的问题以及各种不确定的问题的解决。在现实生活中人们经常会用到计算机模拟求解,校检等等问题。

计算机模拟使用计算机程序在计算机上模仿各种实际的运行,并通过计算机了解系统随时间变化的行为或特性。通过计算机实验,按照一定的原则或规则,将现实生活中状态转换为另外一种状态进行描述和分析。计算机模拟是随着时间变化而变化的动态写照,通常模拟是按照时间来划分的。计算机模拟有静态模拟和动态模拟。数值分析中的积分中的蒙特卡洛方法是典型的静态方法。对于难于用用数学公式表示的系统或者没有建立和求解数学模型的有效方法。对于数学分析与计算过程过于复杂的计算机模拟可能会提供简单有效的方法。在现实环境中难于进行试验或者观察的,计算机模拟式唯一可行的方法。对于过多的方案进行最优化选择。在现实生活中,骰子共有六面,人们随便一掷,可能出现六中情况,那么六个面中的数字出现的概率又会是什么呢?这也就需要计算机模拟。

二·问题分析

在我们的实际生活中,随机数是怎么产生的?我就以掷骰子为例来说下,抛硬币,掷骰子时他并没有什么逻辑,而是随机的产生的一些数,掷骰子并不是由什么大脑控制的,也不是胡思乱想就出现的随机数字。对于掷骰子每个数字朝上面的概率都是一样的,用计算机来模拟,掷的次数越多,概率就越接近理论值。像这种在我们实际操作中计算复杂,又不精确的情况下只能用计算机来进行数学模拟。

三·模型假设

假设掷骰子是在理想的条件下进行的,减少一些相对误差,提高试验模拟的精确值。

掷骰子的次数是5000次。对于硬币的抛法也是在那样的环境下进行的。

四·模型建立与求解

由假设知,掷骰子是服从正态随机分布的,掷5000次产生服从U(0,1)的随机数R2。

将区间(0,1)划分为六等份。若,

6120 R ≤则对应骰子点数为1;若

6

226

1

R ≤,则对

应骰子点数为2;若6

326

2

R ≤,则对应骰子点数为3;若

6

4263

R ≤,则对应骰子点数

为4;若

6

5264

R ≤,则对应骰子点数为5;若126

5 R ≤,则对应骰子点数为6;下面

用MATLAB 语言来编写程序,需要建立一个M 文件。

骰子是均匀的立方体,所以在一个骰子的六个面中,每个买你的点数出现的机会是相

等的,其概率为6

1,一个骰子掷一次可以看作是一次随机试验,抛投多次可以看作是多次

独立随机试验。

定义A={}抛头一次出现随机点数,则p = p(A)=

6

1,设X 表示k=5000独立试验中事

件A 发生的次数 ,则X 为以随机变量,且X~B(k,p),即

P(X=i)=⎪⎭

⎝⎛P k P i

(1-P )i k - ,i=0,1,2,····,k 。

clc;

clear; k1=0; k2=0; k3=0;

R1=rand(1,20); for i=1:20

if R1(i)<=0.5

R2=rand(1,6);

if (R2(1)<1/6&R2(1)>=0)|(R2(1)<2/6&R2(1)>=1/6)|(R2(1)<3/6&R2(1)>=2/6) %判断骰子数是否为1,2,3 k1=k1+1

elseif (R2(1)<4/6&R2(1)>=3/6)|(R2(1)<5/6&R2(1)>=4/6) %判断骰子数是否为4,5 k2=k2+1

elseif R2(1)<=1&R2(1)>=5/6 %骰子数是6 k3=k3+1

end else k1=k1+1

end

if i==20

E=(k2+k3)/20

E1=0*k1/20+1*k2/20+2*k3/20

end

end

用键盘输入要投掷的次数5000,然后就可以得到每个面出现的概率。硬币的抛投也是根据一定的次数来统计出来的数值,进行概率统计计算。

用下表来进行掷骰子5000次实验数据的统计:

骰子点数123456

出现次数829833836825839838

概率0.16580.16660.16720.17040.16780.1676

掷骰子10000次的实验数据统计如下表:

骰子点数123456

出现次数166816631659167016661674

概率0.16680.16630.16590.1670.16660.1674

由多次试验可以得到一个结果,即掷骰子的次数越多,概率越精确,基本每个面出现的概率都接近相等。

下表统计抛投硬币5000次的实验数据统计结果:

再将硬币抛投10000次统计实验数据,并计算概率如下表:

硬币面数正面反面

出现次数49915009

概率0.49910.5009

再将硬币抛投15000次的实验数据统计结果:

硬币面数正面反面

出现次数74987502

概率0.499870.50013

通过数据的统计可以发现抛投的次数越多,概率值越精确。

五·模型评价

随机数问题产生于“概率论”。这个理论最初是研究赌博现象的,因此也曾经被人攻击为伪科学。后来物理学用它解释微观分子运动对宏观规律的影响——建立了统计力学,获得极大的成功。对于掷骰子,抛投硬币这模型来说,我觉得在现实生活中不会得到很精确地结果,通过计算机模拟非常的方便。本模型的优点就是利用计算机模拟随机数能更有效更简便的实现精确的结果。缺点呢,我认为还是存在一点误差。因为没有绝对的理想的条件可以进行试验,但是计算机模拟已经创造了的条件极大地减少了误差!

六·模型拓展

利用掷骰子的方法模拟了不同类型的测量误差,且通过实例,对均匀分布、三角分布、正态分布的随机误差进行模拟,对其数字特征与对应不确定度进行印证,并提出了用掷骰子的方法产生给定数学期望与方差的正态随机数的模拟法。

现实生活中的问题,有很大一部分是带有随机因素的复杂系统.这些问题一般都没有解析解,即便有,也是在做了许多假设下建模,与面临的实际问题相差甚远,往往需要求助于数值方法求解.于是诞生了随机模拟方法,即在欲求一个问题的数值解时,首先建立一个概率模型

相关文档
最新文档