我们从1个细胞开始。它可以以速率(指数速率)1复制并以速率1死亡。设Y表示细胞数。第一个事件(死亡或复制)以2的比率发生。如果它死亡 - >我们停止,因为我们有0个单元格。 如果它是复制 - >我们将时间更新为t + tau,下一个事件现在以4的速率发生。(因为2个单元格可以复制或死亡)。
由于只能发生2个事件,因此一个细胞发生死亡的概率为1 /(1 + 1),2个细胞发生2 /(2 + 2)等等,复制也相同。这就是为什么我们从0到2绘制一个随机数。如果这个数字> 1,那么一个单元就会死掉,否则就会重复。
直观地说,至少有一半的细胞应该死亡,因此 在时间3处0个单元的概率应该是P(Y = 0)> 0.5(实际上是 答案是3/4)。但是,当我将此代码放入for循环并运行它时 1000次,我得到Y = 0的次数是400左右 0.4
t=0;
rr=1; %rate of replication 1 cell -> 2 cells
rd=1; %rate of death 1 cell -> 0 cells
Y=1; %initial number of cells
while t<3 && Y>0 % interested in probabilities of number of cells at time t=0,t=1,t=2,t=3
r = 2*rand; %draws a random number from 0 to 2
tau=exprnd(2*Y); %since the total rate of all possible events is replication+death=2 for each cell
if t+tau < 3 %if the event happens before 3 seconds
if r>1 %death
Y=Y-1;
else Y=Y+1; %otherwise replication
end
elseif t+tau > 3 %if the next event happens after 3 seconds, we are not interested.
Y;
t;
break
end;
t=t+tau; %update time from t to t+tau
end
答案 0 :(得分:1)
好吧,在进入调试过程之前,请检查统计信息!
根据中心极限定理,如果我们将y定义为y = 1的随机变量,当Y = 0且y = 0时,则y的平均N次运行应该收敛于P(Y = 0)的均值和std(y)/ sqrt(N)方差。所以我会
如果所有这些都失败了,那么它可能就是一个错误。