59 lines
1.3 KiB
Matlab
59 lines
1.3 KiB
Matlab
p = 0.5;
|
|
|
|
%% (b)
|
|
nwalks = [100 1000, 10000];
|
|
for i=1:length(nwalks)
|
|
subplot( 3, 1, i );
|
|
for k=1:10
|
|
x = randomwalk( nwalks(i), p );
|
|
plot( x );
|
|
hold on;
|
|
end
|
|
text( 0.05, 0.8, sprintf( 'N=%d', nwalks(i)), 'units', 'normalized' )
|
|
xlabel( 'Number of steps' );
|
|
ylabel( 'Position' )
|
|
hold off;
|
|
end
|
|
savefigpdf( gcf, 'randomwalk-traces.pdf', 12, 16 );
|
|
pause( 5.0 )
|
|
|
|
nsteps = 100;
|
|
nwalks = 10000;
|
|
subplot( 1, 1, 1 )
|
|
y = zeros( nwalks, nsteps );
|
|
for k = 1:nwalks
|
|
x = randomwalk( nsteps, p );
|
|
y(k,:) = x; % store random walk
|
|
end
|
|
ns = 1:nsteps;
|
|
mu = mean(y, 1);
|
|
sdev = std(y, 1);
|
|
plot( ns, mu, 'b', 'linewidth', 4 )
|
|
hold on
|
|
plot( ns, sdev, 'r', 'linewidth', 4 )
|
|
xx = 0:0.01:nsteps;
|
|
plot( xx, sqrt(xx), 'k' )
|
|
plot( xx, zeros(length(xx),1), 'k' )
|
|
legend( 'mean', 'std', 'theory' )
|
|
xlabel('Steps')
|
|
ylabel('Position')
|
|
hold off
|
|
savefigpdf( gcf, 'randomwalk-stdev.pdf', 6, 5 );
|
|
pause( 3.0 );
|
|
|
|
%% (d) histograms:
|
|
tinx = [100, 30, 10];
|
|
colors = [ 0 0 1; 0.5 0 0.5; 1 0 0 ];
|
|
for i = 1:length(tinx)
|
|
[h,b] = hist( y(:,tinx(i)), 20);
|
|
h = h/sum(h)/(b(2)-b(1));
|
|
bar(b, h, 1.0, 'facecolor', colors(i,:))
|
|
hold on;
|
|
end
|
|
hold off;
|
|
xlabel('Position');
|
|
ylabel('Probability density');
|
|
xlim([-30 30])
|
|
ylim([0 0.3])
|
|
savefigpdf( gcf, 'randomwalk-hists.pdf', 6, 5 );
|