mutwo.generators.brown¶
Algorithms which are related to Scottish botanist Robert Brown.
Functions:
|
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