Enough boring theory. Let`s take a break to get some coding knowledge. So, to code the random walk, we basically need some libraries in python, some for math and some others for curve fitting.
matplotlib This is an external library to help you plot a curve. To install this library, enter the following code in your cmd.
pip install matplotlib
This would be enough to get you through the installation.
Numpy It is also an external Python library that helps you work with arrays and matrices. To install the library, enter the following code in cmd.
pip install numpy
random This is a built-in python library that we will use to generate random points. li>
One-dimensional random walk . An elementary example of a random walk is a random walk over a string of integers, which starts at 0 and is shifted by +1 or? 1 with equal probability.
So let`s try to implement 1-D random walk in python.
# Python code for 1- D random walk.
import numpy as np
import matplotlib.pyplot as plt
# Probability to move up or down
prob = [ code > 0.05 , 0.95 ]
# statically defining the starting position
start = 2
positions = [start]
# generate random dots
rr = np.random.random ( 1000 )
downp = rr & lt; prob [ 0 ]
upp = rr & gt; prob [ 1 ]
for idownp, iupp in zip (downp, upp): code >
down = idownp and positions [ - 1 ] & gt; 1
up = iupp and positions [ - 1 ] & lt; 4
positions.append (positions [ - 1 ] - down + up) p >
# plotting a random walk in 1D plt.plot (positions) plt.show ()
Higher dimensions In higher dimensions, many randomly passed points have interesting geometric properties. In fact, a discrete fractal is obtained, that is, a set that demonstrates stochastic self-similarity on a large scale. On a small scale, you can observe "irregularities" arising from the net on which the walk is performed. Lawler`s two books mentioned below are good sources on this topic. The trajectory of a random walk — it is a set of visited points, treated as a set that does not account for when the walk has reached a point. In one dimension, the trajectory — it`s just all the points between the minimum height and the maximum height that the walk has reached (on average, both orders of magnitude? N).
Let`s try to create a random walk in 2D.
# Python code for 2D random walk.
#determine the number of steps
n = 100000
# create two arrays to store x and y coordinates # of size is equal to the number of si ze and filled with zeros
x = numpy .zeros (n)
y = numpy.zeros (n)
# filling coordinates with random values code >
for i in range ( 1 , n):
val = random.randint ( 1 , 4 )
if val = co de> = 1 :
x [i] = x [ i - 1 ] + 1
y [ i] = y [i - 1 ]
elif val = = 2 :
x [i] = x [i - code> 1 ] - 1
y [i] = y [i - 1 ]
elif val = = 3 :
x [i] = x [i - 1 ]
y [i] = y [i - 1 < / code> ] + 1
x [i] = x [i - 1 ]
y [i] = y [ i - 1 ] - 1
pylab.title ( "Random Walk ($ n =" + str (n) + " $ steps) ")
This article is courtesy of Subhajit Saha . If you are as Python.Engineering and would like to contribute, you can also write an article using contribute.python.engineering or by posting an article contribute @ python.engineering. See my article appearing on the Python.Engineering homepage and help other geeks.
Please post comments if you find anything wrong or if you`d like to share more information on the topic discussed above.
Random Walk (Python implementation): StackOverflow Questions