Note
Go to the end to download the full example code.
Create a random walk processΒΆ
This example details first how to create and manipulate a random walk.
A random walk is a process where discretized on the time grid such that:
where and is a white noise of dimension .
The library proposes to model it through the object RandomWalk
defined
thanks to the origin, the distribution of the white noise and the time
grid.
import openturns as ot
import openturns.viewer as viewer
from matplotlib import pylab as plt
ot.Log.Show(ot.Log.NONE)
Define the origin
origin = [0.0]
Define an 1-d mesh
tgrid = ot.RegularGrid(0.0, 1.0, 500)
1-d random walk and discrete distribution
dist = ot.UserDefined([[-1], [10]], [0.9, 0.1])
process = ot.RandomWalk(origin, dist, tgrid)
sample = process.getSample(5)
graph = sample.drawMarginal(0)
graph.setTitle("1D Random Walk with discrete steps")
view = viewer.View(graph)
1-d random walk and continuous distribution
dist = ot.Normal(0.0, 1.0)
process = ot.RandomWalk(origin, dist, tgrid)
sample = process.getSample(5)
graph = sample.drawMarginal(0)
graph.setTitle("1D Random Walk with continuous steps")
view = viewer.View(graph)
Define the origin
origin = [0.0] * 2
Color palette
pal = ["red", "cyan", "blue", "yellow", "green"]
2-d random walk and discrete distribution
dist = ot.UserDefined([[-1.0, -2.0], [1.0, 3.0]], [0.5, 0.5])
process = ot.RandomWalk(origin, dist, tgrid)
sample = process.getSample(5)
graph = ot.Graph("2D Random Walk with discrete steps", "X1", "X2", True)
for i in range(5):
graph.add(ot.Curve(sample[i], pal[i % len(pal)], "solid"))
view = viewer.View(graph)
2-d random walk and continuous distribution
dist = ot.Normal(2)
process = ot.RandomWalk(origin, dist, tgrid)
sample = process.getSample(5)
graph = ot.Graph("2D Random Walk with continuous steps", "X1", "X2", True)
for i in range(5):
graph.add(ot.Curve(sample[i], pal[i % len(pal)], "solid"))
view = viewer.View(graph)
plt.show()