%simulation of an Ornstein-Ohlenbeck process
%http://www.puc-rio.br/marco.ind/sim_stoc_proc.html#mc-mrd
%based on Dixit & Pindyck, 1994,p 76
function x=gen_ous(pars,reps,simlen)
nu = pars.densdep;
meanx = pars.K;
s2 = pars.s2;
x1 = pars.initx;
dt = 1;
x = -99*ones(reps,simlen);
if(isempty(x1))
x(:,1) = normrnd(meanx,sqrt(s2/(2*nu)),reps,1); %the asymptotic distribution
else
x(:,1) = x1;
end
for i = 2:simlen,
x(:,i) = x(:,i-1)*exp(-nu*dt)+meanx*(1-exp(-nu*dt))...
+randn(reps,1)*sqrt(s2)*sqrt((1-exp(-2*nu*dt))/(2*nu));
end