Simulation of Brownian Motion in M Dimensions

**BROWNIAN_MOTION_SIMULATION**
is a C library which
simulates Brownian motion in an M-dimensional region,
creating graphics files for processing by gnuplot.

Brownian motion is a physical phenomenon which can be observed, for instance, when a small particle is immersed in a liquid. The particle will move as though under the influence of random forces of varying direction and magnitude.

There is a mathematical idealization of this motion, and from there a computational discretization that allows us to simulate the successive positions of a particle undergoing Brownian motion.

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

**BROWNIAN_MOTION_SIMULATON** is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version.

CORRELATION, a C library which contains examples of statistical correlation functions.

DUEL_SIMULATION, a C program which simulates N repetitions of a duel between two players, each of whom has a known firing accuracy.

FAIR_DICE_SIMULATION, a C program which simulates N tosses of 2 dice, making a histogram of the results.

FOREST_FIRE_SIMULATION, a C program which simulates the occurrence of fires and regrowth in a forest, displaying the results using X Windows, by Michael Creutz.

GNUPLOT, C programs which illustrate how a program can write data and command files so that gnuplot can create plots of the program results.

HIGH_CARD_SIMULATION, a C program which simulates a situation in which you see the cards in a deck one by one, and must select the one you think is the highest and stop; the program uses GNUPLOT for graphics.

ISING_2D_SIMULATION, a C program which carries out a Monte Carlo simulation of an Ising model. a 2D array of positive and negative charges, each of which is likely to flip to be in agreement with neighbors.

LIFE_OPENGL, a C program which uses OpenGL to display the evolution of John Conway's "Game of Life", by Simon Green.

ORNSTEIN_UHLENBECK, a C library which approximates solutions of the Ornstein-Uhlenbeck stochastic differential equation (SDE) using the Euler method and the Euler-Maruyama method.

POISSON_SIMULATION, a C library which simulates a Poisson process in which events randomly occur with an average waiting time of Lambda.

REACTOR_SIMULATION, a C program which a simple Monte Carlo simulation of the shielding effect of a slab of a certain thickness in front of a neutron source. This program was provided as an example with the book "Numerical Methods and Software."

STRING_SIMULATION, a C program which simulates the behavior of a vibrating string.

THREE_BODY_SIMULATION, a C program which simulates the behavior of three planets, constrained to lie in a plane, and moving under the influence of gravity, by Walter Gander and Jiri Hrebicek.

XISING, a C program which models the variations in ferromagnetism in a material, displaying the results using X Windows.

XWAVES, a C program which simulates the behavior of solutions of certain forms of the wave equation, displaying the results using X Windows.

- brownian_motion_simulation.c, the source code.
- brownian_motion_simulation.h, the include file.

- brownian_motion_simulation_test.c, a sample calling program.
- brownian_motion_simulation_test.txt, the output file.

Some data files and plots are made by the test program.

- motion_1d_data.txt, data for a Brownian motion trajectory in 1D.
- motion_1d_commands.txt, gnuplot commands to plot data for a Brownian motion trajectory in 1D.
- motion_1d.png, a plot of a Brownian motion trajectory in 1D, with time as second dimension.
- motion_2d_data.txt, data for a Brownian motion trajectory in 2D.
- motion_2d_commands.txt, gnuplot commands to plot data for a Brownian motion trajectory in 2D.
- motion_2d.png, a plot of a Brownian motion trajectory in 2D.
- displacement_1d_data.txt, data for Brownian displacements in 1D.
- displacement_1d_commands.txt, gnuplot commands to plot Brownian displacements in 1D.
- displacement_1d.png, a plot of squared displacements, averaged over several 1D Brownian motions.
- displacement_2d_data.txt, data for Brownian displacements in 2D.
- displacement_2d_commands.txt, gnuplot commands to plot Brownian displacements in 2D.
- displacement_2d.png, a plot of squared displacements, averaged over several 2D Brownian motions.
- displacement_3d_data.txt, data for Brownian displacements in 3D.
- displacement_3d_commands.txt, gnuplot commands to plot Brownian displacements in 3D.
- displacement_3d.png, a plot of squared displacements, averaged over several 3D Brownian motions.

You can go up one level to the C source codes.