- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
蒙特卡罗方法 , 或称计算机随机模拟方法 , 是一种基于“ 随机数 ”
的计算方法 。该方法源于美国在WWI后研制原子弹的“曼哈顿计 划 ”。 S. M. Ulam (1908- 1984)和该计划的主持人之一 、数学家 冯·诺伊曼(J.von Neumann )用驰名世界的赌城—摩纳哥的
Monte Carlo—来命名这种方法。
17. 蒙特卡罗(Monte Carlo)模拟
■
其基本思想很早以前就被人们所发现和利用 。 17世纪 , 人们就知道 用事件发生的“频率 ”来决定事件的“概率 ”。 19世纪人们用投针 试验的方法来决定π 。高速计算机的出现 , 使得用数学方法在计算机 上大量模拟这样的试验成为可能。
科技计算及社会中的问题比计算π要复杂得多 。 比如
金融衍生产品(期权、期货、掉期等) 的定价及交
易风险估算 , 问题的维数(即变量的个数) 可能高
达数百甚至数千 。对这类问题 , 难度随维数的增加
呈指数增长 , 这就是所谓的“维数的灾难 ” (Curse of Dimensionality) , 传统的数值方法难以对付(即使使 用速度最快的计算机) 。Monte Carlo方法能很好地
用来对付维数的灾难 , 因为该方法的计算复杂性不 再依赖于维数 。 以前那些本来是无法计算的问题现 在也能够计算量 。为提高方法的效率 , 科学家们提 出了许多所谓的“方差缩减 ”技巧。
另一类形式与Monte Carlo方法相似 , 但理论基础 不同的方法—“拟蒙特卡罗方法 ” (Quasi-Monte
Carlo方法)—近年来也获得迅速发展 。我国数学家 华罗庚、王元提出的“华—王 ”方法即是其中的
一例 。这种方法的基本思想是“用确定性的超均
匀分布序列(数学上称为Low Discrepancy Sequences)
代替Monte Carlo方法中的随机数序列 。对某些问 题该方法的实际速度一般可比Monte Carlo方法提 出高数百倍 , 并可计算精确度。
/gkjqy/rkx/rd2.htm
Matlab : x=rand(N) 产生元素在(0, 1)间随机分布的N*N矩阵
s= rand(‘ state ’,0) 重设该生成函数到初始状态
许多计算机系统都有随机数生成函数
F90: call random_seed
call random_number (a)
计算程序产生的随机数不是真正的随机数 , 它们是确定的 , 但看 上去是随机的 , 且能通过一些随机性的检验 , 故常称为伪随机数。
随机数
real procedure random((xi))
integer array (li)n
real array (xi)n
l0 any integer that1l0231-1
for i=1tondo
li =(231-1)除以16807 li-1的余数
xi =li/ (231-1)
endfor
对32位字长的计算机
如
注意: 上述随机数序列均具周期性 , 如上页random子程序的周期 约230 。
2. Let u0 =1. For i= 1,2,3, …, let uibe the remainder of (8t-3) ui-1 divid by 28, and xi= ui/2i . Her etcan be any large integer
1. 取初值x0 (0, 1) , let xibe the fractional part of (π+ xi-1)5
其它算法
Maple has a collection of random number generators.
如:
With(stats)
x :=uniform(0.. 1) :
seq (x(), i= 1.. 10) ;
Matlab : x=rand(10, 1)产生10个随机数。
试产生1000个在椭圆x2+4y2=4内均匀分布的随机点:
方法: 在 中均匀产生足够
多随机点 , 当位于椭圆内的点数为1000时停止。
如 (b-a)r+a x (a,b)
integer ((n+1)r) x {0, 1,2, ……n}
有时随机数产生函数通不过严格的随机性测试 。而在一些计算(如MC 积分) 中随机性非常重要 。故使用更长字节的计算机更好。
可由随机数序列
原创力文档


文档评论(0)