% m38_rectangle.m - Brownian walk in a 10x1 rectangle close all inside = @(x,y) find( (abs(x)<5) & (abs(y)<.5) ); outside = @(x,y) find( (abs(x)>= 5) | (abs(y)>=.5) ); N = input('How many fleas (e.g. 5, 500)? '); x = zeros(N,1); y = zeros(N,1); h=fill([-5 5 5 -5 -5],[-.5 -.5 .5 .5 -.5],[1 1 1]); LW = 'linewidth'; set(h,LW,1) set(gcf,'position',[30 430 1450 115]) axis([-5.3 5.3 -.53 .53]), hold on, axis off plot([-5 5 5 -5 -5],[-.5 -.5 .5 .5 -.5],'-k',LW,.6) plot(x,y,'.','markersize',18,'color','b'); set(gca,'xtick',[],'ytick',[]) shg drawnow pause ii = inside(x,y); oo = outside(x,y); ll = length(ii); while ll>0 x(ii) = x(ii) + .025*sign(randn(ll,1)); y(ii) = y(ii) + .025*sign(randn(ll,1)); hold off h=fill([-5 5 5 -5 -5],[-.5 -.5 .5 .5 -.5],[1 1 1]); set(h,LW,1) set(gcf,'position',[30 430 1450 115]) axis([-5.3 5.3 -.53 .53]), hold on, axis off plot([-5 5 5 -5 -5],[-.5 -.5 .5 .5 -.5],'-k',LW,.6) ii = inside(x,y); ll = length(ii); oo = outside(x,y); plot(x(ii),y(ii),'.','markersize',18,'color','b'); plot(x(oo),y(oo),'.','markersize',18,'color','r'); set(gca,'xtick',[],'ytick',[]) drawnow end