# Converted from dispmodel.m - particle size dispersion model simulationimportnumpyasnpfrommiscimportoctave_savenhalf=5;npart=2*nhalfk=10np.random.seed(0)# deterministic growth with random ratesg0=1.0;std=0.1;size0=10.0ntime=15time=np.arange(ntime)x=np.zeros((npart,ntime));x[:,0]=size0g=std*np.random.randn(npart)+g0foriinrange(ntime-1):x[:,i+1]=x[:,i]+g# stochastic growthdelta=0.1;nsim=1500ipart=(np.random.rand(nsim)*npart).astype(int)xran=np.zeros((npart,nsim));xran[:,0]=size0tau=np.zeros(nsim)foriinrange(nsim-1):tau[i+1]=tau[i]-np.log(np.random.rand())/(k*npart)p=ipart[i]xran[:,i+1]=xran[:,i]xran[p,i+1]=xran[p,i]+deltatable1=np.column_stack([time,x.T])table2=np.column_stack([tau,xran.T])octave_save('dispmodel.dat',('table1',table1),('table2',table2))