蒙特卡罗方法完整教程(WORD文档内附有源码)

蒙特卡罗方法完整教程(WORD文档内附有源码)
蒙特卡罗方法完整教程(WORD文档内附有源码)

Monte Carlo 方法法

§1 概述

Monte Carlo 法不同于确定性数值方法,它是用来解决数学和物理问题的非确定性的(概率统计的或随机的)数值方法。Monte Carlo 方法(MCM ),也称为统计试验方法,是理论物理学两大主要学科的合并:即随机过程的概率统计理论(用于处理布朗运动或随机游动实验)和位势理论,主要是研究均匀介质的稳定状态。它是用一系列随机数来近似解决问题的一种方法,是通过寻找一个概率统计的相似体并用实验取样过程来获得该相似体的近似解的处理数学问题的一种手段。运用该近似方法所获得的问题的解in spirit 更接近于物理实验结果,而不是经典数值计算结果。

普遍认为我们当前所应用的MC 技术,其发展约可追溯至1944年,尽管在早些时候仍有许多未解决的实例。MCM 的发展归功于核武器早期工作期间Los Alamos (美国国家实验室中子散射研究中心)的一批科学家。Los Alamos 小组的基础工作刺激了一次巨大的学科文化的迸发,并鼓励了MCM 在各种问题中的应用[2]-[4]。“Monte Carlo ”的名称取自于Monaco (摩纳哥)内以赌博娱乐而闻名的一座城市。

Monte Carlo 方法的应用有两种途径:仿真和取样。仿真是指提供实际随机现象的数学上的模仿的方法。一个典型的例子就是对中子进入反应堆屏障的运动进行仿真,用随机游动来模仿中子的锯齿形路径。取样是指通过研究少量的随机的子集来演绎大量元素的特性的方法。例如,)(x f 在b x a <<上的平均值可以通过间歇性随机选取的有限个数的点的平均值来进行估计。这就是数值积分的Monte Carlo 方法。MCM 已被成功地用于求解微分方程和积分方程,求解本征值,矩阵转置,以及尤其用于计算多重积分。

任何本质上属随机组员的过程或系统的仿真都需要一种产生或获得随机数的方法。这种仿真的例子在中子随机碰撞,数值统计,队列模型,战略游戏,以及其它竞赛活动中都会出现。Monte Carlo 计算方法需要有可得的、服从特定概率分布的、随机选取的数值序列。

§2 随机数和随机变量的产生

[5]-[10]全面的论述了产生随机数的各类方法。其中较为普遍应用的产生随机数的方法是选取一个函数)(x g ,使其将整数变换为随机数。以某种方法选取0x ,并按照)(1k k x g x =+产生下一个随机数。最一般的方程)(x g 具有如下形式:

m c ax x g mod )()(+= (1)

其中

=0x 初始值或种子(00>x )

=a 乘法器(0≥a )

=c 增值(0≥c )

=m 模数

对于t 数位的二进制整数,其模数通常为t

2。例如,对于31位的计算机m 即可取1

312

-。这

里a x ,0和c 都是整数,且具有相同的取值范围0,,x m c m a m >>>。所需的随机数序{}n x 便可由下式得

m c ax x n n m od )(1+=+ (2) 该序列称为线性同余序列。例如,若70===c a x 且10=m ,则该序列为

7,6,9,0,7,6,9,0…… (3) 可以证明,同余序列总会进入一个循环套;也就是说,最终总会出现一个无休止重复的数字的循环。(3)式中序列周期长度为4。当然,一个有用的序列必是具有相对较长周期的序列。许多作者都用术语乘同余法和混合同余法分别指代0=c 和0≠c 时的线性同余法。选取

c a x ,,0和m 的法则可参见[6,10]。

这里我们只关心在区间)1,0(内服从均匀分布的随机数的产生。用字符U 来表示这些数字,则由式(2)可得

m

x U n 1

-=

(4) 这样U 仅在数组{}m m m m /)1(,......,/2,/1,0-中取值。(对于区间(0,1)内的随机数,一种快速检测其随机性的方法是看其均值是否为0.5。其它检测方法可参见[3,6]。)产生区间

),(b a 内均匀分布的随机数X ,可用下式

U a b a X )(-+= (5) 用计算机编码产生的随机数(利用式(2)和(4))并不是完全随机的;事实上,给定序列种子,序列的所有数字U 都是完全可预测的。一些作者为强调这一点,将这种计算机产生的序列称为伪随机数。但如果适当选取c a ,和m ,序列U 的随机性便足以通过一系列的统计检测。它们相对于真随机数具有可快速产生、需要时可再生的优点,尤其对于程序调试。

Monte Carlo 程序中通常需要产生服从给定概率分布)(x F 的随机变量X 。该步可用[6],[13]-[15]中的几种方法加以实现,其中包括直接法和舍去法。

直接法(也称反演法或变换法),需要转换与随机变量X 相关的累积概率函数

)()(x X prob x F ≤=(即:)(x F 为x X ≤的概率)。1)(0≤≤x F 显然表明,通过产生(0,1)

内均匀分布随机数U ,经转换我们可得服从)(x F 分布的随机样本X 。为了得到这样的具有概率分布)(x F 的随机数X ,不妨设)(x F U =,即可得

)(1

U F

X -= (6)

其中X 具有分布函数)(x F 。例如,若X 是均值为μ呈指数分布的随机变量,且 ∞<<-=-x e

x F x 0,1)(/μ

(7)

在)(x F U =中解出X 可得

)1ln(U X --=μ (8) 由于)1(U -本身就是区间(0,1)内的随机数,故可简写为

U X ln μ-= (9)

有时(6)式所需的反函数)(1

x F

-不存在或很难获得。这种情况可用舍去法来处理。令

dx

x dF x f )

()(=

为随机变量X 的概率密度函数。令b x a >>时的0)(=x f ,且)(x f 上界为M (即:M x f ≤)(),如图1所示。我们产生区间(0,1)内的两个随机数),(21U U ,则 11)(U a b a X -+= M U f 21= (10) 分别为在(a,b)和(0,M)内均匀分布的随机数。若

)(11X f f ≤ (11) 则1X 为X 的可选值,否则被舍去,然后再试新的一组),(21U U 。如此运用舍去法,所有位于)(x f 以上的点都被舍去,而位于)(x f 上或以下的点都由11)(U a b a X -+=来产生1X 。

图1 舍去法产生概率密度函数为

)(x f 的随机变量

例1 设计一子程序使之产生0,1之间呈均匀分布的随机数U 。用该程序产生随机变Θ,其概率分布由下式给定

πθθθ<<-=

0),cos 1(2

1

)(T 解:生成U 的子程序如图2所示。该子程序中,,0,21474836471221

==-=c m 且

1680775==a 。应用种子数(如1234),主程序中每调用一次子程序,就会生成一个随机

数U 。种子数可取1到m 间的任一整数。

0001 C********************************************************** 0002 C PROGRAM FOR GENERA TING RANDOM V ARIABLES 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 0003 C THE INTERV AL (0,1)

0004 C********************************************************** 0005

0006 SUBROUTINE RANDOM (ISEED,R) 0007 DOUBLE PRECISION ISDDE,DEL,A 0008 DATA DEL,A/2147483647.D0,16807.D0/ 0009

0010 ISDDE=DMOD(A*ISDDE,DEL) 0011 R=ISDDE/DEL 0012 RETURN 0013 END

图2 例1的随机数生成器

图2的子程序只是为了说明本章所介绍的一些概念。大多数计算机都有生成随机数的子程序。

为了生成随机变量Θ,令 )cos 1(2

1

)(Θ-=Θ=T U 则有 )21(cos )(11

U U T

-==Θ--

据此,一系列具有给定分布的随机变量Θ便可由图2所示主程序中生成。

§3 误差计算

Monte Carlo 程序给出的解按大量的检测统计都达到了平均值。因此,该解中包含了平均值附近的浮动量,而且不可能达到100%的置信度。要计算Monte Carlo 算法的统计偏差,就必须采用与统计变量相关的各种统计方法。我们只简要介绍期望值和方差的概念,并利用中心极限定理来获得误差估计[13,16]。

设X 是随机变量。则X 的期望值或均值x 定义为 ?

-=

dx x xf x )( (12)

这里)(x f 是X 的概率密度分布函数。如果从)(x f 中取些独立的随机样本N x x x ,...,,21,那么的x 估计值就表现为N 个样本值的均值。

∑==N

n n

x

N

x

1

1? (13)

x 是X 的真正的平均值,而x

?只是x 的有着准确期望值的无偏估计。虽然x ?的期望值等于x ,但x x

≠?。因此,我们还需要x ?的值在x 附近的分布测度。 为了估计X 以及x ?在x 附近的的值的分布,我们需要引入X 的方差,其定义为X 与x

差的平方的期望值,即 ?∞

--=-==dx x f x x x x x Var )()()()(22

2

σ

(14)

由2

2

2

2)(x x x x x x +-=-,故有 ???

-∞∞

-∞

-+-=

dx x f x dx x xf x dx x f x x )()(2)()(222

σ (15)

或者

222)(x x x -=σ (16)

方差的平方根称为标准差,即

2/122)()(x x x -=σ (17)

标准差给出了x 在均值x 附近的分布测度,并由此给出了误差幅度的阶数。x

?的标准差与x 的标准差的关系表示为

N

x x

)

()?(σσ= (18)

该式表明,如果用根据(13)式由N 个n x 值构成的x

?来估计x ,那么结果中x ?在x 附近的扩散范围便与)(x σ成比例,且随着样本数N 的增加而降低。

为了估计x

?的扩散范围,我们定义样本方差为 ∑=--=N

n n x x N S 1

22

)?(11 (19) 由此式还可看出2

S 的期望值等于)(2x σ。因此样本方差是)(2

x σ的无偏估计。将(19)式

中平方项乘出来,便可得样本标准差为

2

/11222

/1?11?

?

????-?

?

?

??-=∑=N n n x x N N N S (20)

当N 较大时,系数)1/(-N N 可设为1。

作为获得中心极限定理的一种方法,概率论的一个基本解可考虑二次项函数 M N M q p M N M N M B --=

)!

(!!

)( (21)

该式表明N 次独立随机试验中有M 次成功的概率。(21)中,p 是一次试验中成功的概率,且p q -=1。当M 和M N -都较大时,便可用Stirling 公式 n e n n n

n

π2~!- (22)

因此(21)式可近似为正态分布[17]

??

?

???--=≈)?(2)?(exp 2)?(1

)?()(2

2x x x x x f M B σπσ (23) 其中p N x =且Npq x

=)?(σ。因此当∞→N 时,中心极限定理表明,描述由N 点Monte

Carlo 算法获得的x ?的分布的概率密度函数是(23)式所示的正态分布函数)(x f 。也就是说,

大量随机变量的集合趋于呈正态分布。将(18)式代入(23)式可得

??

????--=)(2)?(exp )(1

2)?(2

2x x x N x N x

f σσπ (24) 正态(高斯)分布在工程,物理以及统计学的各类问题中都非常有用。高斯模型的显著特性

源于中心极限定理。因此,高斯模型经常用于其影响程度取决于由许多不规则的、浮动的元素构成的集合的情况。例2中我们给出了根据中心极限定理产生高斯随机变量的算法。

由于样本数N 是有限的,所以Monte Carlo 算法不可能达到绝对的确定性。故而在x 附

近估计出某一范围或区间以确保我们估计的x

?落入该范围内。假设要得到x ?位于δ-x 和δ+x 之间的概率。由定义

{}?+-=+<<-δ

δ

δδx x x d x

f x x

x ob ?)?(?Pr (25) 令()()

x N x x

σλ/2?-=

可得

{}(

)

()

?

-=+<<-σδλλπδδ/2/0

2

2

?Pr N d e x x

x ob

()???

?

?

?=x N erf σδ2/ (26a ) 或

ασσ

αα-=?

??

?

??+≤≤-1?Pr 2/2

/N z x x

N

z x ob (26b )

其中)(x erf 是误差函数,且2/αz 是标准正态差的上2/α分位点。对(26)式可做如下解释:

如果用来呈现独立随机观测值并构建相关随机区间δ±x 的Monte Carlo 程序以较大的N 值反复运行,则这些随机区间的()???

?

??x N erf σδ2分位点将近似等于x ?。随机区间δ±x 称为

置信区间,()???

? ??x N erf σδ2称为置信度。大多数的Monte Carlo 算法都使用误差

()N x /σδ=,这表明x

?是在实际均值x 的标准差范围内的。由(26)式可得,样本均值x

?位于区间()N x x /?σ±内的概率是0.6826或63%。若要求更高的置信度,可用两个或三个标准差的值。如

???

??=????

??+<<-,

997.0,954.0,6826.0)(?)(Pr N x M x x N x M x ob σσ 321===M M M (27) 其中M 是标准差的个数。

在(26)和(27)式中均假设总体标准差σ为已知。由于这种情况很少出现,故必须用由(20)式算得的样本标准差S 来估计σ的值,从而使学生氏t -分布取代正态分布。我们知道当N 很大,比如30>N 时,t -分布近似趋于正态分布。(26)式等价于 ααα-=?

??

?

??+≤≤-

--1?Pr 1;2/1

;2/N St x x

N

St x ob N N (28) 其中1;2/-N t α为自由度是1-N 的学生氏t -分布的上2/α分位点;其值在任何标准统计学课本中都有表列可查。这样置信区间的上、下限便可由下式给出 上限=N St x N 1

;2/-+

α (29)

下限=N

St x N 1

;2/--

α (30)

Monte Carlo 算法中关于误差估计的进一步讨论,可参见[18,19]。

例 2 利用中心极限定理产生一高斯(正态)分布的随机变量X 。根据中心极限定理,大量均值附近的独立随机变量的总和,无论其个体变量的分布如何,总趋向于一种高斯分布。也就是说,对于任意随机数N i Y i ,....2,1,=,均值为Y ,方差为)(Y Var ,

()

Y Var N Y

N Y

Z N

i i

-=

∑=1

(31)

渐渐与N 合并为零均值、单位标准差的正态分布。若i Y 是均匀分布的随机变量(即i i U Y =),

则12/1)(,2/1==Y Var Y ,故而

12

/2

/1

N N U

Z N

i i

-=∑= (32)

且变量

μσ+=Z X (33) 近似等于均值为μ、方差为2

σ的正态变量。N 小于3时近似为我们所熟知的钟形高斯分布。为简化计算,通常实际中设12=N ,因为这样可消除(32)式中的平方根项。然而N 的这种取值截掉了σ6±边界处的分布,且无法产生超过σ3的值。对于分布曲线的两端比较重要的仿真,就必须用其它方案来产生高斯分布(参见[20]-[22])。 这样,要产生一个均值为μ、标准差为σ的高斯随机变量X ,就要遵循以下步骤: (1) 生成12个均匀分布的随机数1221,....,,U U U (2) 求得612

1

-=

∑=i i

U

Z

(3) 令μσ+=Z X

§4 数值积分

对于一维积分,现已有一些求积公式,如3.10节中所述。而对多重积分的公式则相对较少。Monte Carlo 技术对此类多重积分的重要性至少存在两方面的原因。多重积分的求积公式非常复杂,而多重积分的MCM 几乎保持不变。Monte Carlo 积分的收敛性与维数无关,但对求积公式并非如此。人们已经发现,积分的统计方法是计算天线问题尤其是那些与较大结构相关的问题中的二维或三维积分的很有效的方法[23]。这里将讨论两类Monte Carlo 积分方法,即简易MCM 和具有对立变量的MCM 。其它类型,如成功-失败法和控制变量法,可参见[24]-[26]。本节还将简要介绍MCM 在不规范积分中的应用。

§4.1 简易Monte Carlo 积分

设要计算积分 ?

=R

f I (34)

其中R 是n 维空间。令(

)n

X X X X ,....,21=是在R 内均匀分布的随机变量。则)(X f 也是

随机变量,其均值由下式给出[27,28] R

I

f R

X f R

=

=?

1)( (35) 方差为

()()2

2

11???

? ?

?-=

?

?

R

R

f R

f R

X f Var (36) 其中 ?

=R dX R (37)

如果取X 的N 个独立样本,即N X X X ,....,,21,它们与X 具有相同的分布,且构成平均项

()()()()∑==+++N

i i

N X f N

N X f X f X f 1

211

(38)

我们便会期望该平均项接近于)(X f 的均值。这样,由(35)和(38)式,即可得

()∑==

N

i i

X f N

R

I 1

(39) Monte Carlo 公式可用于有限区域R 上的任何积分。为了举例说明,现将(39)式应用于一

维和二维积分中。

对于一维积分,设

?

=b

a

dx x f I )( (40)

由(39)式可得

()∑=-=N

i i X f N a b I 1

(41) 其中i X 是区间()b a ,内随机变量,即

()10,<<-+=U U a b a X i (42) 对于二维积分,有

(

)

??=b a

d c

dX dX X X f I 2121, (43)

则相应的Monte Carlo 公式为

()()

∑=--=N

i i i X X f N c d a b I 1

21,)( (44) 其中

1

0,)(10,)(2

2

2

111<<-+=<<-+=U U c d c X U U a b a X i

i (45)

(39)式中无偏估计值I 收敛的很慢,这是由于估计值方差的级数是N /1。一种改良

的方法,即控制变量法,可通过减小估计值方差来提高其准确性和收敛性。

§4.2 具有对立变量的Monte Carlo 积分方法

术语对立变量[29,30]用来描述任一系列估计值,它们能互相抵消掉彼此的方差。方便起

见,我们假设积分范围为区间(0,1)。设要得到下面单重积分的估计值 ?=1

)(dU U g I (46)

我们期望表达式

[])1()(2

1

U g U g -+与)(U g 相比具有更小的方差。如果)(U g 太小,那反过来)1(U g -就很可能太大。因此,我们定义估计值

()()[]∑=-+=

N

i i i U g U g N

I 112

1

1

(47) 其中i U 是0和1之间的随机数。此估计值方差的级数是41

N

,这是在(39)式基础上的一个极大的进步。对于两维积分 ()

??=1010

2121

,dU dU U U

g I (48)

则相应的估计值为

()()()()[]

∑=--+-+-+=

N

i i i i i i i i i U U g U U g U U g U U g N

I 1212121211,1,11,,4

1

1

(49) 根据相似性,可将该方法延拓至更高阶的积分。对于不是(0,1)的区间,可应用诸如(41)式

到(45)式的转换。例如,

()()()??-=1

dU U g a b dx x f b a

()()[]∑=-+-≈N i i i U g U g N a b 112

1

(50)

其中)()(X f U g =,且()U a b a X -+=。由(47)和(49)式可得,当积分维数增加时,每一维用来在简易Monte Carlo 方法上提高效率的对立变量的最小值也会增加。这样使得简易Monte Carlo 方法在多维运算中更具优越性。

§4.3 不规范积分 积分式

?

=

)(dx x g I (51)

可用Monte Carlo 仿真法进行估计[31]。对于概率密度为)(x f 的随机变量X ,其中)(x f 在区间(0,∞)上的积分等于1,则有

()()

??

∞∞

=00

)(dx x g dx x f x g (52)

因此,为计算(51)式中的I 值,首先要得到N 个服从同一在区间(0,∞)上的积分等于1的概率密度函数)(x f 的独立随机变量。其样本均值

()()

()

==

N

i i i x f x g N

x g 1

1

(53) 便是I 的估计值。

例3 用Monte Carlo 方法计算积分 ??

=

1020

cos π

φαρφρρd d e I j

解:该积分式表示振幅和相位分别服从某一分布的圆形孔径天线的辐射状况。之所以选择该式,是因为它至少是辐射积分的一部分。且其解的闭合形式亦为可得,由此便可得Monte Carlo 解的精确性。其闭合解为 ()()

α

απα12J I =

其中()α1J 是一阶Bessel 函数。

图3给出由(44)和(45)式计算该积分的一个简单的程序,其中0,1,0===c b a 以及π2=d 。该程序在Vax 11/780 中调用子程序RANDU 来产生随机数1U 和2

U 。对于不同的N 值,简易和对立变量Monte Carlo 方法都可用于计算辐射积分。表1中对5=α时的结果进行了精确的比较。在应用(49)式时,用到了下面的对应式: ()()

11122

1

1

11,,U a b X b U X U

X U --=-≡-≡≡

()()

222

11U c d X d U

--=-≡-

表1 例3辐射积分的MC 方法积分结果

N 简易MCM 对立变量MCM

500 -0.2892-j0.0742 -0.2887-j0.0585

1000 -0.5737+j0.0808 -0.4982-j0.0080 2000 -0.4922-j0.0040 -0.4682-j0.0082

4000 -0.3999-j0.0345 -0.4216-j0.0323 6000 -0.3608-j0.0270 -0.3787-j0.0440 8000 -0.4327-j0.0378 -0.4139-j0.0241 10,000 -0.4229-j0.0237

-0.4121-j0.0240

精确解:-0.4116+j0

§5 位势问题的解

位势理论与布朗运动(或随机游动)的关系是由Kakutani 在1944年首次提出的[32]。自此,所谓的概率位势理论便在诸如热传导[33]-[38]、静电学[39]-[46]以及电力工程等许多学科领域得到广泛应用。不同方程式的概率解或MC 解的一个基本概念就是随机游动。不同类型的随机游动应用不同的Monte Carlo 方法。最常见的类型是固定随机游动和自动定

位随机游动。其它不常见类型有迁离法、缩减边界法、内切形法以及表面密度法。

0001 C***************************************************************** 0002 C INTEGRATION USING CRUDE MONTE CARLO

0003 C AND ANTITHETIC METHODS

0004 C ONL Y FEW LINES NEED BE CHANGED TO USE THIS PROGRAM

0005 C FOR ANY MULTI—DIMENSIONAL INTEGRATION

0006 C**************************************************************** 0007

0008 DATA IS1,IS2,IS3,IS4/1234,5678,9012,3456/

0009 DATA A,B,C/0.0,1.0,0.0/

0010

0011 C SPECIFY THE INTEGRAND

0012 F(RHO,PHI)=RHO*CEXP(J*ALPHA*RHO*COS(PHI))

0013

0014 J=(0.0,1.0)

0015 ALPHA=5.0

0016 PIE=3.1415927

0017 D=2.0*PIE

0018 DO 30 NRUN=500,10000,500

0019 SUM1=(0.0,0.0)

0020 SUM2=(0.0,0.0)

0021 DO 10 I=1,NRUN

0022 CALL RANDU(IS1,IS2,U1)

0023 CALL RANDU(IS3,IS4,U2)

0024 X1=A+(B-A)*U1

0025 X2=C+(D-C)*U2

0026 X3=(B-A)*(1.0-U1)

0027 X4=(D-C)*(1.0-U2)

0028 SUM1=SUM1+F(X1,X2)

0029 SUM2=SUM2+F(X1,X2)+F(X1,X4)+F(X3,X2)+F(X3,X4)

0030 10 CONTINUE

0031 AREA1=(B-A)*(D-C)*SUM1/FLOA T(NRUN)

0032 AREA2=(B-A)*(D-C)*SUM2/(4.0*FLOAT(NRUN))

0033 PRINT *,NRUN,AREA1,AREA2

0034 WRITE(6,*) NRUN,AREA1,AREA2

0035 WRITE(6,20) NRUN,AREA1,AREA2

0036 20 FORMAT(2X,’NRUN=’,I5,3X,’AREA1=’,F12.6,3X,F12.6,’AREA2=’, 0037 1 F12.6,3X,F12.6,/)

0038 30 CONTINUE

0039 STOP

0040 END

图3 例3中用Monte Carlo方法计算二维积分的程序

§5.1 固定随机游动

为具体起见,假设用固定随机游动的MCM 解拉普拉斯方程

02

=?V (在区域R 内) (54a ) 满足Dirichlet 边界条件

P V V = (在边界B 上) (54b ) 首先将R 分成网状结构,并用其有限差当量替代2

?。(54a )在二维R 内的有限差表达式可由(3.26)式给出,即

()()()()()?-+?++?-+?+=-+-+y x V p y x V p y x V p y x V p y x V y y x x ,,,,, (55a ) 其中

4

1

=

===-+-+y y x x p p p p (55b ) (55)式中,假设网络的一个方格尺寸是?,如图4所示。下面给出该方程的概率解释。若随机游动粒子在某一瞬时处于()y x ,位置处,它从此点向),(),,(y x y x ?-?+),(?+y x 及

()?-y x ,移动的概率分别是+-+y x x p p p ,,和-y p 。决定粒子移动方式的方法是产生一个随

机数10,<

()()()()()()()()?-→?+→?-→?+→y x y x y x y x y x y x y x y x ,,,,,,,, 1

75.075.05.05

.025.025.00<<<<<<<

如果不用方格而用矩形格,则有-+=x x p p 且-+=y y p p ,但y x p p ≠。在用立方体晶格表示的三维问题中,6

1

======-+-+-+z z y y x x p p p p p p 。两种情况中都依据概率对区间10<

图4 固定随机游动示意图

为了计算()y x ,处的位势,让一随机游动粒子在该点出发开始游动。粒子便开始从一点到另一点在网格中蜿蜒前行直到到达边界。此时,粒子终止游动,记下边界点的指定位势P V 。

令第一个粒子游动结束时P V 的值记为()1P V ,如图4所示。然后将第二个粒子从()y x ,释放,使其游动直到到达边界点,游动终止且该点P V 的值相应的记为()2P V 。依次第三个,第四个, ,第N 个粒子从()y x ,释放重复此过程,并记下相应的指定位势()()4,3P P V V ,

()N V P 。根据Kakutani [32],()()2,1P P V V , ()N V P 的期望值是Dirichlet 问题

在()y x ,的解,即

()()∑==

N

i P i V N

y x V 1

1, (57)

其中N 较大,为游动总次数。其收敛速度随N 而改变,所以需要保证许多随机游动都有精确的结果。

若要解Poisson 方程

()y x g V ,2

-=? 在R 内 (58a )

且V 满足条件

P V V = 在B 上 (58b ) 则式(55)中的有限差分表示为

()()()y x V p y x V p y x V x x ,,,?-+?+=-+

()()4

,,2g

y x V p y x V p y y ?+?-+?++-+ (59)

其中概率仍为式(55b )所示。(59)式的概率解释也近似于(55)式。但随机游动的每一步都要记录下(59)式中的4/2

g ?项。如果第i 次随机游动从()y x ,出发至到达边界需要i m 步,

则记录下

()()∑=?+

i

m j j

j

P y x g i V 1

2,4

(60)

由此可得,()y x V ,的Monte Carlo 解为

()()()∑∑∑=-==??

?????+=N i m j j j N i P i y x g N i V N y x V 11

121,41, (61)

对刚才所描述MCM 的一个有趣的分析就是游走醉鬼问题[15,35]。我们将随机游动粒子

当作一个“醉鬼”,将网格方块当作“城市街区”,结点当作“十字路口”,边界B 当作“城市边界”,而且把边界B 上的结点当作“警察”。尽管醉鬼想步行走回家,但他却醉的一塌糊涂以至于在整个城市中随机游走。警察的工作是在城市边界上一看见醉鬼便将其抓获,并

勒令醉鬼交付罚金P V 。那么醉鬼要支付的预期罚金将会是多少呢?其答案便是(57)式。 在电介质边界上,指定边界条件为n n D D 21=。

()y x ,

Word、Excel基础教程(全)

第一课:word 2003介绍与工作介面 一、word 2003介绍 word 2003是由微软公司出品的Microsoft office系列办公软件之一,他主要用于办公文件排版方面,拥有强大的图片混排和表格制作的功能,也用于其它印刷品的排版,比如宣传单、杂志等,因为其操作简单、介面友好、功能强大,所以在自动化办公方面应用非常广泛,是现代办公室不可缺少的软件之一。 二、word 2003工作介面 1)标题栏:位于Word 2003工作窗口的最上面,用于显示当前正在编辑文档的文件名等相关信息。 2)菜单栏:包括“文件、编辑、视图、帮助”等菜单。 3)常用工具栏:是一般应用程序调用命令的一种快捷方式。 4)标尺:包括水平标尺和垂直标尺,可快速设置文档的页边距和缩进量,或表格的栏宽和制表位。 5)工作区:编辑文档。 6)状态栏:用来显示文档当前的状态。 三、Word 2003基本操作 1、启动Word 2003 (1)单击“开始/程序/microsoft office/ Word 2003”, (2)双击桌面Word 2003图标即可。 2、退出Word 2003 (1)鼠标点击标题栏上的关闭按钮, (2)双击标题栏上Word 2003图标, (3)Alt+F4。 第二课:Word 2003文本的操作 一、文档的基础操作 1、文档的建立、保存与打开 (1)新建文档

启动Word 2003后,会自动建立一个默认空白文档,单击“文件/新建”命令或Ctrl+N或 单击工具栏的“新建”按钮。 (2)保存文档 方法一、“文件/保存”命令或Ctrl+S 方法二、常用工具栏的“保存”按钮 (3)打开文档 方法一、“文件/打开”命令或Ctrl+O 方法二、在打开对话框的“查找范围”栏内,选择要打开的文档, 2、输入文字和符号 (1)输入文字 建立新文档后,将光标定位到文本插入点,直接可以在文档中输入英文,如果要输入中文,必须切换到中文输入法状态。输入法的切换:单击任务栏中的输入法图标或Ctrl+Shift即可。 (2)在文档中插入符号和特殊字符 如键盘上没有的符号可在“插入/符号或特殊符号”中选择——> 在“字体”框内选择一种字体,不同的字体有不同的符号——> 选择需要在文档中插入的一个符号——> 单击“插入”按钮即可。 二、文本的清除: ◎Backspace(退格键)删除光标以左的内容 ◎Delete (删除键) 删除光标以右的内容 (注:分清“插入/改写”模式,改写模式下可直接改写文本。) 二、文本的选定 ◎鼠标:在“选定栏”:单击选行,双击选段,三击选全文(注:Alt+鼠标拖动选中矩形块。)三、全选和清除: ◎全选:①[编辑]→[全选],②Ctrl+A ◎清除:①[编辑]→[清除],②Delete(或选中后“剪切”) 四、撤消和恢复: ◎[编辑]→[撤消] Ctrl+Z (注:可进行多步撤消) 五、剪切与复制 ◎Ctrl+C 复制◎Ctrl+X 剪切◎Ctrl+V 粘贴 六、查找和替换: ◎[编辑]→[查找] Ctrl+F 编辑→查找→输入查找内容→点击“查找下一处”。 ◎[编辑]→[替换] Ctrl+H 编辑→替换→输入查找内容和替换内容→点击“替换”或全部替换。 七、光标定位: ◎[编辑]→[定位] Ctrl+G ,编辑→定位→输入页号、行号等→点击“下一处” 八、 Word 2003文档的页眉和页脚 ◎[视图]→[页眉和页脚] (注:页眉和页脚常用于标注一些较固定的信息:如公司名称、地址、电话、页码、日期等)

浅析蒙特卡洛方法原理及应用

浅析蒙特卡洛方法原理及应用 于希明 (英才学院1236103班测控技术与仪器专业6120110304) 摘要:本文概述了蒙特卡洛方法产生的历史及基本原理,介绍了蒙特卡洛方法的最初应用——蒲丰投针问题求圆周率,并介绍了蒙特卡洛方法在数学及生活中的一些简单应用,最后总结了蒙特卡洛方法的特点。 关键词:蒙特卡洛方法蒲丰投针生活应用 蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。它是以概率统计理论为基础, 依据大数定律( 样本均值代替总体均值) , 利用电子计算机数字模拟技术, 解决一些很难直接用数学运算求解或用其他方法不能解决的复杂问题的一种近似计算法。蒙特卡洛方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。 一、蒙特卡洛方法的产生及原理 蒙特卡洛方法于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯·诺伊曼首先提出。数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。在这之前,蒙特卡洛方法就已经存在。1777年,法国数学家蒲丰(Georges Louis Leclere de Buffon,1707—1788)提出用投针实验的方法求圆周率π。这被认为是蒙特卡洛方法的起源。 其基本原理如下:由概率定义知,某事件的概率可以用大量试验中该事件发生的频率来估算,当样本容量足够大时,可以认为该事件的发生频率即为其概率。因此,可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。蒙特卡洛法正是基于此思路进行分析的。 设有统计独立的随机变量Xi(i=1,2,3,…,k),其对应的概率密度函数分别为fx1,fx2,…,fxk,功能函数式为Z=g(x1,x2,…,xk)。首先根据各随机变量的相应分布,产生N组随机数x1,x2,…,xk值,计算功能函数值Zi=g(x1,x2,…,xk)(i=1,2,…,N),若其中有L组随机数对应的功能函数值Zi≤0,则当N→∞时,根据伯努利大数定理及正态随机变量的特性有:结构失效概率,可靠指标。 二、蒲丰投针问题 作为蒙特卡洛方法的最初应用, 是解决蒲丰投针问题。1777 年, 法国数学家蒲丰提出利用投针实验求解圆周率的问题。设平面上等距离( 如为2a) 画有一些平行线, 将一根长度为2l( l< a) 的针任意投掷到平面上, 针与任一平行线相交的频率为p 。针的位置可以用针的中心坐标x 和针与平行线的夹角θ来决定。任意方向投针, 便意味着x与θ可以任意取一值, 只是0≤x ≤a, 0≤θ≤π。那么, 投针与任意平行线相交的条件为x ≤ l sinθ。相交频率p 便可用下式求

Word的基本操作教程

Word的基本操作 新建文档 我们讲了Word第一课后,有位朋友和我说用起来太麻烦了,问他怎么个麻烦法,他说,有时要打印几份文件,每打印一份就要退出一次Word重来,所以特别麻烦。其实根本用不着退出Word。你可以在Word里面关掉已经打印出来的文件,然后新建一个文档或者打开另外的文档,同时打开几个文件也可以。 怎么做呢?很简单的,先看新建文档。我们打开Word。Word启动之后自动建立了一个新文档,注意现在标题栏上的文档名称是“文档1.doc”,单击工具栏上的"新建空白文档"按钮,现在我们就又新建了一个空白的文档,它的名字叫做“文档2.doc”。再单击这个按钮,就出现了“文档3”。这是我们新建一个文档最常用的方法。 打开文档 怎么在Word里打开以前存盘的文档呢?我的朋友说他一直都是先退出Word,然后去双击要打开的文件,Word就会自动启动并打开那个文件。 其实打开和新建一样,不用退出Word也可以打开文件,单击工具栏上的“打开”按钮,就可以打开一个“打开文件”对话框。 我们来看看怎么打开D盘“笑话”文件夹中的“笑话.doc”。 单击这个下拉列表框,从弹出的列表中选择“D:”,也就是D盘,现在下面的文件列表中出现的就是D盘的内容了,双击打开这个“笑话”文件夹,列表中就出现了“笑话.doc”文件,选中这个文件,单击“打开”按钮,就打开这个文件了。

保存文档 现在我们来看看保存文档。这次我们讲一点新东西: 打开“另存为”对话框;这里有一个“新建文件夹”按钮,它可是很有用的: 我们平时的文件都是分类存放的,而有时要保存编辑的稿件,觉得放到哪里都不合适,这时我们就可以新建一个文件夹把文件放到里面。单击这个“新建文件夹”按钮,在打开的对话框中输入文件夹的名字“稿件”, 单击“确定”按钮,回到“另存为”对话框;输入文档的名字,单击“保存”按钮,我们就可以把文档保存在新建的文件夹中了。 多文档切换 不过现在就有另一个问题了,现在我们打开了几 个文档,而不是像以前那样只打开一个文档,如果我 们想从现在这个文档切换到另外的一个文档中,该怎 么办呢?一般的办法是使用窗口菜单来切换当前编辑 的文档。 打开窗口菜单,菜单的最下面列出了我们打开的 所有文档,带有对号的是当前编辑的文档,单击“文 档2.doc”,就切换到了“文档2.doc”。当然你也 可以按下ALT+TAB键来切换,这是Word 2000新增的 切换功能。

蒙特卡罗方法简介

第三章蒙特卡罗方法简介 3.1 Monte Carlo方法简介 Monte Carlo方法是诺斯阿拉莫斯实验室在总结其二战期间工作(曼哈顿计划)的基础上提出来的。Monte Carlo的发明,主要归功于Enrico Fermi、Von Neumann和Stanislaw Ulam等。自二战以来,Monte Carlo方法由于其在解决粒子输运问题上特有的优势而得到了迅速发展,并在核物理、辐射物理、数学、电子学等方面得到了广泛的应用。Monte Carlo的基本思想就是基于随机数选择的统计抽样,这和赌博中掷色子很类似,故取名Monte Carlo。 Monte Carlo方法非常适于解决复杂的三维问题,对于不能用确定性方法解决的问题尤其有用,可以用来模拟核子与物质的相互作用。在粒子输运中,Monte Carlo技术就是跟踪来自源的每个粒子,从粒子产生开始,直到其消亡(吸收或逃逸等)。在跟踪过程中,利用有关传输数据经随机抽样来决定粒子每一步的结果[6]。 3.2 Monte Carlo发展历程 MCNP程序全名为Monte Carlo Neutron and Photon Transport Code (蒙特卡罗中子-光子输运程序)。Monte Carlo模拟程序是在1940年美国实施“发展核武器计划”时,由洛斯阿拉莫斯实验室(LANL)提出的,为其所投入的研究、发展、程序编写及参数制作超过了500人年。1950年Monte Carlo方法的机器语言出现, 1963年通用性的Monte Carlo方法语言推出,在此基础上,20世纪70年代中期由中子程序和光子程序合并,形成了最初的MCNP程序。自那时起,每2—3年MCNP更新一次, 版本不断发展,功能不断增加,适应面也越来越广。已知的MCNP程序研制版本的更新时间表如下:MCNP-3:1983年写成,为标准的FORTRAN-77版本,截面采用ENDF /B2III。 MCNP-3A:1986年写成,加进了多种标准源,截面采用ENDF /B2I V[20]。

蒙特卡罗 算法

1、蒙特卡罗定位 足球机器人中自定位方法是由Fox提出的蒙特卡罗定位。这是一种概率方法,把足球机器人当前位置看成许多粒子的密度模型。每个粒子可以看成机器人在此位置定位的假设。在多数应用中,蒙特卡罗定位用在带有距离传感器的机器人设备上,如激光扫描声纳传感器。只有一些方法,视觉用于自定位。在足球机器人自定位有些不同,因为机器人占的面积相对比较小,但是机器人所在位置的面积必须相当准确的确定,以便允许同组不同机器人交流有关场地物体信息和遵守比赛规则。这种定位方法分为如下步骤,首先所有粒子按照一起那机器人的活动的运动模型移动。概率pi取决于在感知模型的基础上所有粒子在当前传感器上的读数。基于这些概率,就提出了所谓的重采样,将更多粒子移向很高概率的采样位置。概率平均分布的确定用来表示当前机器人的位置的最优估计。最后返回开始。 2、蒙塔卡罗 基本思想 当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。 工作过程 蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。 蒙特卡罗方法解题过程的三个主要步骤: (1)构造或描述概率过程 对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。 2)实现从已知概率分布抽样 构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。 (3)建立各种估计量

蒙特卡罗方法地解地的题目过程可以归结为三个主要步骤

蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。 蒙特卡罗方法解题过程的三个主要步骤: (1)构造或描述概率过程 对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。 (2)实现从已知概率分布抽样 构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。 (3)建立各种估计量

蒙特卡罗方法学习总结

图1-1 蒙特卡罗方法学习总结 核工程与核技术2014级3班张振华20144530317 一、蒙特卡罗方法概述 1.1蒙特卡罗方法的基本思想 1.1.1基本思想 蒙特卡罗方的基本思想就是,当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率、数学期望有关的量时,通过某种试验方法,得出该事件发生的频率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。 1.1.2计算机模拟打靶游戏 为了能更为深刻地理解蒙特卡罗方法的基本思想,我们学习了蒲丰氏问题和打靶游戏两大经典例子。下面主要对打靶游戏进行剖析、计算机模拟(MATLAB 程序)。 设某射击运动员的弹着点分布如表1-1 所示, 首先用一维数轴刻画出已知该运动员的弹 着点的分布如图1-1所示。研究打靶游戏,我 们不用考察子弹的运动轨迹,只需研究每次“扣动扳机”后的子弹弹着点。每一环数对应唯一确定的概率,且注意到概率分布函数有单调不减和归一化的性质。首先我们产生一个在(0,1)上均匀分布的随机数(模拟扣动扳机),然后将该随机数代表的点投到P 轴上(模拟子弹射向靶上的一个确定点),得到对应的环数(即子弹的弹着点),模拟打靶完成。反复进行N 次试验,统计出试验结果的样本均值。样本均值应当等于数学期望值,但允许存在一定的偏差,即理论计算值应该约等于模拟试验结果。 clear all;clc; N=100000;s=0; for n=1:N %step 4.重复N 次打靶游戏试验

x=rand(); %step 1.产生在(0,1)上均匀分布的随机数if(x<=0.1) %step 2.若随机数落在(0.0,0.1)上,则代表弹着点在7环g=7; s=s+g; %step 3.统计总环数elseif(x<=0.2) %step 2.若随机数落在(0.1,0.2)上,则代表弹着点在8环g=8;s=s+g; elseif(x<=0.5) %step 2.若随机数落在(0.2,0.5)上,则代表弹着点在9环g=9;s=s+g; else %step 2.若随机数落在(0.5,1.0)上,则代表弹着点在10环 g=10;s=s+g; end end gn_th=7*0.1+8*0.1+9*0.3+10*0.5; %step 5.计算、输出理论值fprintf('理论值:%f\n',gn_th); gn=s/N; %step 6.计算、输出试验结果 fprintf('试验结果:%f\n',gn);1.2蒙特卡罗方法的收敛性与误差 1.2.1收敛性 由大数定律可知,应用蒙特卡罗方法求近似解,当随机变量Z 的简单子样数N 趋向于无穷大(N 充分大)时,其均值依概率收敛于它的数学期望。 1.2.2误差 由中心极限定理可知,近似值与真值的误差为N Z E Z N αλ<-)(?。式中的αλ的值可以根据给出的置信水平,查阅标准正态分布表来确定。 1.2.3收敛性与误差的关系 在一般情况下,求具有有限r 阶原点矩()∞

Word基本操作教程

Word基本操作教程 1、WORD的启动与关闭 启动:开始→程序→MicrosoftWord 关闭:文件→退出、关闭按钮 2、WORD窗口的组成:标题栏、菜单栏、工具栏、文档窗口、状态栏 3、打开或关闭工具栏:“视图”菜单→工具栏→选择工具选项(右击工具栏→选择工具选项) 4、文本的基本制作 1)选择汉字输入法: 方法二:Ctrl+Shift组合键选择 2)中英文切换的方法:Ctrl+空格键或在中文输入时,第一个字母输入v,随后输入的便是英文。 3)汉字输入方法:(智能ABC输入法) 输入完整汉语拼音;例如新世纪:xinshiji 输入词组前一字完整的拼音和后一字的声母;例如信息:xinx。 用数字键选择汉字;第一字词用空格键选择;用“+-”键翻页。 拼音中ǔ用v代替;如女同学:nvtongxue 输入大写的一、二……一○等:io+数字 重复输入:先输入要重复的文字→将插入点移到适当的位置→按F4或CTRL+Y。 4)标点符号的输入:

中西文标点选择:,.和,。 常用标点符号的输入:顿号、—书名号《》—<> 5)关闭软键盘的方法:单击软键盘图标。 6)保存文件:文件→保存(另存为); “常用工具栏”上“保存”按钮。 7)打开文件:文件→打开→查找范围、文件名→打开。 5、上机操作:输入下列文字。 迎着新世纪的曙光,“世界华人学生作文大赛”向我们走来。 第二节文本的基本编辑 教学目的:学习文本编辑的方法,掌握文字段落的设置与修饰。 教学重点:文本编辑的方法;文字的设置与修饰;段落的设置。 教学时间:2课时 教学步骤: 1、文本编辑的方法 插入文字:①用键盘移光标到插入文字处;②在插入文字处单击鼠标光标。 输入特殊符号:①插入→符号;②右键→快捷菜单中“符号” 删除不需要的文字:按Delete键删除光标后面的字符;按Backspace键删除光标前面的字符。 选定一段文字:单击段首选中当前行;双击段首选中当前段;三击段落任意处选中当前段。 移动或复制一段文字 移动:选定文字→剪切→选定目标位置→粘贴(或用鼠标选定直接拖动到目标位置)

蒙特卡罗(Monte Carlo)方法简介

蒙特卡罗(Monte Carlo)方法简介

蒙特卡罗(Monte Carlo)方法简介 蒙特卡罗(Monte Carlo)方法,也称为计算机随机模拟方法,是一种基于"随机数"的计算方法。 一起源 这一方法源于美国在第二次世界大战进研制原子弹的"曼哈顿计划"。Monte Carlo方法创始人主要是这四位:Stanislaw Marcin Ulam, Enrico Fermi, John von Neumann(学计算机的肯定都认识这个牛人吧)和Nicholas Metropolis。 Stanislaw Marcin Ulam是波兰裔美籍数学家,早年是研究拓扑的,后因参与曼哈顿工程,兴趣遂转向应用数学,他首先提出用Monte Carlo方法解决计算数学中的一些问题,然后又将其应用到解决链式反应的理论中去,可以说是MC方法的奠基人;Enrico Fermi是个物理大牛,理论和实验同时都是大牛,这在物理界很少见,在“物理大牛的八卦”那篇文章里提到这个人很多次,对于这么牛的人只能是英年早逝了(别说我嘴损啊,上帝都嫉妒!);John von Neumann可以说是计算机界的牛顿吧,太牛了,结果和Fermi一样,被上帝嫉妒了;Nicholas Metropolis,希腊裔美籍数学家,物理学家,计算机科学家,这个人对Monte Carlo方法做的贡献相当大,正式由于他提出的一种什么算法(名字忘了),才使得Monte Carlo方法能够得到如此广泛的应用,这人现在还活着,与前几位牛人不同,Metropolis很专一,他一生主要的贡献就是Monte Carlo方法。 蒙特卡罗方法的名字来源于摩纳哥的一个城市蒙地卡罗,该城市以赌博业闻名,而蒙特?罗方法正是以概率为基础的方法。与它对应的是确定性算法。 二解决问题的基本思路 Monte Carlo方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的"频率"来决定事件的"概率"。19世纪人们用投针试验的方法来决定圆周率π。本世纪40年代电子计算机的出现,特

蒙特卡罗方法及应用实验讲义2016

蒙特卡罗方法及应用 实验讲义 东华理工大学核工系 2016.8

实验一 蒙特卡罗方法基本思想 一、实验目的 1、了解蒙特卡罗方法方法的基本思想; 2、掌握蒙特卡罗方法计算面积、体积的方法; 3、掌握由已知分布的随机抽样方法。 二、实验原理 Monte Carlo 方法,又称统计模拟方法或计算机随机模拟方法,是一种基于“随机数”进行数值模拟的方法,一种采用统计抽样理论近似求解物理或数学问题的方法。 如待求量可以表述成某些特征量的期望值、某些事件出现的概率或两者的函数形式,那么可采用蒙特卡罗方法求解。在求解某些特征量的期望值或某些事件出现的概率时,必须构建合符实际的数学模型。例如采用蒙特卡罗方法计算某函数所围面积时,构建的数学模型是构造一已知面积的可均匀抽样区域,在该区域投点,由伯努利定理大数定理可知,进入待求区域投点的频率依概率1收敛于该事件出现的概率(面积之比)。 由已知分布的随机抽样方法指的是由已知分布的总体中抽取简单子样。具体方法很多,详见教材第三章。 三、实验内容 1、安装所需计算工具(MATLAB 、fortran 、C++等); 2、学习使用rand(m,n)、unifrnd(a,b,m,n)函数 3、求解下列问题: 3.0、蒲丰氏投针求圆周率。 3.1、给定曲线y =2 – x 2 和曲线y 3 = x 2,曲线的交点为:P 1( – 1,1 )、P 2( 1,1 )。曲线围成平面有限区域,用蒙特卡罗方法计算区域面积; 3.2 、计算1z z ?≥??≤??所围体积 其中{(,,)|11,11,02}x y z x y z Ω=-≤≤-≤≤≤≤。 4、对以下已知分布进行随机抽样:

蒙特卡洛方法及其在风险评估中的应用(1)

蒙特卡洛方法及其应用 1风险评估及蒙特卡洛方法概述 1.1蒙特卡洛方法。 蒙特卡洛方法,又称随机模拟方法或统计模拟方法,是在20世纪40年代随着电子计算机的发明而提出的。它是以统计抽样理论为基础,利用随机数,经过对随机变量已有数据的统计进行抽样实验或随机模拟,以求得统计量的某个数字特征并将其作为待解决问题的数值 解。 蒙特卡洛模拟方法的基本原理是:假定随机变量X1、X2、X3……X n、Y,其中X1、X2、X3……X n 的概率分布已知,且X1、X2、X3……X n、Y有函数关系:Y=F(X1、X2、X3……X n),希望求得随机变量Y的近似分布情况及数字特征。通过抽取符合其概率分布的随机数列X1、X2、X3……X n带入其函数关系式计算获得Y的值。当模拟的次数足够多的时候,我们就可以得到与实际情况相近的函数Y的概率分布和数字特征。 蒙特卡洛法的特点是预测结果给出了预测值的最大值,最小值和最可能值,给出了预测 值的区间范围及分布规律。 1.2风险评估概述。 风险表现为损损益的不确定性,说明风险产生的结果可能带来损失、获利或是无损失也无获利,属于广义风险。正是因为未来的不确定性使得每一个项目都存在风险。对于一个公司而言,各种投资项目通常会具有不同程度的风险,这些风险对于一个公司的影响不可小视,小到一个项目投资资本的按时回收,大到公司的总风险、公司正常运营。因此,对于风险的 测量以及控制是非常重要的一个环节。 风险评估就是量化测评某一事件或事物带来的影响的可能程度。根据“经济人”假设,收益最大化是投资者的主要追求目标,面对不可避免的风险时,降低风险,防止或减少损失, 以实现预期最佳是投资的目标。 当评价风险大小时,常有两种评价方式:定性分析与定量分析法。定性分析一般是根据风险度或风险大小等指标对风险因素进行优先级排序,为进一步分析或处理风险提供参考。这种方法适用于对比不同项目的风险程度,但这种方法最大的缺陷是在于,在多个项目中风险最小者也有可能亏损。而定量分析法则是将一些风险指标量化得到一系列的量化指标。通过这些简单易懂的指标,才能使公司的经营者、投资者对于项目分风险有正确的评估与判断,

Word基本操作教程.doc

Word基本操作教程 Word基本操作教程 1、WORD的启动与关闭 启动:开始程序MicrosoftWord 关闭:文件退出、关闭按钮 2、WORD窗口的组成:标题栏、菜单栏、工具栏、文档窗口、状态栏 3、打开或关闭工具栏:视图菜单工具栏选择工具选项(右击工具栏选择工具选项) 4、文本的基本制作 1)选择汉字输入法: 方法一:鼠标单击任务栏上的En 图标选择汉字输入法 方法二:Ctrl+Shift组合键选择 2)中英文切换的方法:Ctrl+空格键或在中文输入时,第一个字母输入v,随后输入的便是英文。 3)汉字输入方法:(智能ABC输入法) 输入完整汉语拼音;例如新世纪:xinshiji 输入声母。例如计算机:jsj 输入词组前一字完整的拼音和后一字的声母;例如信息:xinx。 用数字键选择汉字;第一字词用空格键选择;用+- 键翻页。 拼音中ǔ用v代替;如女同学:nvtongxue

输入大写的一、二一○等:io+数字 重复输入:先输入要重复的文字将插入点移到适当的位置按F4或CTRL+Y。 4)标点符号的输入: 中西文标点选择:,.和,。 常用标点符号的输入:顿号、书名号《》 特殊标点符号的输入:右击输入法状态栏右边的软键盘图标选择标点符号。 5)关闭软键盘的方法:单击软键盘图标。 6)保存文件:文件保存(另存为); 常用工具栏上保存按钮。 7)打开文件:文件打开查找范围、文件名打开。 5、上机操作:输入下列文字。 首届世界华人学生作文大赛启事 迎着新世纪的曙光,世界华人学生作文大赛向我们走来。 在以往成功举办了四届全国学生丑小鸭作文大赛的基础上,本届大赛将扩大竞赛范围,面向海内外所有的华人学生。本届大赛由中国侨联、全国台联、中国写作学会、《人民日报》(海外版)、中国国际广播电台、《21世纪学生作文》杂志社共同举办,旨在加强海内外炎黄子孙在生活、学习方面的交流与沟通,活跃学生课外学习生活,展示华人学生的精神面貌。 第二节文本的基本编辑 教学目的:学习文本编辑的方法,掌握文字段落的设置与修饰。

蒙特卡洛模拟法简介

蒙特卡洛模拟法简介 蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数估计量和统计量,进而研究其分布特征的方法。具体的,当系统中各个单元的可靠性特征量已知,但系统的可靠性过于复杂,难以建立可靠性预计的精确数学模型或模型太复杂而不便应用时,可用随机模拟法近似计算出系统可靠性的预计值;随着模拟次数的增多,其预计精度也逐渐增高。由于涉及到时间序列的反复生成,蒙特卡洛模拟法是以高容量和高速度的计算机为前提条件的,因此只是在近些年才得到广泛推广。 这个术语是二战时期美国物理学家Metropolis执行曼哈顿计划的过程中提出来的。 蒙特卡洛模拟方法的原理是当问题或对象本身具有概率特征时,可以用计算机模拟的方法产生抽样结果,根据抽样计算统计量或者参数的值;随着模拟次数的增多,可以通过对各次统计量或参数的估计值求平均的方法得到稳定结论。 蒙特卡洛模拟法的应用领域 蒙特卡洛模拟法的应用领域主要有: 1.直接应用蒙特卡洛模拟:应用大规模的随机数列来模拟复杂系统,得到某些参数或重要指标。 2.蒙特卡洛积分:利用随机数列计算积分,维数越高,积分效率越高。 3.MCMC:这是直接应用蒙特卡洛模拟方法的推广,该方法中随机数的产生是采用的马尔科夫链形式。 蒙特卡洛模拟法的概念 (也叫随机模拟法)当系统中各个单元的可靠性特征量已知,但系统的可靠性过于复杂,难以建立可靠性预计的精确数学模型或模型太复杂而不便应用则可用随机模拟法近似计算出系统可靠性的预计值。随着模拟次数的增多,其预计精度也逐渐增高。由于需要大量反复的计算,一般均用计算机来完成。

蒙特卡洛模拟法求解步骤 应用此方法求解工程技术问题可以分为两类:确定性问题和随机性问题。解题步骤如下: 1.根据提出的问题构造一个简单、适用的概率模型或随机模型,使问题的解对应于该模型中随机变量的某些特征(如概率、均值和方差等),所构造的模型在主要特征参量方面要与实际问题或系统相一致 2 .根据模型中各个随机变量的分布,在计算机上产生随机数,实现一次模拟过程所需的足够数量的随机数。通常先产生均匀分布的随机数,然后生成服从某一分布的随机数,方可进行随机模拟试验。 3. 根据概率模型的特点和随机变量的分布特性,设计和选取合适的抽样方法,并对每个随机变量进行抽样(包括直接抽样、分层抽样、相关抽样、重要抽样等)。 4.按照所建立的模型进行仿真试验、计算,求出问题的随机解。 5. 统计分析模拟试验结果,给出问题的概率解以及解的精度估计。 在可靠性分析和设计中,用蒙特卡洛模拟法可以确定复杂随机变量的概率分布和数字特征,可以通过随机模拟估算系统和零件的可靠度,也可以模拟随机过程、寻求系统最优参数等。 蒙特卡洛模拟法的实例 资产组合模拟: 假设有五种资产,其日收益率(%)分别为 0.02460.0189 0.0273 0.0141 0.0311 标准差分别为 0.95091.4259, 1.5227, 1.1062, 1.0877 相关系数矩阵为 1.0000 0.4403 0.4735 0.4334 0.6855 0.4403 1.00000.7597 0.7809 0.4343 0.4735 0.75971.0000 0.6978 0.4926 0.4334 0.78090.6978 1.0000 0.4289 0.6855 0.43430.4926 0.4289 1.0000 假设初始价格都为100,模拟天数为504天,模拟线程为2,程序如下%run.m

蒙特卡洛算法简介

算法简介 蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。蒙特·卡罗方法的名字来源于摩纳哥的一个城市蒙地卡罗,该城市以赌博业闻名,而蒙特·卡罗方法正是以概率为基础的方法。与它对应的是确定性算法。蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。 编辑本段背景知识 [1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also known as the Monte Carlo method.] 1946年,美国拉斯阿莫斯国家实验室的三位科学家John von Neumann,Stan Ulam 和Nick Metropolis共同发明,被称为蒙特卡洛方法。它的具体定义是:在广场上画一个边长一米的正方形,在正方形内部随意用粉笔画一个不规则的形状,现在要计算这个不规则图形的面积,怎么计算列?蒙特卡洛(Monte Carlo)方法告诉我们,均匀的向该正方形内撒N(N 是一个很大的自然数)个黄豆,随后数数有多少个黄豆在这个不规则几何形状内部,比如说有M个,那么,这个奇怪形状的面积便近似于M/N,N越大,算出来的值便越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。蒙特卡洛方法可用于近似计算圆周率:让计算机每次随机生成两个0到1之间的数,看这两个实数是否在单位圆内。生成一系列随机点,统计单位圆内的点数与总点数,(圆面积和正方形面积之比为PI:1,PI为圆周率),当随机点取得越多(但即使取10的9次方个随机点时,其结果也仅在前4位与圆周率吻合)时,其结果越接近于圆周率。摘自《细数二十世纪最伟大的十种算法》CSDN JUL Y译 编辑本段算法描述 以概率和统计理论方法为基础的一种计算方法。将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解。比如,给定x=a,和x=b,你要求某一曲线f和这两竖线,及x轴围成的面积,你可以起定y轴一横线y=c 其中c>=f(x)max,很简单的,你可以求出y=c,x=a,x=b及x轴围成的矩形面积,然后利用随机产生大量在这个矩形范围之内的点,统计出现在曲线上部点数和出现在曲线下部点的数目,记为:doteUpCount,nodeDownCount,然后所要求的面积可以近似为doteDownCounts所占比例*矩形面积。 编辑本段问题描述 在数值积分法中,利用求单位圆的1/4的面积来求得Pi/4从而得到Pi。单位圆的1/4面积是一个扇形,它是边长为1单位正方形的一部分。只要能求出扇形面积S1在正方形面积S中占的比例K=S1/S就立即能得到S1,从而得到Pi的值。怎样求出扇形面积在正方形面积中占的比例K呢?一个办法是在正方形中随机投入很多点,使所投的点落在正方形中每一个位置的机会相等看其中有多少个点落在扇形内。将落在扇形内的点数m与所投点的总数n的比m/n作为k的近似值。P落在扇形内的充要条件是x^2+y^2<=1。

蒙特卡洛方法在中子输运中的应用

《中子输运理论与数值方法》课程作业 ——蒙特卡洛方法

目录 1. 前言 (3) 2. 蒙特卡洛方法概述 (3) 2.1 蒙特卡洛方法的基本思想 (4) 2.2 蒙特卡洛方法的收敛性、误差 (4) 2.2.1 蒙特卡洛方法的收敛性 (4) 2.2.2 蒙特卡洛方法的误差 (5) 2.3 蒙特卡洛方法的特点 (6) 2.4 蒙特卡洛方法的主要应用范围 (7) 3. 随机数 (7) 3.1 线性乘同余方法 (9) 3.2 伪随机数序列的均匀性和独立性 (9) 3.2.1 伪随机数的均匀性 (9) 3.2.2 伪随机数的独立性 (10) 4. 蒙特卡洛方法在粒子输运上的应用 (10) 4.1 屏蔽问题模型 (10) 4.2 直接模拟方法 (11) 4.2.1 状态参数与状态序列 (11) 4.2.2 模拟运动过程 (12) 4.2.3 记录结果 (15) 4.3 蒙特卡洛方法的效率 (16) 5. 蒙特卡洛方法应用程序—MCNP (17) 5.1 MCNP简述 (17) 5.2 MCNP误差的估计 (18) 5.3 MCNP效率因素 (19) 6. 结论 (19)

参考文献 (20) 1.前言 半个多世纪以来,由于科学技术的发展和电子计算机的发明,蒙特卡洛(Monte Carlo)方法作为一种独立的方法被提出来,并首先在核武器的试验与研制中得到了应用。蒙特卡洛方法是一种计算方法,但与一般数值计算方法有很大区别。它是以概率统计理论为基础的一种方法。由于蒙特卡洛方法能够比较逼真地描述事物的特点及物理实验过程,解决一些数值方法难以解决的问题,因而该方法的应用领域日趋广泛。蒙特卡洛模拟计算是解决中子在介质中输运较为成熟、有效的方法,对于原子能、辐射防护、剂量学和辐射生物物理学等研究领域实际问题的计算,都可以利用蒙特卡洛方法予以实现。 粒子输运过程可以用玻耳兹曼方程加以描述,然而,以此基础上发展起来的近似数值方法如扩散近似法、离散坐标方法在处理截面与能量相关以及散射各向异性介质、复杂几何条件问题时碰到了较大困难。而蒙特卡洛方法在处理这类问题时得心应手,有很强的解题能力,并且近似较少,接近于真实情况。 粒子辐射问题计算通常有输运方程法、蒙特卡洛法(MC法)、实验测量法以及经验法等几种方法。蒙特卡洛计算法又称随机抽样法或统计试验法,是基于计算机模拟的思想,抓住物理过程的数量和几何特征,进行数字模拟试验,该方法是求解辐射输运问题的一种相当成熟和有效的方法,而且它对于各种复杂问题,具有良好的通用性,实用性相当广泛,几乎涉及核科学的各个领域。本文主要介绍蒙特卡洛的概念、原理和应用及研究现状。 2. 蒙特卡洛方法概述 蒙特卡洛方法又称随机抽样技巧或统计试验方法。半个多世纪以来,由于科学技术的发展和电子计算机的发明,这种方法作为一种独立的方法被提出来,并首先在核武器的试验与研制中得到了应用。蒙特卡洛方法是一种计算方法,但与一般数值计算方法有很大区别。它是以概率统计理论为基础的一种方法。由于蒙特卡洛方法能够比较逼真地描述事物的特点及物理实验过程,解决一些数值方法难以解决的问题,因而该方法的应用领域日趋广泛。 蒙特卡洛方法的主要组成部分有:

Word基础教程(表格类别)

Word基础教程 字体格式 文字格式主要包括字体、字号、颜色等等,使用格式后文章看起来很整齐,也有利于阅读,下面我们通过一个练习来学习设置文字格式; 1、选择字体 1)启动Word,输入两行文字,“文字格式↙1、字体:宋体、黑体、楷体↙”(↙表示每行输完后按一下回车键); 2)宋体是最常见的字体,默认输入的文字就是宋体; 3)选中文字“黑体”,方法是把鼠标移到“黑”的左边,按住左键不松,拖动“体”的后边,这时候“黑体”两个字就被选中,颜色变成黑色(反白显示); 4)在工具栏的中间找到“宋体”那儿,点一下旁边的下拉按钮,出来下拉列表,在里面找到“黑体”,点击选中,

这时工作区里头选中的文字,它的字体就改成黑体了; 5)同样再选中拖黑“楷体”这两个字,在工具栏中点下拉按钮,选择“楷体_GB2312”,把字体改成楷体; 这样字体修饰就做好了,接下来我们来学习字号的修改; 2、复制文字 1)拖黑选中第二行文字,从“字”拖到最后的“体”,前面的“1、”已经设成自动序号了,由系统来编辑,所以不让选中; 2)把鼠标移到黑色里面,然后点右键,注意瞄准以后再点右键,弹出一个菜单,在“复制”上点一下鼠标左键选择复制命令; 3)再把鼠标移到第三行,在“2、”的后面空白里敲一下鼠标右键,注意瞄准了再点鼠标右键,

4)在弹出的菜单里面,找到“粘贴”命令,单击鼠标左键选择粘贴,这样就把上一行文字复制到这儿了; 5)选中这一行的“字体”改成“字号”,在“宋体”后面点一下左键,加上“一号”、“黑体”后面加上“二号”、“楷体”后面加上“三号”; 3、设置字号 1)拖黑选中“宋体一号”,在工具栏中字体旁边有个“五号”,在它旁边的按钮上点一下;在弹出的下拉列表中,选择“一号”,看一下效果; 2)再拖黑选中“黑体二号”,在工具栏的字号按钮上点一下,选择“二号”,看一下效果; 3)同样把“楷体三号”设成“三号”大小,看一下效果;

第7章 蒙特卡罗方法 (附录)

第7章附录 7.2.1 均匀分布随机数 例题7.2.1计算程序 ! rand1.for program rand1 implicit none real r integer n,c,x,i open(5,file='rand1.txt') n = 32768 c = 889 x = 13 do i = 1,1000 x = c*x-n*int(c*x/n) r = real(x)/(n-1) write(5,'(f8.5)') r end do end !!!!!!rand2.for!!!!! program rand2 implicit none integer, parameter :: n=1000 integer ix,i real r open(5,file='rand2.txt') ix=32765 do i=1,n call rand(ix,r) write(5,'(f8.6)') r end do end program rand2 subroutine rand(ix,r) i=ix*259 ix=i-i/32768*32768 r=float(ix)/32768 return end

7.2.3 随机抽样 例题7.2.2计算程序 % 例题7_2_2.m figure(1); set(gca,'FontSize',16); t = rand(1000,1); y = -log(t); z = exp(-y); plot(y,z,'.'); xlabel('图7.2-2 例题7.2.2-指数分布抽样') ==================================================== 例题7.2.5计算程序 ! 例题7.2.5 program scores parameter(nmax=10,mmax=13) real(8) x(nmax),y(nmax),l(0:nmax),z(mmax),ys(mmax),r integer i,j,k data x/5.0,15.0,25.0,35.0,45.0,55.0,65.0,75.0,85.0,95.0/ data y/0,0,0,0,0.08,0.19,0.31,0.27,0.11,0.04/ open(2,file='scores_old.txt') open(5,file='scores_new.txt') ! mmax个抽样学生成绩 open(7,file='scores_sample.txt') write(2,'(2f15.5)') (x(i),y(i),i=1,nmax) ix=32765 l(0)=0 do i=1,nmax l(i)=l(i-1)+y(i) end do do j=1,mmax call rand(ix,r) do k=1,nmax if(r.le.l(k)) goto 11 end do 11 z(j)=x(k) end do write(5,*) (z(i),i=1,mmax) ys=0 do i=1,mmax k=z(i)/float(nmax) ! 确定抽样学生所在的分数段