基于Matlab的非时齐Poisson过程的模拟
Poisson过程在任何时刻到达的速率为λ,而非时齐Poisson过程的速率λ与时间t有关,为λ(t),具体定义附下(参考链接:https://zhuanlan.zhihu.com/p/28785318):
如果要模拟在[0,T]时间内非齐次Poisson过程,我们首先模拟一个速率为λ的Poisson过程,其中λ(t)<=λ, t<= T。然后再以λ(t)/λ的概率决定是否计数,这样得到的过程是密度为λ(t) 的非齐次Poisson过程。
本文使用稀疏法模拟非齐次Poisson过程,原理如下(参考《非齐次泊松过程的仿真方法》——宁如云 原文链接:
https://wenku.baidu.com/view/0b8cca4f844769eae009eda6.html):
基于matlab的具体算法代码如下:
function [ ] =fei_Poisson( )
%fei_Poisson 非时齐Poisson过程的模拟
%时间为[0,10],密度lamda=1 lamda(t)= exp(-t/T)
t=0;
I=0;
T=10;
S=[];
while t<=T
U=rand(1,1);
t=t-log(U);
lamda=1;
lamdat=exp(-t/T);
if t<=T
U1=rand(1,1);
if U1<=lamdat / lamda %是否计数
I=I+1;
S(I)=t;
end
bar(S(I),I);%以时间为横坐标 发生次数为纵坐标
hold on
end
end
S
I
end