数学公式显示测试
如果炸弹每秒钟爆炸概率提高一点,从数学期望上来看最有可能在哪一秒爆炸?
结论是:在第 10 秒爆炸概率最大,爆炸时间的期望是 12.5331 秒。
其实可以给出更为普适的答案:假设有很多个互不影响的炸弹,每个未炸炸弹在下一秒被引爆的概率期望是
2πm⋅erf(2m)−em/2m
这题在很多物理化学问题中都有实际应用:假设有某个化学反应,其反应速率正比于反应物剩余浓度C(相当于炸弹未爆炸的概率)和温度T(实际上随T指数增长,不过原理差不多)。那么在升温时,随时间的增长,一方面反应速率会先因温度的升高而升高;但另一方面,随着反应的进行,反应物浓度越来越低,逐渐限制反应进行,因此反应速率在某个温度达到峰值后,会开始随时间降低。典型的热脱附谱 (Thermal desorption spectroscopy) 峰值的温度,来推算出反应的能量学信息。
典型的热脱附结果如下:
先来看离散情形吧,也就是把时间拆成一秒一秒来看。这种情形最简单,高中数学就能解决。
根据题设可知,某个炸弹在1~n-1秒都没爆炸的概率为
i=1∏n−1(1−mi)
令炸弹在第 ( n ) 秒爆炸的概率为 ( P(n) ) ,有:
P(n)=mni=1∏n−1(1−mi)
显然
P(n)P(n+1)=mn⋅∏i=1n−1(1−mi)mn+1⋅mm−n⋅∏i=1n−1(1−mi)=mn(n+1)(m−n)
该比值函数在研究范围内是个单调递减函数,所以当 P(n)P(n+1)=1 时,P(n)取得最大值。
对应的解为 n=m+41−21 。当m比较大时,可以近似认为 n=m。
简单写了个程序(代码见答案底部),当 ( m = 100 )时,数值解出来的爆炸期望为 12.21,概率随时间变化的函数长这样子,是不是和上面的热脱附谱长得很像?
再来看连续情形。假设炸弹在 0→t 秒内不爆炸的概率为 C(t),那么将炸弹在 t→t+dt时间内爆炸的概率,记为 p(t),它等于p(t)=C(t)−C(t+dt)=−dC(t)
其实题中问的是单位时间内的爆炸概率,即概率密度,记为 ( P(t) ):
P(t)=dtp(t)=−dtdC(t)
按照题中定义,它正比于时间 ( t ) ,以及未爆炸概率 ( C(t) ),
P(t)=mtC(t)
将这两个式子结合起来并积分,得到:
如果炸弹每秒钟爆炸概率提高一点,从数学期望上来看最有可能在..
可以看出 ( C(t) ) 是个正态分布, ( P(t) ) 是个瑞利分布 ( ^{+} ) (Rayleigh distribution)
对 ( P(t) ) 求导,使其等于零,得爆炸概率密度的最大值
dtdP(t)=mC(t)(1−mt2)=0
解得 t=m ,与m较大时的离散解是一致的。
积分可得爆炸的时间期望:
E=∫0mtP(t)dt=2πm⋅erf(2m)−em/2m
当 ( m = 100 ) 时,时间期望 ( E = 12.5331 ) ,与离散情形稍有出入,应该是离散/连续模型中时间分割细致度不一样导致的。
相关收藏:认真写科普
上面数值计算的 MATLAB 代码为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| clear;clc;close all;
days=100; P_explode(1:days)=0; P_explode(1)=1/days;
P_unexplode(1:days)=0; P_unexplode(1)=1-1/days;
E=P_explode(1);
for n=2:1:days; P_unexplode(n)=P_unexplode(n-1)*(1-n/days); P_explode(n)=P_unexplode(n-1)*(n/days); E=E+P_explode(n)*n; end
E=E
set(0,'defaultfigurecolor','w'); figure set(gcf,'Position',[300 300 800 600]); set(gca,'Position',[.10 .10 .85 .85]); plot(1:days,P_explode,'b-','linewidth',1.5); lx=xlabel('Time (s)','FontSize',16); ly=ylabel('Explosion rate','FontSize',16);
|