蒙特卡罗方法

随机数与随机变量的生成及在数值计算中的应用

  • 用随机(统计)模拟方法解决实际问题时,首先要解决的是随机数的产生方法,或者称随机变量的抽样方法。即如何从具有已知分布的总体中抽取简单子样,这在蒙特卡罗方法中占有非常重要的地位。
  • 在连续型随机变量的分布中,最简单而且最基本的分布是[0,1]上的均匀分布,也称为单位均匀分布。从该分布抽取的简单子样,称为随机数序列,其中每一个体成为随机数
  • 由于随机数在蒙特卡罗方法中占有极其重要的位置,我们用专门的符号ξ表示。由随机数序列的定义可知ξ1,ξ2,··· 是相互独立且服从单位均匀分布的随机数序列。也就是说,独立性,均匀性是随机数必备的两个特点。
  • 计算机方法:给定一个种子,根据递推公式计算整个随机数序列。由于给定初始值和递推公式后整个序列就被唯一确定了,因此利用计算机方法生成的随机数序列称为伪随机数
  • 在计算机上利用数学方法产生随机数的第一个随机数发生器是20世纪40年代出现的“平方取中法”;以后又出现“乘积取中法”、位移法、线性同余法,组合同余法、反馈位移寄存器方法等等。目前较流行的也是多数统计学家认为较好的随机数发生器为后三种。
  • 乘同余方法是由Lehmer在1951年提出来的,它的一般形式是:对于任一初始值的X1(称为随机数种子),伪随机数序列由下面递推公式确定:
import numpy as np
#采用乘同余方法生成随机数
N=10000
seed=123456789
M=2**32
a=513
randnum=np.zeros(N)
X=np.zeros(N)
X[0]=seed
for i in np.arange(1,N)X[i]=a*X[i-1]%M
randnum=X/M
import numpy as np
#l为针长度,d为平行线距离,N为模拟次数,m为计数器
l,d,N,m=1,2,10000000,0
#生成随机数序列
x=np.random.uniform(0,1,N)
p=np.random.uniform(0,np.pi,N)
for i in np.arange(N):if x[i]<0.5*np.sin(p[i]):m=m+1
pi_=N/m



PS:来源于天津财经大学统计学院

蒙特卡罗方法下乘同余法生成随机数与蒲丰投针问题的实现相关推荐

  1. 蒙特卡罗方法(一):1.蒲丰投针求pi、2.掷骰子--求连续掷两颗骰子,点数之和大于6且第一次掷出的点数大于第二次掷出点数的概率

    文章目录 第一小题: 第二小题 第一小题: 1.计算量估计值 忽略快速的矩阵运算,花费的时间主要在number=109的循环中,每个循环中有3次基本运算,共有3*109次运算. 2.误差计算方法: 使 ...

  2. Matlab模拟蒲丰投针实验计算Π值

    文章目录 1.前言 2.实验目的 3.实验原理 (1)问题描述 (2)问题求解 4.实验过程 5.实验结果 6.实验结论 7.Matlab代码 1.前言 学习了概率论,决定自己动手编程实现蒲丰投针实验 ...

  3. 蒲丰投针计算机模拟ppt,蒙特卡罗模拟课件.ppt

    <蒙特卡罗模拟课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<蒙特卡罗模拟课件.ppt>文档请在天天文库搜索. 1.蒙特卡洛模拟数学实验之前 ...

  4. 蒲丰投针问题和蒙特·卡罗方法

    蒲丰投针问题和蒙特·卡罗方法 1.蒲丰投针问题 法国数学家蒲丰在18世纪提出的一种计算圆周率的方法.具体方法是首先在白纸上画满间距相等的平行直线,然后取出一把小针,每个小针的长度都小于等于平行直线的间 ...

  5. 蒲丰投针计算机模拟ppt,蒲丰投针实验模课件.doc

    概率论与数理统计实验 蒲丰投针与蒙特卡罗法 班级 应数12级01班 学号 2012444086 姓名 张旭东 蒲丰投针与蒙特卡罗法 张旭东 2012444086 (重庆科技学院 数学与应用数学 ,重庆 ...

  6. 蒲丰投针结果_只能用纸笔才能计算圆周率?蒲丰告诉你,投针游戏也可以

    自从很久以前人们发现了存在圆周率π这个神奇的数字之后,便费尽一切心力来计算这个值.在那个数学工具比较匮乏的时代,人们能够做的就是根据圆周率的定义来计算.历史上,东西方几乎在同时发现了割圆术,虽然细节上 ...

  7. 一文读懂蒲丰投针实验

    这个博客源于概率论复习期间,蒙特卡罗方法的思想起源,这种求π\piπ的思路非常的巧妙 附:历史上用蒲丰投针实验估计圆周率的实验记录,来源 蒲丰投针 蒲丰投针实验是法国数学家.自然科学家"乔治 ...

  8. 蒙特卡洛—模拟蒲丰投针

    蒲丰投针实验: 公式推导: 实现代码: # 其实这里根据已知的pi然后计算出概率算出自己的pi import numpy as np import matplotlib.pyplot as plt i ...

  9. 蒲丰投针问题的matlab仿真

    吃饭的时候突然想到蒲丰投针问题. 在许多地方都遇到过此针,高中概统,大学概统,随机过程的概率部分,今天读Shannon的传记,他女儿不小心把针洒地上了. 问题描述: 在平面中有一组间隔为a的平行线,随 ...

最新文章

  1. Python格式化输出的三种方式
  2. springmvc path请求映射到bean 方法的流程
  3. javascript——原型与原型链
  4. 网页中的宽高度(网页视口宽高度,网页滚动宽高度,网页宽高度........)
  5. html怎么弄艺术字体,如何为图片加上艺术字的图文方法步骤
  6. BitComet加速調整法---让你的BT飞起来!
  7. Java Web学习总结(7)——HttpServletRequest对象
  8. oracle配置控制文件快照的位置以及名称为,Oracle 快照控制文件(snapshot control file)...
  9. FastReport问题整理
  10. Ubuntu使用记录:安装deb软件方法以及apt、apt-get和dpkg的区别
  11. DocFetcher 本机文件搜索工具
  12. 微信小程序php签到功能,微信小程序签到功能
  13. 2016苹果开发者账号注册申请流程链接
  14. 【Kinect】Kinect骨骼分析
  15. 使用Xcode的Instruments检测解决iOS内存泄露(leak)
  16. 华为云Nginx配置
  17. flask之修改蓝图的template_folder参数,模板路径的查找处理:
  18. jQuery中的end()的定义与用法
  19. 实用指南:如何在Anolis OS上轻松使用 Kata 安全容器?
  20. bsf dfs 专题(一)

热门文章

  1. Inspur浪潮NF5270M5安装Windows Server 2012 R2记录
  2. 微信小程序—微信小程序端支付代码
  3. 数学图形(1.9)悬链线
  4. 我学到了一个新词汇:知识焦虑
  5. 如何使用PHP机器学习分析推文情感
  6. mysql_d58_ 主键_外键_自增_索引_一对一_多对多_limit_分组_连表操作
  7. SystemUI简介
  8. 浪潮盒子IPBS9505-多遥控版-S905L/M2芯片-安卓4.4.2-线刷固件包
  9. 一生一芯 预学习阶段 搭建verilator仿真环境 之 示例:双控开关
  10. 将任意的十进制整数转换成任意R进制数(R在2-16之间)