.. currentmodule:: brian2 .. Ornstein_Uhlenbeck: Example: Ornstein_Uhlenbeck =========================== .. only:: html .. |launchbinder| image:: http://mybinder.org/badge.svg .. _launchbinder: https://mybinder.org/v2/gh/brian-team/brian2-binder/master?filepath=examples/advanced/Ornstein_Uhlenbeck.ipynb .. note:: You can launch an interactive, editable version of this example without installing any local files using the Binder service (although note that at some times this may be slow or fail to open): |launchbinder|_ Ornstein-Uhlenbeck process Figure 2: Two realizations of the Ornstein-Uhlenbeck process for parameters τ=1.0 and σ=0.1 (black curve), and for τ=0.1 and σ=0.31622 (red curve). In both cases the noise intensity is σ^2*τ=0.01 . The red curve represents a noise that more closely mimics Gaussian white noise. Both realizations begin here at x(0)=1.0 , after which the mean decays exponentially to zero with time constant τ. Andre Longtin (2010) Stochastic dynamical systems. Scholarpedia, 5(4):1619. Sebastian Schmitt, 2022 :: import matplotlib.pyplot as plt import numpy as np from brian2 import run from brian2 import NeuronGroup, StateMonitor from brian2 import second, ms N = NeuronGroup( 2, """ tau : second sigma : 1 dy/dt = -y/tau + sqrt(2*sigma**2/tau)*xi : 1 """, method="euler" ) N.tau = np.array([1, 0.1]) * second N.sigma = np.array([0.1, 0.31622]) N.y = 1 M = StateMonitor(N, "y", record=True) run(10 * second) plt.plot(M.t / second, M.y[1], color="red", label=r"$\tau$=0.1 s, $\sigma$=0.31622") plt.plot(M.t / second, M.y[0], color="k", label=r"$\tau$=1 s, $\sigma$=0.1") plt.xlim(0, 10) plt.ylim(-1.1, 1.1) plt.xlabel("time (sec)") plt.ylabel("Ornstein-Uhlenbeck process") plt.legend() plt.show() .. image:: ../resources/examples_images/advanced.Ornstein_Uhlenbeck.1.png