Stimulation of brown motion, asked by a beginner
Show older comments
Animation: Brownian motion.
Write a function with the following declaration: brown2D(N). The function takes in a single input N, which is an integer specifying the number of points in the simulation. All the points should initially start at the origin (0,0). Plot all the points on a figure using ‘.’ markers, and set the axis to be square and have limits from -1 to 1 in both the x and y direction. To simulate Brownian motion of the points, write a 1000-iteration loop which will calculate a new x and y position for each point and will display these new positions as an animation. The new position of each point is obtained by adding a normally distributed random variable with a standard deviation of 0.005 to each x and y value (use randn; if you have 100 points, you need to add 100 distinct random values to the x values and 100 distinct random values to the y values). Each time that the new positions of all the points are calculated, plot them on the figure and pause for 0.01 seconds (it’s best to use set and the line object handle in order to update the xdata and ydata properties of the points, as mentioned in lecture).
What you will see is a simulation of diffusion, wherein the particles randomly move away from the center of the figure. For example, 100 points look like the figures below at the start, middle,
and end of the simulation:
Can anyone give me a solution for that? I do not know how to initialize like 100 points at (0,0). I just need solution for that. For the rest of the program, I will try to work it out by myself. I just stuck at the first place
Accepted Answer
More Answers (1)
Walter Roberson
on 18 Dec 2012
xypos = zeros(100,2);
then xypos(K,1) is the X for particle #K, and xypos(K,2) is the Y for particle #K
Categories
Find more on Animation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!