为什么在模拟非均质过程中数字不会为零

问题描述

我正在模拟非齐次泊松过程。所以我有一个数字 Q,它从指数分布中减去一个随机数,平均 b=1。当事件发生时。 Lambda 由 Q/((T-t)*b) 定义,其中 T 是时间结束。这是代码。我不明白为什么 Q 不会归零。 200 次中约有 50 次不会归零。

import random
import math
import pandas as pd
import numpy as np
endtime=[]
kolvo=0
Qas=[]
for i in range(2000):
    Q=500
    T=100
    lam=[]
    Qm=[]
    l=Q/T
    t=0
    #p=random.random()
    #k=-math.log(1.0 - p)/l
    pos=[]
    last=0
    pk=[]
    b=1
    to=98
    while t<T and Q>0:
        l=Q/((T-t)*b);
        lam.append(l);
        Qm.append(Q);
        p=random.random()
        k=-math.log(1.0 - p)/l
        pk.append(k)
        if (k<1 and t<to) or (t>=to and k<0.1):
            q=np.random.exponential(b);
            Q=Q-q;
            Qas.append(q);
            pos.append(k)
            lam.append(l);
            Qm.append(Q);
            t=t+k
        elif t<to:
            t=t+1
        else:
            t=t+0.1
     
    if Q<=0:
        endtime.append((t-0.01,Q))
    else:
        endtime.append((t-0.01,Q))
        kolvo+=1  
kolvo

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)