没有合适的资源?快使用搜索试试~ 我知道了~
蒙特卡洛算法详讲.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 30 浏览量
2022-06-17
23:48:08
上传
评论
收藏 773KB PDF 举报
温馨提示
试读
18页
。。。
资源推荐
资源详情
资源评论
Monte Carlo 法
§8.1 概述
Monte Carlo 法不同于前面几章所介绍的确定性数值方法,它是用来解决数
学和物理问题的非确定性的(概率统计的或随机的)数值方法。Monte Carlo 方
法(MCM),也称为
统计试验方法
,是理论物理学两大主要学科的合并:即随机
过程的概率统计理论(用于处理布朗运动或随机游动实验)和位势理论,主要是
研究均匀介质的稳定状态
[1]
。它是用一系列随机数来近似解决问题的一种方法,
是通过寻找一个概率统计的相似体并用实验取样过程来获得该相似体的近似解
的处理数学问题的一种手段。运用该近似方法所获得的问题的解 in spirit 更接近
于物理实验结果,而不是经典数值计算结果。
普遍认为我们当前所应用的 MC 技术,其发展约可追溯至 1944 年,尽管在
早些时候仍有许多未解决的实例。MCM 的发展归功于核武器早期工作期间 Los
Alamos(美国国家实验室中子散射研究中心)的一批科学家。Los Alamos 小组
的基础工作刺激了一次巨大的学科文化的迸发,并鼓励了 MCM 在各种问题中的
应用
[2]-[4]
。“Monte Carlo”的名称取自于 Monaco(摩纳哥)内以赌博娱乐而闻名
的一座城市。
Monte Carlo 方法的应用有两种途径:仿真和取样。仿真是指提供实际随机
现象的数学上的模仿的方法。一个典型的例子就是对中子进入反应堆屏障的运动
进行仿真,用随机游动来模仿中子的锯齿形路径。取样是指通过研究少量的随机
的子集来演绎大量元素的特性的方法。例如,
f (x)
在
a x b
上的平均值可以
通过间歇性随机选取的有限个数的点的平均值来进行估计。这就是数值积分的
Monte Carlo 方法。MCM 已被成功地用于求解微分方程和积分方程,求解本征
值,矩阵转置,以及尤其用于计算多重积分。
任何本质上属随机组员的过程或系统的仿真都需要一种产生或获得随机数
的方法。这种仿真的例子在中子随机碰撞,数值统计,队列模型,战略游戏,以
及其它竞赛活动中都会出现。Monte Carlo 计算方法需要有可得的、服从特定概
率分布的、随机选取的数值序列。
§8.2 随机数和随机变量的产生
[5]-[10]全面的论述了产生随机数的各类方法。其中较为普遍应用的产生随
机数的方法是选取一个函数
g(x)
,使其将整数变换为随机数。以某种方法选取
x
0
,并按照
x
k 1
g(x
k
)
产生下一个随机数。最一般的方程
g(x)
具有如下形式:
(8.1)
其中
x
0
初始值或种子(
x
0
0
)
g(x) (ax c) mod m
a
乘法器(
a 0
)
c
增值(
c 0
)
m
模数
对于
t
数位的二进制整数,其模数通常为
2
t
。例如,对于 31 位的计算机
m
即可
取
2
311
。这里
x
0
, a
和
c
都是整数,且具有相同的取值范围
m a, m c, m x
0
。
所需的随机数序
x
n
便可由下式得
x
n1
(ax
n
c) mod m
(8.2)
该序列称为
线性同余序列
。例如,若
x
0
a c 7
且
m 10
,则该序列为
7 , 6 , 9 , 0 , 7 , 6 , 9 , 0……
(8.3)
可以证明,同余序列总会进入一个循环套;也就是说,最终总会出现一个无休止
重复的数字的循环。(8.3)式中序列周期长度为 4。当然,一个有用的序列必是
具有相对较长周期的序列。许多作者都用术语
乘同余法
和
混合同余法
分别指代
c 0
和
c 0
时的线性同余法。选取
x
0
, a, c
和
m
的法则可参见[6,10]。
这里我们只关心在区间
(0,1)
内服从均匀分布的随机数的产生。用字符
U
来
表示这些数字,则由式(8.2)可得
U
(8.4)
这样
U
仅在数组
0,1/ m,2 / m,......, (m 1) / m
中取值。(对于区间(0,1)内的随机
数,一种快速检测其随机性的方法是看其均值是否为 0.5。其它检测方法可参见
[3,6]。)产生区间
(a,b)
内均匀分布的随机数
X
,可用下式
X a (b a)U
(8.5)
用计算机编码产生的随机数(利用式(8.2)和(8.4))并不是完全随机的;
事实上,给定序列种子,序列的所有数字
U
都是完全可预测的。一些作者为强调
这一点,将这种计算机产生的序列称为
伪随机数
。但如果适当选取
a, c
和
m
,序
列
U
的随机性便足以通过一系列的统计检测。它们相对于真随机数具有可快速产
生、需要时可再生的优点,尤其对于程序调试。
Monte Carlo 程序中通常需要产生服从给定概率分布
F(x)
的随机变量
X
。
该步可用[6],[13]-[15]中的几种方法加以实现,其中包括
直接法
和
舍去法
。
直接法(也称反演法或变换法),需要转换与随机变量
X
相关的累积概率函
数
F(x) prob( X x)
(即:
F(x)
为
X x
的概率)。
0 F(x) 1
显然表明,通
x
n1
m
过产生(0,1)内均匀分布随机数
U
,经转换我们可得服从
F(x)
分布的随机样本
X
。
为了得到这样的具有概率分布
F(x)
的随机数
X
,不妨设
U F(x)
,即可得
X F
1
(U )
(8.6)
其中
X
具有分布函数
F(x)
。例如,若
X
是均值为
呈指数分布的随机变量,且
F (x) 1 e
x /
,0 x
(8.7)
在
U F(x)
中解出
X
可得
X
l n1( U )
(8.8)
由于
(1 U )
本身就是区间(0,1)内的随机数,故可简写为
X
lnU
(8.9)
有时(8.6)式所需的反函数 F
1
(x) 不存在或很难获得。这种情况可用舍去法来
处理。令
f (x)
dF(x)
为随机变量
X
的概率密度函数。令
a x b
时的
f (x) 0
,
dx
且
f (x)
上界为
M
(即:
f (x) M
),如图 8.1 所示。我们产生区间(0,1)内的两个
随机数 (U
1
,U
2
) ,则
X
1
a (b a)U
1
f
1
U
2
M
(8.10)
分别为在(a,b)和(0,M)内均匀分布的随机数。若
f
1
f ( X
1
)
(8.11)
则
X
1
为
X
的可选值,否则被舍去,然后再试新的一组
(U
1
,U
2
)
。如此运用舍去法,
所 有 位 于
f (x)
以 上 的 点 都 被 舍 去 , 而 位 于
f (x)
上 或 以 下 的 点 都 由
X
1
a (b a)U
1
来产生
X
1
。
图 8.1 舍去法产生概率密度函数为
f (x)
的随机变量
例 8.1 设计一子程序使之产生 0,1 之间呈均匀分布的随机数
U
。用该程序产生
随机变
,其概率分布由下式给定
1
T (
) (1 cos
),0
2
解:生成
U
的子程序如图 8.2 所示。该子程序中,m 2
21
1 2147483647, c 0,
且
a 7
5
16807
。应用种子数(如 1234),主程序中每调用一次子程序,就会生
成一个随机数
U
。种子数可取 1 到
m
间的任一整数。
0001
C**********************************************************
0002 C PROGRAM FOR GENERATING RANDOM VARIABLES
WITH
0003 C A GIVEN PROBABILITY DISTRIBUTION
0004
C**********************************************************
0005
0006 DOUBLE PRECISION ISEED
0007
0008 ISEED=1234.D0
0009 DO 10 I=1,100
0010 CALL RANSOM(ISEED,R)
0011 THETA=ACOSD(1.0-2.0*R)
0012 WRITE(6,*)I,THETA
0013 10 CONTINUE
0014 STOP
0015 END
0001
C**********************************************************
0002 C SUBROUTINE FOR GENERATING RANDOM NUMBERS
IN
剩余17页未读,继续阅读
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于python实现的基于PyQt5和爬虫的小说阅读系统.zip
- 机械设计整经机上纱自动化sw20非常好的设计图纸100%好用.zip
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功