蒙特卡罗方法及其在军事中的应用

更新时间:2023-06-09 07:15:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

南 京 理 工 大 学

近代数学课程设计

作 者: 学院(系): 专 业: 题 目:

鲁佳 学 号: 0811080105 理学院 信息与计算科学

蒙特卡罗方法及其在军事中的应用

指导教师: 陈萍

蒙特卡罗方法及其在军事中的应用

摘要:简单介绍了蒙特卡罗方法的基本思想及原理、用蒙特卡罗方法求积分的方法以及其误差、用蒙特卡罗方法解题的一般思路。然后综述蒙特卡罗方法在军事中的应用,着重介绍了用蒙特卡罗方法求射击椭圆面目标必需导弹数,给出了其基本思路、模拟框图和两个算例,并做出了结果分析。

关键字:蒙特卡罗方法 基本思想 原理 优点 解题思路 导弹 毁伤面积 必需发射导弹数 椭圆面目标

一、 蒙特卡罗方法概述

蒙特卡罗方法又称统计模拟法、随机抽样技术,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性地表明这一方法的概率统计特征,故借用赌城蒙特卡罗命名。由于蒙特卡罗方法能够比较逼真地描述事物的特点及物理实验过程,解决一些数值方法难以解决的问题,因而该方法的应用领域日趋广泛。

1、 蒙特卡罗方法的基本思想及原理

为了说明蒙特卡罗方法的基本思想,先看以下两个例题。 例一:蒲丰氏问题

值,在十九世纪后期,有很多人做了这种试验:将长为为了求得圆周率

2l的一根针任意投到地面上,用针与一组相间距离为2a(l<a)的平行线

2l

相交的频率代替概率P,再利用准确的关系式,求出 值。 P

a

2l2lN ()

aPan

其中N为投针次数,n为针与平行线相交次数。这就是古典概率论中著名的蒲丰氏问题。

例二:射击问题

设r表示射击运动员的弹着点到靶心的距离,g(r)表示击中r处相应的得分数(环数),f(r)为该运动员的弹着点的分布密度函数,它反映运

g(r)f(r)dr动员的射击水平。该运动员的射击成绩为<g>= 0

用概率语言来说,<g>是随机变量g<r>的数学期望,即<g>=E[g(r)]

r1,r2,...rN现假设该运动员进行了N次射击,每次射击的弹着点依次为

1N

gN g(ri)rN的算术平均值则N次得分g( ),g( ),r1r2…g( )

Ni 1

代表了该运动员的成绩。换言之,gN为积分<g>的估计值,或近似值。

在该例中,用N次试验所得成绩的算术平均值作为数学期望<g>的估计

值(积分近似值)。

1.1基本思想

由以上两个例子可以看出,(1)当所求问题的解是某个事件的概率,或者是某个随机变量的期望,或与概率、数学期望有关的量时,通过某种试验的方法,得出该事件发生的频率,或该随机变量若干个观察值的算术平均值,根据大数定律得到问题的解;(2) 要生成分布函数为F(x)的随机数,可先生成U(0,1)随机数F,则可得到随机数X=F-1(F) 。

1.2原理

由概率定义知,某事件的概率可以用大量试验中该事件发生的频率来估算,当样本容量足够大时,可以认为该事件的发生频率即为其概率。因此,可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。蒙特卡罗法正是基于此思路进行分析的。

设有统计独立的随机变量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→∞时,根据伯努利大数定理及正态随机变量的特性有:结构失效概率,可靠指标。

从蒙特卡罗方法的思路可看出,该方法回避了结构可靠度分析中的数学困难,不管状态函数是否非线性、随机变量是否非正态,只要模拟的次数足够多,就可得到一个比较精确的失效概率和可靠度指标。

2、 蒙特卡罗方法的收敛性与误差

蒙特卡罗方法作为一种计算方法,其收敛性与误差是普遍关心的一个重要问题。 2.1收敛性

蒙特卡罗方法是由随机变量X的简单字样X1,X2,…,XN的算术平均值

1N

XN Xi作为所求解的近似值。由大数定律可知,如X1,X2,…,XN独

Ni 1

E(X)) 1立同分布,且具有有限期望值(E(X)< ),则 P(N N

1N

即 P( Xi E(X)) 1N

Ni 1

这表明,当随机变量X的字样数N充分大时,其均值以概率1收敛与它的期望值。

2.2误差

根据中心极限定理如果随机变量序列X1,X2,…,XN独立同分布,且具有有限非 零的方差σ2 ,即 0 2 (x E(X))2f(x)dx

N 1x t2/2 则 limPN E(X) x edt x 2 N

z t2/2

当N充分大时,有如下的近似式 P N E(X) edt 1 0

它表明,误差收敛速度的阶为 以概率1-α成立。 O(N

1/2) 通常,蒙特卡罗方法的误差ε定义为

关于蒙特卡罗方法的误差需说明两点:

第一,蒙特卡罗方法的误差为概率误差,这与其他数值计算方法是有区别的。 第二,误差中的均方差σ是未知的,必须使用其估计值

1N21N

。 Xi ( Xi)2来代替,在计算所求量的同时,可计算出 Ni 1Ni 1

2.3减小方差的各种技巧

显然,当给定置信度α后,误差ε由σ和N决定。要减小ε,或者是增大N,或者是减小方差σ2。在σ固定的情况下,要把精度提高一个数量级,试验次数N需增加两个数量级。因此,单纯增大N不是一个有效的办法。降低方差的各种技巧,引起了人们的普遍注意。

一般来说,降低方差的技巧,往往会使观察一个子样的时间增加。在固定时间内,使观察的样本数减少。所以,一种方法的优劣,需要由方差和观察一个子样的费用(使用计算机的时间)两者来衡量。这就是蒙特卡罗方法中效率的概念。

2 c它定义为

其中c是观察一个子样的平均费用。

3、 蒙特卡罗方法的优点

(1) 能够比较逼真地描述具有随机性质的事物的特点及物理实验过程

从这个意义上讲,蒙特卡罗方法可以部分代替物理实验,甚至可以得到物理实验难以得到的结果。用蒙特卡罗方法解决实际问题,可以直接从实际问题本身出发,而不从方程或数学表达式出发。它有直观、形象的特点。

(2) 受几何条件限制小

Ds上的积分 在计算s维空间中的任一区域

Ds... g(x1,x2,...xs)dx1dx2...dxs时,

Ds的形状多么特殊,Ds的几何特征的条件,无论区域 只要能给出描述 就可以从

(i)

Ds中均匀产生N个点( x1(i),x2...xs(i)),i=1,…,N,得到积分的近似值

gN

D s

N

, x ... x )其中 D 为区域 D 的体积。这是数值方法难 g( x

(i)1

(i)2

(i)s

N

ss

i 1

以做到的。

另外,在具有随机性质的问题中,如考虑的系统形状很复杂,难以用一般数值方法求解,而使用蒙特卡罗方法,不会有原则上的困难。

(3) 收敛速度与问题的维数无关

1/2

O(N ()由前面可知,在已给置信水平下,蒙特卡罗方法的收敛速度为假

设具有有限且异于零的方差),与问题本身的维数无关。维数的变化,只引起抽样时间及估计量计算时间的变化,不影响误差。也就是说,使用蒙特卡罗方法时,抽取的字样总数N与维数S无关。维数的增加,除了增加相应的计算量外,不影响问题的误差。这一特点,决定了蒙特卡罗方法对多维问题的适应性。而一般数值方法,比如计算定积分时,计算时间随维数的幂次方而增加,而且,由于分点数与维数的幂次方成正比,需占用相当数量的计算内存,这些都是一般数值方法计算高维积分时难以克服的问题。

(4) 具有同时计算多个方案与多个未知量的能力

对于那些需要计算多个方案的问题,使用蒙特卡罗方法有时不需要像常规方法那样逐个计算,而可以同时计算所以的方案,其全部计算量几乎与计算一个方案的计算量相当。例如,对于屏蔽层为均匀介质的平板几何,要计算若干种厚度的穿透概率时,只需计算最厚的一种情况,其他厚度的穿透概率在计算最厚一种情况时稍加处理变可同时得到。

另外,使用蒙特卡罗方法还可以同时得到若干个所求量。例如,在模拟粒子输送过程中,可以同时得到不同区域的通量。能谱、角分布等,而不像常规方法那样,需要逐一计算所求量。 (5) 误差容易确定

对于一般计算方法,要给出计算结果与真值的误差并不是一件容易的事情,而蒙特卡罗方法则不然。根据蒙特卡罗方法的误差公式,可以在计算所求量的同时计算出误差,对于很复杂的蒙特卡罗方法计算问题,也是容易确定的。 一般计算方法常存在着有效位数损失问题,而要解决这一问题有时相当困难,蒙特卡罗方法则不存在这一问题。

(6) 程序结构简单,易于实现

在计算机上进行蒙特卡罗方法计算时,程序结构简单,分块性强,易于实现。

二、 蒙特卡罗方法解题的一般手续

蒙特卡罗方法解题是以一个概率模型为基础的,按照这个概型所描绘的过程,通过部分模拟实验的结果,作为问题的近似解。可以把用蒙特卡罗方法解题,归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。

1、构造或描述概率过程

对于本身就具有随机性质的问题,如粒子输送问题,主要是正确地描述和模拟这个概率过程。对于本身不是随机性质的确定性问题问题,比如计算定积分,

解线性方程组、偏微分方程边值等,要用蒙特卡罗方法求解,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题,转换为随机性质的问题。这构成了蒙特卡罗方法研究与应用上的重要问题之一。

概率模型可以是简单的、直观的,也可以是复杂的、抽象的,取决于所解的问题。它可以是一个离散随机变量构成的概率模型(如检验产品时,只有正品和次品两种可能性),也可以是一个连续性的随机变量(如弹着点r);可以是一个随机变数组成的过程,也可以是由多个随机变数构成的概率模型;可以是由一个随机变数序列构成的过程;也可以是由随机函数构成的更复杂的概率模型。概率模型的复杂程度决定了蒙特卡罗计算的复杂程度。

2、实现从已知分布抽样

由于各种概率模型,都可以看做是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段。所以,蒙特卡罗方法有人就称作随机抽样技巧。

3、建立各种估计量

一般说来,构造了概率模型并能从中抽样后,即能实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解的估计量。如果这个随机变量的期望值正好是所求问题的解,我们称它为无偏估计。

建立各种估计量,相当于对模拟实验的结果,进行考察和登记,从中得到问题的解。在蒙特卡罗计算中,使用最多的是无偏估计。

三、 蒙特卡罗方法在军事中的应用 1、

问题的实际背景

由于军事中很多数据收集比较麻烦,加上很多的军事不能多次进行实验甚至不能进行实验,所以蒙特卡罗方法在军事的应用非常广泛。比如:基于蒙特卡罗法的防空兵战斗行动模拟、基于蒙特卡罗法的舰船装备战备完好性仿真、基于蒙特卡罗法的战时装备维修工作量分布规律研究、基于蒙特卡罗方法求取故障导弹飞行落点概率方法研究、利用蒙特卡罗法评定火箭炮对岸射击效能等等。本文就射击椭圆面目标必需导弹数的蒙特卡罗模拟计算进行研究,介绍其问题的实际背景,蒙特卡罗方法的具体实施方案以及所解决的问题。通过这个例子了解蒙特卡罗方法在军事的应用。

椭圆形面目标是一类重要的战略目标,而计算发射导弹数是导弹武器火力运用中的重要问题之一。在以往的火力运用实践中,为使问题简化,常将椭圆目标近似成圆形目标,而且为使近似后所计算得发射导弹数仍能满足对椭圆目标的打击要求,所构造的圆形目标的圆半径总是不小于椭圆目标的长半轴,也就是说近似圆形目标总是大于真实椭圆目标的面积。因此在毁伤效率指标不变的情况下,所计算出的发射导弹数多于实际需要。从效费的观点来看,这是一种浪费。为了克服这种不足,本文提出了一种用于计算对椭圆目标发射导弹数的蒙特卡罗模拟

方法。该方法不对目标形状作二次近似,因而是一种更为精确的方法。

2、 蒙特卡罗方法的具体实施方案

2.1多导弹射击椭圆面目标时毁伤面积的计算

设对椭圆形面目标发射N枚威力相同的导弹,由于各枚导弹毁伤区域之间在重叠,因而不能采用将各枚导弹毁伤面积累加的方法计算N枚导弹总的毁伤面积,以避免重复累计。为此,我们采用分块计算方法。

设椭圆形面目标的抗力分布均匀,其长半轴为a,短半轴为b,导弹的破坏半径为 ,Rn落点服从二维正态分布。以椭圆目标的中心O为坐标原点,建立两个平面直角坐标系,分别为XOY坐标系和X’OY’坐标系,其中XOY坐标系的Y轴正向与导弹的射向一致,X’OY’坐标系的X’轴和Y’轴分别与椭圆的长半轴和短半轴重合(如图1所示)。设各枚导弹精度和瞄准点相同,则在XOY坐标系

xmz,ymz)落点沿X轴和Y轴方向的概率偏差分中,可令导弹瞄准点坐标均为(

别为 ,则导弹Ex,Ey,系统偏差为 y0(当不考虑系统偏差时, =0x0和 x0 y0)落点坐标(X,Y)的概率密度函数为

2

(y y0)2 22(x x0)P(x,y) exp{ [ ]}(1) 22

ExEy2Ex2Ey

其中 0.477。 ’

X’

为了实现分块计算,先作椭圆目标的外切矩形,然后将该矩形分块,方法如

xi',yi'

下:在X’OY’坐标系中,沿X’轴将椭圆目标的外切矩形划分为2n等分,再沿Y’轴划分为2m等分,这样该矩形被划分为4nm个小矩形块。设小矩形块的中心点坐标为( )(i=1,2,…,2n;j=1,2,…,2m),则: aa

a (i 1) ,i n n2nxi'

(i n)a a,i n

n2n

bb b

(j 1) ,j m 2m2myi'

bb (j m) ,j m

m2m

任一小矩形块地面积显然为ab/nm。

xi',yi')为了 下面模拟计算得需要,还必须把X’OY’坐标系中的(

(i=1,2,…,2n,j=1,2,…,2m)及椭圆目标的周线方程 x'2/a2 y'2/b2 1转换到XOY坐标系,可通过坐标旋转计算来实现。

设X’OY’坐标系与XOY坐标系之坐标轴夹角为 ,即射向与椭圆目标短半

/2)则在XOY坐标系中小矩形块中心点坐标轴夹角为 (0 ( xi,yi)为:

xi'2'2'2x x ysin(arccos ) i ii

'2'2xi yi

'2

y(2) i

yi xi'2 yi'2 )

xi'2 yi'2

sin2(arcsin

xx

)cos2(arcsin ) ] 1 2

b

在XOY坐标系中椭圆方程为:r2[

a2

(3) 式中r x2 y2。

至此,我们得到计算N枚导弹总的毁伤面积的蒙特卡罗模拟算法如下。 (1)设置一个计数器K,首先置零,即K:=0;再设置一个毁伤面积累加器Sm,先将其置零,即Sm :=0。此外,为每一个小矩形块设置一个毁伤标志量B(i,j)(i=1,2,…,2n;j=1,2,…,2m),某个小矩形块的B(i,j)=0,则表示该小矩形块未被毁伤,B(i,j)=1则表示已被毁伤且已计入总毁伤中。首先应将所有的B(i,j)置零。

(2)将K累加1,即K:=K+1,产生一个概率密度为式(1)的二维正态分布随机数(xdk,ydk),以模拟第K枚弹的落点坐标。

(3)对i和j循环,分别计算每个小矩形块中心与第K枚导弹落点的平面距离:

rij (xi xdk)2 (yj ydk)2。

(4)对每个小矩形块进行考察,以进行毁伤面积累计。事实上是作以下多重判断:首先判断小矩形块是否位于椭圆面目标内部,方法是,由(2)式计算小矩形块中心在XOY坐标系中的坐标(xi,yj),并据此计算小矩形块中心点(xi,yj)与坐标原点的平面距离rij',公式为rij' xi2 y2j

(xi,yj)点与原点的连线方程为:y=yjx/xi (4)

将(4)式化为(3)式,可解得该连线与椭圆目标周界的两个交点坐标。根据椭圆的 对称性可知,这两个交点与原点距离相等,选其中任一个交点坐标可算得交点与原点的距离,设为Lij。若rij' Lij,则中心点坐标为 (xi,yi)的小矩形块属于椭圆目标。否则,不属于椭圆目标。

当小矩形块属于椭圆目标时,判断其是否被毁伤。若rij Rn,则该矩形块被毁伤。此时,若B(i,j)=1,则不作累加;若B(i,j)=0,则作毁伤面积累加,即

Sm: Sm ab/nm,同时将B(i,j)赋值为1.若rij Rn,则表示该矩形块未被毁

伤,则不作任何处理,转而对下一矩形块作考察。 当小矩形块不属于椭圆目标时,无须进一步作毁伤判断,直接对下一个小矩形块作检验。重复以上过程,直到所有小矩形块均被考察完毕为止。

(5)判K<N是否成立,若成立,则转至步骤(2)。否则,当前的Sm值即为N枚导弹的毁伤面积,计算结束。

由于导弹落点是随机的,因此N枚导弹总的毁伤面积是一个随机值。当采用上述算法进行一次模拟计算时,所得到的只是毁伤面积的一次模拟值,多次模拟计算可得到N枚平均毁伤面积。

由于模拟次数直接影响模拟结果的精度,因此在用蒙特卡罗方法计算N枚导弹平均毁伤面积时,必须正确选择模拟次数ml,既不使计算量过大,又能满足精度要求。确定模拟次数ml的方法如下:

(1) 根据经验粗略地确定一个模拟次数ml’;

(2) 用蒙特卡罗方法对N枚导弹总的毁伤面积Sm(随机变量)进行ml’次模

拟计算,得到模拟值Si(i=1,2,…,ml’); (3) 通过Si估计Sm的方差Sx

1Sx '

ml

S

i 1

ml'

2i

S

.2m

式中S

.2m

1ml' Si ml'i 1

(4)确定模拟的次数ml,公式为ml 4Sx/Es2 式中Es为精度要求(误差限)。

2.2射击椭圆面目标时必需导弹数的蒙特卡罗模拟计算

由于导弹落点的随机性,多导弹对椭圆目标的毁伤面积实际上是一个随机值。在导弹武器的火力运用中,对椭圆目标射击的毁伤效率指标一般取为平均相对毁伤面积,即平均毁伤面积Sm与目标总面积S之比,实际上这是一个百分比U。所谓必需发射导弹数是指在U给定的情况下,为满足预定的打击要求(即平均相对毁伤面积不小于U)的应发射的导弹数。用蒙特卡罗模拟方法计算对椭圆目标射击的必需发射导弹数的基本思想是:在作战信息充分的条件下,确定一个必需发射导弹数的范围,即取值区间,设为[N1,N2],然后从N1开始,每次增加1枚,分别用蒙特卡罗方法计算发射导弹数为N1,N1+1,N1+2,…时的平均相对毁伤面积,直到此面积满足预定的作战要求为止。这时与之相对应的发射导弹数即为必需发射导弹数。若作战信息不充分,不能预知必需发射导弹数所在的区间,可令N1=1。由于发射导弹数总是有限的,且不会太大,因此这样做也是可行的。用蒙特卡罗方法计算必需发射导弹数的模拟框图如图2所示。

2.3算例及分析

2.3.1算例

例1:设a=30km,b=20km,Rn=9.5km,Ex Ey=2km,U=35%,xmz ymz=0,即各枚

导弹均瞄准目标中心射击。计算结果:N=4(枚)。

例2:设a=30km,b=20km,Rn=9.5km,Ex Ey=2.5km,U=35%,xmz ymz=0,即各

枚导弹均瞄准目标中心射击。计算结果:N=3(枚)。

图2 M-C模拟框图

3、所解决的问题

(1)在实际作战中,标准的椭圆目标是很少见的,将目标抽象为椭圆实际上是为了处理问题方便而作的简化和近似。这种近似依据以下原则:不因目标形状近似而使计算出的发射导弹数增加。具体作法是:所构造的椭圆目标应覆盖原来的真实目标,因此而增加的目标面积不能超过1枚导弹的毁伤面积。若不能满足此要求,则该目标不能抽象为椭圆形。

(2)本文所提出的方法虽然是针对椭圆目标,但具有普遍意义,算法的思想及主要步骤同样适用于不能抽象为椭圆的任意形状面目标,只是由于任意面目标可能不具备几何上的对称性,因而在目标分块及毁伤面积统计模拟德尔具体实现上需作改动并略具复杂性,仅此而已。

参考文献:

【1】 射击椭圆面目标必需导弹数的蒙特卡罗模拟据算 汪民乐 高晓光 战术导

弹技术1999年第一期

【2】 徐钟济.蒙特卡罗法.上海:科学出版社,1989

【3】 方再根.计算机模拟和蒙特卡罗方法.北京:北京工业学院出版社,1989

本文来源:https://www.bwwdw.com/article/k821.html

Top