Я нашел следующий код Matlab для моделирования неоднородного процесса Пуассона.
function x = nonhomopp(intens,T)
% example of generating a
% nonhomogeneousl poisson process on [0,T] with intensity function intens
x = 0:.1:T;
m = eval([intens 'x']);
m2 = max(m); % generate homogeneouos poisson process
u = rand(1,ceil(1.5*T*m2));
y = cumsum(-(1/m2)*log(u)); %points of homogeneous pp
y = y(y<T); n=length(y); % select those points less than T
m = eval([intens 'y']); % evaluates intensity function
y = y(rand(1,n)<m/m2); % filter out some points
hist(y,10)
% then run
% t = 7 + nonhomopp('100-10*',5)
Я новичок в Matlab и не понимаю, как это работает. Я прочитал страницы Mathworks по всем этим функциям и запутался в четырех местах:
1) Почему функция определяется как x, а интервалы также называются x? Как это злоупотребление обозначениями?
2) Как квадратные скобки влияют на eval,
eval([intens 'x'])
а почему x в одинарных кавычках?
3) Почему они используют cumsum вместо sum?
4) Данная функция интенсивности \lambda (t) = 100 - 10*(t-7) with 7 \leq t \leq 12
Как это представляет t = 7 + nonhomopp('100-10*',5)
?
Извините, если так много, спасибо!
t = 7 + nonhomopp('100-10*',5)
создает гистограмму - person Sunhwa   schedule 13.02.2016