Source code for dynamicalab.dynamics.bernoulli

from .base import BaseDynamics
import numpy as np

[docs]class BernoulliDynamics(BaseDynamics): """Random binary dynamics with probability ``p`` of being active."""
[docs] def __init__(self, p=None): """ **Params** p : float : (default=None) Probability of being active (x=1). If None, then ``p`` is choosen randomly between 0 and 1. """ super(BernoulliDynamics, self).__init__() if p is None: self.p = np.random.rand() else: self.p = p
def __call__(self, G, T, x0=None): num_time_steps = len(T) _x = np.random.rand(num_time_steps, len(G)) X = np.zeros([num_time_steps, len(G)]) X[_x < self.p] = 1 return X