问题描述
我正在研究一个考虑两个事件(W
、M
)的问题,并尝试使用 Gillespie 计算从 W
到 M
的时间衰减。这是问题的图示。
RMW = 1
RWM = 0.35
t = []
for i in range (0,10000):
if (i%2) == 0: #W present
tM = 0
dt = expon.rvs(RWM,size=1)
tM += dt
else:
tW = 0
dt = expon.rvs(RMW,size=1)
tW += dt
t.append(dt)
现在我要处理一个更复杂的问题,其中有三个事件(W
、M1
和 M2
)。费率也不同,如 RWM1=0.35
和 RWM2=0.1
。这是图示。
现在我无法理解我应该从哪里开始。如果有人可以根据之前的代码给我一些建议来解决此类问题,那将非常有帮助。
解决方法
如果 dt
的值应该如您所说的那样相加,这是否可能解决您的问题?
RMW = 1
RWM = 0.35
t = []
for i in range (0,10000):
if (i%2) == 0: #W present
tM = 0
dt = expon.rvs(WM1,size=1)
dt += expon.rvs(WM1_M2M1,size=1)
tM += dt
else:
tW = 0
dt = expon.rvs(M2M,size=1)
dt += expon.rvs(M2M_M2M1,size=1)
tW += dt
t.append(dt)