Skip to main content

MEAN SQUARED DISPLACEMENT-1D RANDOM WALK


## Routine random walk(rw) for simulating
## one-dimensional random walk
## and calculating the mean squared displacement.
x2ave=[]; ## Initial array of the squared
## displacement at initial time(meters).
Nrw=3000; ## Number of walkers (Dimensionless).
beg=1000; ## Minimum step number ( // ).
inc=1000; ## Step number increment ( // ).
Nstepsmax=10000; ## Maximum step number ( // ).
dt=1; ## Time increment(second).
##Entering the nested loops.
for Nsteps=beg:inc:Nstepsmax; ## The loop through the number
Nsteps ## of steps each in walk.
x2=0; ## Initial squared location of all of the
## walkers at all steps.
for m=1:Nrw ## The loop through the desired
## number of walkers.
r=rand_disc_rev(Nsteps,0.5); ## Calling the rw generator
## function which will give column vector
## of each elements are either 1 or -1.
x2+=sum(r)^2; ## Total displacement squared whose
## elements stems from the vector r.
endfor
x2ave=[x2ave;x2/Nrw]; ## Accumulation of the squared displacements
endfor ## at the step Nsteps into the array x2ave(Nsteps).
## Exiting the nested loops. Continuing by constructing polynomials.
hold off
plot(dt*[beg:inc:Nstepsmax],x2ave,'b*;RawData;') ## Plot of the raw data
## of mean squared displament vs. step
## number or here the time.
[p,s]=polyfit(dt*[beg:inc:Nstepsmax]',x2ave,1); ## Calculate the coefficients
## p and the quality of measure s
## of the 'imaginary' polinomial, x2ave(Nsteps).
pval=polyval(p,dt*[beg:inc:Nstepsmax]); ## The values of the fit polynomial
## in the time interval dt*[beg,Nstepsmax].
hold on
plot(dt*[beg:inc:Nstepsmax],pval,'r-;Fit;') ## Plot of fit data of x2ave vs time.
hold off

Comments

Popular posts from this blog

Simple Euler Method

##Usage:Call Octave from terminal ##and then call EulerMethodUmitAlkus.m ##from octave and finally ##press enter. That's all. ##Simple Euler Method ##Constants and initializations x=[]; ## initial empty vector for x y=[]; ## initial empty vector for y x(1)=1; ## initial value of x y(1)=1; ## initial value of y h=1E-3; ## increment in x dery=[]; ## 1st derivative of y wrt x n=1; ## inital loop index for while ## enter the while loop for the interval x=[1,2] while (x(n)<=2) x(n+1)=x(n)+h; dery(n+1)=x(n)*x(n)-2*y(n)/x(n); ##given y(n+1)=y(n)+h*dery(n); ##Euler method n++; endwhile ##exit from the 1st while loop ##Modified Euler Method ##Constant and initializations ymid=[]; ## empty vector function evaluated at x midpoint xmid=[]; ## empty vector func. of midpoints in x ymid(1)=1; ## inital value for ymid. derymid=[]; ## derivative of y at midpoints ##Enter the 2nd while loop n=1; while (x(n)<=2) xmid(n)=x(n)+h/2; derymid(n)=xmid(n)*xmid(n)-2*ymid(...