第十讲 计算机模拟 模拟的概念 模拟就是利用物理的、数学的模型来类比、模仿现实系统及其演变过程,以寻求过程规律的一种方法。 模拟的基本思想是建立一个试验模型,这个模型包含所研究系统的主要特点.通过对这个实验模型的运行,获得所要研究系统的必要信息。 用R作随机模拟计算 作为统计工作者,我们除了可以用R迅速实 现新的统计方法,还可以用R进行随机模拟。 验证我们的算法 比较不同 算法的优缺点 发现改进统计方法的方向, 是进行统计研究的最有力的计算工具之一。 模拟的方法 1、物理模拟: 对实际系统及其过程用功能相似的实物系统去模仿。例如,军事演习、船艇实验、沙盘作业等。 物理模拟通常花费较大、周期较长,且在物理模型上改变系统结构和系数都较困难。而且,许多系统无法进行物理模拟,如社会经济系统、生态系统等。 在实际问题中,面对一些带随机因素的复杂系统,用分析方法建模常常需要作许多简化假设,与面临的实际问题可能相差甚远,以致解答根本无法应用。这时,计算机模拟几乎成为唯一的选择。 在一定的假设条件下,运用数学运算模拟系统的运行,称为数学模拟。现代的数学模拟都是在计算机上进行的,称为计算机模拟。 2、数学模拟 计算机模拟可以反复进行,改变系统的结构和系数都比较容易。 随机模拟方法是一种应用随机数来进行计算机模拟的方法.此方法对研究的系统进行随机抽样观察,通过对样本值的观察统计,求得所研究系统的某些参数. 随机模拟方法也称为蒙特卡洛方法( ),蒙特卡洛是摩纳哥的一个著名赌城,二战期间,冯诺依曼和乌拉姆从事与研制原子弹有关的秘密工作,以赌城 最为秘密代号称呼,他们的具体工作时对裂变物质的中子随机扩散进行模拟。 投针实验(估计π值) 模型:假设平面上有无数条距离为L的等距平行线,现向该平面随机地投掷长度a的细针,则可以计算针与任一平行线相交的概率。 此处随机投针可以这样理解:针的中心与最近的平行线间的距离x均匀地分布在区间[02]上,针与平行线的夹角α均匀地分布在区间[0,π]上。于是针与线相交的充要条件是x 2 * α,从而针线相交的概率为 2πL,π=2 (1) 产生随机数。产生n个相互独立的随机变量抽样序列 (2) 模拟实验,检验不等式x 2 * α 设上面的实验有k次成功的,则 - (n, 1, 0.8) { = (n, 0, ); x = (n, 0, 2); k -0; (i 1) { (x[i] = 2*([i])); k = 1; } 2*a*(k*L); } 随机模拟计算的思路: [1] 针对实际问题建立一个简单且便于实现的概率统计模型,使所求的解恰好是所建模型的概率分布或某个数字特征,比如,是某个事件的概率或该模型的期望值; [2] 对模型中的随机变量建立抽样方法,在计算机上进行模拟试验,抽取足够的随机数,并对有关的事件进行统计; [3] 对模拟试验结果加以分析,给出所求解的估计及其精度(方差)的估计; [4] 必要时,还应改进模型以降低估计方差和减少试验费用,提高模拟计算的效率。 用蒙特卡洛方法进行计算机模拟的步骤: [1] 设计一个逻辑框图,即模拟模型.这个框图要正确反映系统各部分运行时的逻辑关系。 [2] 模拟随机现象.可通过具有各种概率分布的模拟随机数来模拟随机现象. 随机模拟最基本的需要是产生伪随机数,R中已提供了大多数常用分布的伪随机数函数,可以返回一个伪随机数序列向量。 这些伪随机数函数以字母r开头,比如()是正态伪随机数函数,()是均匀分布伪随机数函数,其第一个自变量是伪随机数序列长度n。关于这些函数可以参见系统帮助文件。 下例产生1000个标准正态伪随机数: y - (1000) 这些伪随机数函数也可以指定与分布有关的参数,比如下例产生1000个均值为150、标准差为100的正态伪随机数: y - (1000, 150, 100) 产生伪随机数序列是不重复的,实际上,R在产生伪随机数时从一个种子出发,不断迭代更新种子,所以产生若干随机数后内部的随机数种子就已经改变了。有时我们需要模拟结果是可重复的,这只要我们保存当前的随机数种子,然后在每次产生伪随机数序列之前把随机数种子置为保存值即可: - x1(1000); x2(1000); 1和x2不同 - ; y - (1000); # y和x1是相同的
原创力文档

文档评论(0)