计算物理 蒙特卡罗方法基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
O
1
x
这时我们可以随机地向正方形内投点, 这时我们可以随机地向正方形内投点 , 最后统计落 在曲线下的点数M, 当总的掷点数N充分大时 充分大时, 在曲线下的点数 , 当总的掷点数 充分大时 , M/N就 就 近似等于积分值I。 近似等于积分值 。
19
直接蒙特卡罗方法的思想 直接蒙特卡罗方法的思想
σ=
p(1 − p) / n
σπ =
π2
2
p(1 − p ) / n = 2.37 / n
11
π
的标准误差
σπ =
π2
2
p(1 − p ) / n = 2.37 / n
这意味着试验所得的值的不确定性的范围如下: 这意味着试验所得的值的不确定性的范围如下: 不确定性的范围如下 次投针为, 对100次投针为, 次投针为 次投针为, 对10,000次投针为, 次投针为 0.2374 0.0237
在该例中, 次试验所得成绩的算术平均值 在该例中 , 用 N次试验所得成绩的 算术平均值 作为数 次试验所得成绩的 算术平均值作为数 学期望<g>的估计值(积分近似值)。 的估计值( 学期望 的估计值 积分近似值)
8
例2 圆周率的数值计算 -- 间接蒙特卡洛方法 巴夫昂(Buffon) (Buffon)投针实验 (1) 巴夫昂(Buffon)投针实验
该方法是按照实际问题所遵循的概率统计规律, 该方法是按照实际问题所遵循的概率统计规律,用计 算机进行直接的抽样试验,然后计算其统计参数。 算机进行直接的抽样试验,然后计算其统计参数。
间接蒙特卡罗方法的思想s 间接蒙特卡罗方法的思想s 蒙特卡罗方法的思想
当问题可以抽象为某个确定的数学问题时, 当问题可以抽象为某个确定的数学问题时, (1)首先建立一个恰当的概率模型,即确定某个随机事件 或 首先建立一个恰当的概率模型 首先建立一个恰当的概率模型,即确定某个随机事件A或 随机变量X, 随机变量 ,使得待求的解等于随机事件出现的概率或随 机变量的数学期望值。 机变量的数学期望值。 (2)然后进行模拟实验,即重复多次地模拟随机事件 或随机 然后进行模拟实验 然后进行模拟实验,即重复多次地模拟随机事件A或随机 变量X。 变量 。 (3)最后对随机实验结果进行统计平均,求出A出现的频数或 最后对随机实验结果进行统计平均,求出 出现的频数或 最后对随机实验结果进行统计平均 X的平均值作为问题的近似解。 的平均值作为问题的近似解。 的平均值作为问题的近似解
对1,000,000次投针为, 0.0024 次投针为, 次投针为 可见,增加模拟的次数可以减小误差, 可见,增加模拟的次数可以减小误差,但不可消除误差。 可消除误差。
12
前人进行了实验, 前人进行了实验,其结果列于下表 :
实验者 沃尔弗(Wolf) 沃尔弗 斯密思(Smith) 斯密思 福克斯(Fox) 福克斯 拉查里尼 (Lazzarini) 年份 1850 1855 1894 1901 投计次数 5000 3204 1120 3408 π的实验值 的实验值 3.1596 3.1553 3.1419 3.1415929
15
投点法实验程序流程图 投点法实验程序流程图
n < n max
Yes
n = n+1
产生随机数 ξ 1 , ξ 2
x = Lξ 1 , y = Lξ 2
r =x +y ≤L
2 2 2 2
Yes
M = M +1
4M ) 计算π = dble( N
16
program main use freconstant use randomname implicit none integer nmax,m integer i,ncount real*8 lenr,lens,lenr2 real*8 x,y,dxy2 open(10,file='Pi.dat') call randomval() lenr=1.0d0 lens=2.0d0*lenr lenr2=lenr*lenr m=0 ncount=0 write(*,*)"Input nmax:" read(*,*)nmax
投点法实验源程序 投点法实验源程序 do i=1,nmax call randomnum() x=lenr*(rand-0.5d0)*2.0d0 call randomnum() y=lenr*(rand-0.5d0)*2.0d0 dxy2=x*x+y*y if ( dxy2 .le. lenr2 ) then m=m+1 end if ncount=ncount+1 if (mod(ncount,100) .eq. 0 ) then write(10,"(I10,F15.6)")ncount, 4.0d0*dble(m)/dble(ncount) end if end do 17 end
(3)离散型模拟方法 -- 元胞自动机等
1
2-1 蒙特卡罗方法的基础知识
What is a Monte Carlo method ?
the Comte de Buffon needle experiment, AD 1777 S S S L
2
蒙特卡洛方法的起源
Stanislaw Ulam (1909-1984)
2 S circle πL π p= = 2 = S square ( 2 L) 4
14
投针实验的误差分析 投针实验的误差分析 实验的误差
2
π
π
的标准误差 的标准误差
σ=
p(1 − p) / n
σπ =
π
2
2
p(1 − p ) / n = 2.37 / n
投点实验的误差分析 投点实验的误差分析
π
4
平均成绩
1 gN = N
920 ∑ g( ri ) = 100 = 9.2 i =1
7
表示射击运动员的弹着点到靶心的距离, 设 r表示射击运动员的弹着点到靶心的距离,g(r)表示 表示射击运动员的弹着点到靶心的距离 表示 击中r处相应的得分数 环数) 处相应的得分数( 击中 处相应的得分数(环数),f(r)为该运动员的弹着点 为该运动员的弹着点 分布密度函数, 它反映运动员的射击水平。 的 分布密度函数 , 它反映运动员的射击水平 。 该运动员 的射击成绩为
6
射击问题(打靶游戏) 例1 射击问题(打靶游戏)-- 直接蒙特卡洛方法
现假设该运动员进行了N次射击 , 每次射击的弹着点依 现假设该运动员进行了 次射击, 次射击 次为r 次得分g(r , 次为 1,r2,…,rN,则N次得分 1),g(r2),…,g(rN)的算 , 次得分 , , 的算 术平均值 N
针的投影长度 L cos α S
L cos α 确定的 α , p= 相交的概率 s
= cos α
α
A B
0≤α ≤π
cos α
的平均值 =
1
π
∫
π
0
M cos α dα = = π N 2
假如在N次投针中, 次和平行线相交。 充分大时, 假如在 次投针中,有M次和平行线相交。当N充分大时, 次投针中 次和平行线相交 充分大时 就近似为细针与平行线相交的概率。 相交的频数 M/N就近似为细针与平行线相交的概率。 就近似为细针与平行线相交的概率
结果和 结果和分析
(1) 总计投点 ×105次 总计投点1.0× (2) 该算法收敛, 该算法收敛, 计算值平均值为3.1392 计算值平均值为
σ = 1.6422 / n
π = 3.1392 ± 1.6422 / n
18
例3 定积分计算
I=
∫
1
0
f ( x )dx
y 1
0≤ x≤1 0≤ y≤1
的标准误差 σ =
p(1 − p) / n
S circle π p= = S square 4
π 的标准误差 σ = 4
p(1 − p ) / n = 4 × 0.4155 / n = 1.6422 / n
次投针为, 0.1642 对100次投针为, 次投针为 次投针为, 0.0164 对10,000次投针为, 次投针为 次投针为, 对1,000,000次投针为, 0.0016 次投针为
1 gN = N
∑ g(r )
i =1 i
代表了该运动员的成绩。换言之, <g>为积分的估计值, 代表了该运动员的成绩。 换言之, 为积分的估计值, 为积分的估计值 或近似值。 或近似值。 环数 假设射击100次, 次 假设射击 击中次数 概率
N
7 10 0.1
8 10 0.1
9 30 0.3
10 50 0.5
< g >= ∫ g( r ) f ( r )dr
0
∞
用概率语言来说, ( ) 是随机变量, <g>的数学期望 的数学期望, 用概率语言来说, g(r) 是随机变量, < >的数学期望,即
< g >= E [g(r )] = 7 * 0.1 + 8 * 0.1 + 9 * 0.3 + 10 * 0.5
2N π= M
10
经过n次投针后得到 值的精度 经过 次投针后得到π值的精度 次投针后得到 针与平行线相交的概率 p =
2
π
相交和不相交
针与平行线相交的次数应满足二项式分布 针与平行线相交的次数应满足二项式分布 其期望值为 np
2
π
2
的方差
σ 2 = p(1 − p) / n
π
π
的标准误差 的标准误差
5
一 基本思想
直接蒙特卡洛模拟法: 直接蒙特卡洛模拟法: 对求解问题本身就具有概率和统计性的情况。 对求解问题本身就具有概率和统计性的情况。 中子在介质中的传播,核衰变过程等, 如:中子在介质中的传播,核衰变过程等, 思想是按照实际问题所遵循的概率统计规律 是按照实际问题所遵循的概率统计规律, 思想 是按照实际问题所遵循的概率统计规律,用计算 机进行直接的抽样试验,然后计算其统计参数。 直接的抽样试验 机进行直接的抽样试验,然后计算其统计参数。 该方法也就是通常所说的“计算机实验” 该方法也就是通常所说的“计算机实验”。 间接蒙特卡洛方法: 间接蒙特卡洛方法: 蒙特卡洛方法也可以人为地构造出一个合适的概率模 依照该模型进行大量的统计实验,使它的某些统计参 型,依照该模型进行大量的统计实验,使它的某些统计参 正好是待求问题的解。 量正好是待求问题的解。
Nicholas Metropolis (1915-1999)
3
The Name of the Game
Monte-Carlo, Monaco
Metropolis coined the name “Monte Carlo”, from its gambling casino.
4
从蒙特卡洛模拟的应用来看 从蒙特卡洛模拟的 应用来看, 该类型的应用可以分为三 应用 来看, 种形式: 种形式: (1)直接蒙特卡洛模拟。 )直接蒙特卡洛模拟。 它采用随机数序列来模拟复杂随机过程的效应。 它采用随机数序列来模拟复杂随机过程的效应。 (2)蒙特卡洛积分。 )蒙特卡洛积分。 这是利用随机数序列计算积分的方法。 这是利用随机数序列计算积分的方法。积分维数越 高,该方法的积分效率就越高。 该方法的积分效率就越高。 (3)Metropolis蒙特卡洛模拟 ) 蒙特卡洛模拟 这种模拟是以所谓“ 马尔科夫” 这种模拟是以所谓 “ 马尔科夫 ” ( Markov) 链的 ) 形式产生系统的分布序列。 形式产生系统的分布序列 。 该方法可以使我们能够研究 经典和量子多粒子系统的问题。 经典和量子多粒子系统的问题。
计算机模拟方法
随机性模拟方法或统计试验方法 性模拟方法或统计试验方法, (1) 蒙特卡洛方法 : 随机 性模拟方法或统计试验方法 , 又称蒙特卡洛(Monte Carlo)方法。它是通过不断产生随机 方法。 又称蒙特卡洛 方法 它是通过不断产生随机 序列来模拟过程 来模拟过程。 数 序列 来模拟过程 。 自然界中有的过程本身就是随机的过 物理现象中如粒子的衰变过程、 程 , 物理现象中如粒子的衰变过程 、 粒子在介质中的输运 过程...等 过程 等 。 当然蒙特卡洛方法也可以借助概率模型来解决 不直接具有随机性的确定性问题。 不直接具有随机性的确定性问题。 确定性模拟方法 性模拟方法。 (2) 分子动力学方法 : 确定 性模拟方法 。 它是通过数值 求解一个个的粒子运动方程来模拟整个系统的行为。 求解一个个的粒子运动方程来模拟整个系统的行为 。 在统 计物理中称为分子动力学( 计物理中称为分子动力学(Molecular Dynamics)方法。 )方法。
实验方案: 实验方案: 在平滑桌面上划一组相距为s的平行线 的平行线, 在平滑桌面上划一组相距为 的平行线 , 向此桌面随 意地投掷长度l的细针 的细针, 意地投掷长度 的细针,那末从针与平行线相交的概率就 可以得到π的数值 的数值。 可以得到 的数值。 S S S L
9
数学统计理论计算: 数学统计理论计算:
13
பைடு நூலகம்
(2) 投点法实验
实验方案: 实验方案: 在平滑桌面上划正方形,同时划一内切圆, 在平滑桌面上划正方形,同时划一内切圆, 向此正方 形随意地投点,那末投点落在圆内的概率就可以得到的π 形随意地投点,那末投点落在圆内的概率就可以得到的 数值。 数值。 2L 任意投点落在圆内的概率 任意投点落在圆内的概率 投点