mutwo.generators.brown

Algorithms which are related to Scottish botanist Robert Brown.

Functions:

random_walk_noise(x0, n, dt, delta[, out, ...])

Generate an instance of Brownian motion (i.e.

random_walk_noise(x0, n, dt, delta, out=None, random_state=None)[source]

Generate an instance of Brownian motion (i.e. the Wiener process).

Parameters
  • x0 (float) – the initial condition(s) (i.e. position(s)) of the Brownian motion.

  • n (int) – the number of steps to take

  • dt (float) – the time step

  • delta (float) – delta determines the “speed” of the Brownian motion. The random variable of the position at time t, X(t), has a normal distribution whose mean is the position at time t=0 and whose variance is delta**2*t.

  • out (Optional[numpy.array]) – If out is not None, it specifies the array in which to put the result. If out is None, a new numpy array is created and returned.

  • random_state (Optional[int]) – set the random seed of the pseudo-random generator.

Returns

A numpy array of floats with shape x0.shape + (n,).

Return type

numpy.array

X(t) = X(0) + N(0, delta**2 * t; 0, t)

where N(a,b; t0, t1) is a normally distributed random variable with mean a and variance b. The parameters t0 and t1 make explicit the statistical independence of N on different time intervals; that is, if [t0, t1) and [t2, t3) are disjoint intervals, then N(a, b; t0, t1) and N(a, b; t2, t3) are independent.

Written as an iteration scheme,

X(t + dt) = X(t) + N(0, delta**2 * dt; t, t+dt)

If x0 is an array (or array-like), each value in x0 is treated as an initial condition, and the value returned is a numpy array with one more dimension than x0.

Note that the initial value x0 is not included in the returned array.

This code has been copied from the scipy cookbook:

https://scipy-cookbook.readthedocs.io/items/BrownianMotion.html