File:Randomwalk msd.svg

Summary

Description
English: some trajectories and the mean squared displacement of a random walk with a step size of . the circles sshow the MSD at different times
Date
Source Own work
Author Jkrieger
SVG development
InfoField
Source code
InfoField

MATLAB code

% timesteps in each random walk
timesteps=10000;
plotstep=10;
% diffusion coefficient for the random walk
D=0.5;
observation_radius=10;
observation_steps=100;
lim_factor=1.4;
plots=10;
plotevery=1;

%calculate grid size
dr=sqrt(2*D);
t=1:timesteps;

% simulate random walks on grid
x=zeros(plots,timesteps);
y=x;
for k=1:plots
    for ct=2:timesteps
        x(k,ct)=x(k,ct-1)+dr*(randi(2)-1.5)*2;
        y(k,ct)=y(k,ct-1)+dr*(randi(2)-1.5)*2;
    end
end

% calculate MSD as ensemble average on a logarihmic lag time scale
msdtau=round(logspace(0,floor(log10(timesteps)),50));
msd(1:length(msdtau))=0;
for tau=1:length(msdtau)
    msd(tau)=mean( (x(:,msdtau(tau))-x(:,1)).^2 + (y(:,msdtau(tau))-y(:,1)).^2 );
end

% plot random walk
figure(1)
subplot(2,1,1)
for k=1:plotevery:plots
    plot(x(k,1:plotstep:timesteps),y(k,1:plotstep:timesteps), 'Color', hsv2rgb([k/(plots+1),1,1]));
    if (k==1) 
        hold on;
    end
end
for k=5:5:length(msdtau)
    drr=sqrt(msd(k));
    rectangle('Position',[-drr,-drr,2*drr,2*drr], 'Curvature',[1,1], 'LineWidth', 2);
end
daspect([1,1,1])
hold off
xlim([-lim_factor*drr lim_factor*drr]);
ylim([-lim_factor*drr lim_factor*drr]);
xlabel('coordinate x');
ylabel('coordinate y');
title('random walk trajectories');

% plot MSD
subplot(2,1,2)
loglog(msdtau, msd, 'LineWidth', 2);
hold on
loglog(msdtau, 4*D*msdtau, 'r--', 'LineWidth', 2);
hold off
xlabel('lag time t')
ylabel('MSD \langle r^2(\tau)\rangle');
M{1}='measured MSD';
M{2}='\langle r^2(\tau)\rangle=4D\cdot\tau';
legend(M,'Location', 'NorthWest');
title('mean squared displacement');
xlim([1 1e4]);
ylim([1 1e4]);
daspect([1,1,1])
Category:Brownian motion Category:Random walks (space)

Licensing

w:en:Creative Commons
attribution
This file is licensed under the Creative Commons Attribution 3.0 Unported license.
Attribution: Jan Krieger
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
Category:CC-BY-3.0#Randomwalk%20msd.svg
Category:Brownian motion Category:CC-BY-3.0 Category:Random walks (space) Category:Valid SVG created with MATLAB code