在 Matlab 中,我想生成遵循泊松到达的事件以及事件之间的到达间隔时间呈指数分布?
我应该使用哪个命令?
假设您有一个计数过程 { N(t) , t >= 0},其中N ( t ) 是t发生的事件数。
如果这些事件遵循具有速率lambda的泊松过程 (PP) ,那么我们可以免费获得许多属性。这篇文章假设一个均匀的(或固定的)PP。有关时间相关的情况,请参见此处、此处和此处。
来自PP的事件时间以速率lambda呈指数分布。
方法1:
1.生成interevent时间
2.获取实际事件时间<---你想要什么
Rate = 0.75; % lambda (events per unit time)
NumEvents = 20; % number of events to generate
% Approach 1a requires exprnd function
InterEventTimes = exprnd(1/Rate,NumEvents,1);
EventTimes = cumsum(InterEventTimes);
% Approach 1b using inverse transform of exponential distribution
fh =@(n) - log(rand(n,1) / Rate; % inverse transform of exponential distribution
InterEventTimes2 = fh(NumEvents);
EventTimes2 = cumsum(InterEventTimes2);
可在此处获得对这两种方法的验证。
我不确定是否有功能,或者我是否正确理解了这个问题。
泊松过程的事件时间公式为
tau=1/lambda*ln(1/r)
其中lambda
是过程的强度,r
是单位均匀分布,例如由 产生的rand
。