概率统计方法模型(上)
的变化趋势如图 6.1.1 和图 6.1.2 所示。可见被感染人数随
着病人数量的增大而增大,直到病人数量占总人群数量的一半时达到最大,随后呈下降趋势。随着 病人人口的增加每天被感染人数的相对误差一直呈减少趋势,尤为明显的是病人数量增长的前期, 相对误差急剧减少。
图 6.1.1 平均每天被感染人数的趋势图
k=r k=r
(6.1.7)
注意到每个生蛋发育成小企鹅是相互独立的,且发育成小企鹅的概率为 p,因此, P ( =r =k ) 实 际上反映了有 k 个生蛋,每个生蛋独立发育,恰好发育成 k 个企鹅的概率。显然,它是一个伯努利 试验,因而
P( =r =k )=Ckr p r (1 p ) k r
图 6.1.2 平均每天被感染人数的相对误差趋势
R 编程如下: crb <- function(m, n=10000, p=0.1, k=18) { u<-(m*(n-m)*p*k)/(n-1);u }
# 函数
m<-1:10000 plot(1:10000,crb(m), xlab="m", ylab="平均每天被的传染人数",type="l", col="blue") crb1 <- function(s, n=10000, p=0.1, k=18) #相对误差函数 { miugama<-((n-1-m*p*k)/((n-m)*m*p*k))^0.5;miugama } m<-1:6000 plot(1:6000,crb1(m), xlab="m", ylab="相对误差",type="l", col="red") (2)企鹅繁殖模型 企鹅的繁殖过程是一个典型的随机不确定模型。首先,每只母企鹅下蛋的数量是随机的,服从 泊松分布,其次,每个企鹅蛋是否可以成功孵化也是不确定的。针对这一问题,我们在合理假设的 基础上,建立概率模型,求企鹅后代个数的期望值。 根据人们的统计,企鹅生蛋的个数 是服从参数为 的泊松分布,即
k=r
k 0
( p ) r e - r!
( p ) r e- (1 p ) e r! ( p ) r p e r!
得到企鹅后代的个数 服从参数为 p 的泊松分布,从而企鹅后代个数的期望值为 p 。也说明了 企鹅后代的个数与生蛋的个数以及发育成功的概率成正比。 6.1.2 Monte Carlo 模拟
表 6.1.1 n 取值 300 3.0533
π 的估计值列表
3000 3.1680 5000 3.1568 10000 3.1404
1000 3.1080
π
例 6.1.1 求定积分 I =
e
0
1
x2
dx ,被积函数如下图。
图 6.1.2 被积函数图像
解:因为该积分不能直接求解,这里采用 mento carlo 模拟来求解,见图
图 6.1.1 Monte Carlo 对 的估计
在边长为 1 的正方形内, 等概率的产生 n 个随机点 (xi , yi ) , i = 1, 2, , n 。 这样 xi 和 yi 就是 (0,1) 上均匀分布的随机数。 当 n 个点中有 k 个点落在四分之一圆内, 既有 k 个点满足关系式:xi +yi 1 ,
P( =k )=
k
k!
e-
(6.1.6)
而每个生蛋能发育成企鹅的概率为 p,且每个生蛋能否发育成企鹅是彼此独立的随机事件。令 代 表企鹅后代的个数,且有 。可见 取非负的整数值 0, 1, 2, …,对于 P{ =r} 的概率,我们利 用全概率公式
P( =r )= P( =r, =k ) = P ( =r =k )P( =k )
=sp2 =
通过式(6.1.4)可以看出平均每天被感染的人数与 s、m、p 和 k 之间的关系。进而可以度量平均每 天被感染人数的相对误差即
( ) n mpk = smpk
(6.1.5)
由式(6.1.4)可以看出,对于健康人群来说,每天平均被感染的人数与人群中每人每天平均接 触的人数 k,健康人与病人接触时被感染的概率 p 成正比。当 n,p,k 都确定的情况下, s =
l l n-l -1 P{ =l}=Cn , -1q (1 q )
(6.1.1)
这个分布的期望为 k,即 k = (n 1)q ,进而 q= k (n 1) 。这样,一名健康人被一名指定病人接触 并感染的概率为
p1 =pq=
pk . n 1
m
进一步,对人群中的每一名健康人来说,其每天不被感染的概率为 ( p ) ,被感染的概率为
2 2
则当 n 时,有如下关系:
k 1 n 4
此时,圆周率 的估计值为 monte<-function(n) { k<-0 x<-runif(n)
4k 。通过 R 语言编程如下: n
# runif( )函数的作用是产生均匀分布的随机数
y<-runif(n) for(i in 1:n) { if (x[i]^2+y[i]^2<=1) k<-k+1 } pi<-4*k/n } 其中,runif(n, a, b)的意义是在(a, b)区间上,产生 n 个均匀分布的随机数。Runif (n) 的意义是在 (0, 1) 区间上产生 n 个均匀分布的随机数,调用 monte 函数,当 n 取不同值时,得到不同的 π 的估计值 见表 6.1.1。
p2 =1 ( p )m .
所以,对人群中的所有健康人来说,每天被感染的人数 服从二项分布,分布函数为
l P{ =l}=Csl p2 (1 p2 ) s l ,
(6.1.2)
(6.1.3)
每天被感染的人数 期望为 =sp2 ,标准差为
( )= sp2 (1 p2 )
§6.1
6.1.1 概率模型
概率模型与 Monte Carlo 模拟
(1)传染病随机模型 在各种传染病的流行过程中,无论健康人还是病人,任何两个人之间接触的机会都是随机的, 而且当健康人与病人接触时,健康人是否被传染也是一个随机的事件。我们通过建立传染病随机模 型来分析这些随机规律。 假设人群总的规模为 N,在总人群中,病人的数量为 m,健康人的数量为 s,即满足 N=m+s。 在人们的日常生活中,任意两人之间(包括健康人和病人)接触的概率相同,每人平均与 k 个人接 触。当健康人和病人接触时,被传染的概率为 p。在以上假设的参数中,m 和 s 通常是已知的,k 和 p 可以通过专家的经验和统计数据获得。我们分析的目的是寻找健康人群中每天平均被感染的人数 与已知参数之间的关系,以及初始参数对传染病的扩散速度和流行趋势的影响。 我们首先以每一名健康人为研究对象,探讨其每天被感染的概率,而每一名健康人被一名指定 病人接触并传染的概率等于每名健康人与指定传染者接触的概率乘以接触时感染的概率。记人群中 任意两人接触的概率为 q,则对每一名健康人来说,其每天接触的人数 服从二项分布,分布函数 为
1 n 时, 2
也就是在整个人群中,病人和健康人的数量各占一半时,每天被感染的人数达到最大。 为了对传染病的传染过程有一个直观的了解,假设一个人口总量 n=10000 的人群,在日常生活 中,平均每人每天接触的人数 k=18,健康人与病人接触时被感染的概率 p=10%,对于不同的 m,平 均每天被感染人数 与相对误差 ( )
为了得到简明的结果,对 p2 进行近似计算,由于通常人群的总数 n k ,且根据 Talyor 展开, 得
p2 =1 (
因此,
pk m mpk mpk ) =1 (1 + ) , n 1 n 1 n 1 smpk s(n - s )pk . = n 1 n-1
(6.1.4)
r 0, 1, 2, 。我们根据 P( r ) 以及报纸的进价、零售价和剩余退回价格来建立优化模型,求解最优
的订购量。 假设报童早晨购进报纸的量为 n,则 r n 或 r n ,所以每天的收入也是不确定的。这里考 虑报童在不同销售情况下,建立每天销售收入的期望函数 R ( n ) ,则
第6章
概率统计方法模型
在对实际问题进行数学建模的过程中,人们经常遇到随机性的不确定问题,用传统的数学建模 方法难以解决。此时,就需要基于概率论和数理统计知识,运用概率统计的方法建立数学模型,对 实际问题进行求解,揭示事物发展的基本规律。本章详细介绍用概率统计方法建模的基本思路,结 合实际的案例,指出如何用随机变量和概率分布来描述随机不确定事件,说明求解概率统计类模型 的一般过程,并指出该类数学模型在社会调查、影响因素分析、发展趋势模拟等方面的广泛应用。
Monte Carlo (蒙特卡洛) 模拟, 也称统计模拟方法。 该方法是上世纪 40 年代, 由 John von Neumann (冯·诺依曼) ,Stanislaw Ulam 和 Nicholas Metropolis 在洛斯阿拉莫斯国家实验室进行核武器计划
的工作时发明的, 后来该方法的得名是由于 Ulam 的叔叔常在驰名世界的赌城 (摩纳哥的 Monte Carlo) 输钱。事实上,Monte Carlo 模拟是由于科学技术的发展和电子计算机的发明,而被提出的一种以概 率统计理论为指导的非常重要的数值计算方法。该方法是一种使用随机数来解决很多计算问题的方 法。目前,蒙特卡罗方法在金融工程学,宏观经济学,生物医学,计算物理学(如粒子输运计算、 量子热力学计算、空气动力学计算)等领域应用广泛。 通常蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计 算机的运算能力可以直接模拟这种随机的过程。另一种类型是所求解问题可以转化为某种随机分布 的特征数,比如随机事件出现的概率,或者随机变量的期望值。通过随机抽样的方法,以随机事件 出现的频率估计其概率,或者以抽样的数字特征估算随机变量的数字特征,并将其作为问题的解。 这种方法多用于求解复杂的多维积分问题。 例如,我们要计算一个不规则图形的面积,蒙特卡罗方法基于这样的思想:假想你有一袋豆子, 把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面 积。当你的豆子越小,撒的越多的时候,结果就越精确。借助计算机程序可以生成大量均匀分布坐 标点,然后统计出图形内的点数,通过它们占总点数的比例和坐标点生成范围的面积就可以求出图 形面积。 可以看出,Monte Carlo 得到概率模型的解是通过试验得到的,而不是计算出来的。也正是由于 这个原因,对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,Monte Carlo 方法是一种有效的求出数值解的方法。我们利用 Monte Carlo 模拟的方法实现对圆周率的估计。考虑 边长为 1 的正方形,1 为半径的四分之一圆弧,如图 6.1.1 所示。