Code covered by the BSD License
-
birthdeath(npoints, flambda, ...
BIRTHDEATH generate a trajectory of a birth-death process
-
bm3plot(npoints, sigma)
% BM3PLOT Generate and plot a 3-dimensional Brownian motion
-
brownian(npoints, sigma)
BROWNIAN generate and plot an aproximation to Brownian motion.
-
galtonwatson(nmbgen, initsize...
GALTONWATSON generates a trajectory of a Galton-Watson branching process
-
moran(initsize, popsize)
MORAN generates a trajectory of a Moran type process
-
poisson2d(lambda)
POISSON2D generate and plot Poisson process in the plane
-
poisson3d(lambda)
POISSON3D generate and plot Poisson process in the unit cube
-
poissonjp(njumps, lambda, ntr...
POISSONJP generate and plot a number of trajectories of a Poisson
-
poissonti(tmax, lambda, nproc...
POISSONTI generate N independent Poisson processes as matrix
-
ranwalk(npoints, p)
RANWALK generate and plot a trajectory of a random walk which
-
ranwalk2d(npoints, p)
-
ranwalk3d(npoints, p)
-
rw3plot(npoints, ntrajs, p)
RW3PLOT generate and plot some trajectories of the process
-
View all files
from
Simulation of Stochastic Processes
by Ingemar Kaj Raimundas Gaigalas
Simulates and plots trajectories of simple stochastic processes.
|
| birthdeath(npoints, flambda, fmu)
|
function [tjump, state] = birthdeath(npoints, flambda, fmu)
% BIRTHDEATH generate a trajectory of a birth-death process
%
% [tjump, state] = birthdeath(npoints[, flambda, fmu])
%
% Inputs: npoints - length of the trajectory
% flambda - optional, an inline function to compute the
% birth intensity at a point. Default
% flambda = inline('5/(1+i)', 'i');
% fmu - optional, an inline function to compute the
% death intensity at a point. Default
% fmu = inline('i', 'i');
%
% Outputs: tjump - jump times
% state - states of the embedded Markov chain
% Authors: R.Gaigalas, I.Kaj
% v1.2 04-Oct-02
% default parameter values if ommited
if (nargin==1)
flambda = inline('5/(1+i)', 'i');
fmu = inline('i', 'i');
end
i=0; %initial value, start on level i
tjump(1)=0; %start at time 0
state(1)=i; %at time 0: level i
for k=2:npoints
% compute the intensities
lambda_i=flambda(i);
mu_i=fmu(i);
time=-log(rand)./(lambda_i+mu_i); % Inter-step times:
% Exp(lambda_i+mu_i)-distributed
if rand<=lambda_i./(lambda_i+mu_i)
i=i+1; % birth
else
i=i-1; % death
end %if
state(k)=i;
tjump(k)=time;
end %for i
tjump=cumsum(tjump); %cumulative jump times
% plot the process
stairs(tjump, state);
|
|
Contact us at files@mathworks.com