pyeeg.simulate.Kuramoto

class pyeeg.simulate.Kuramoto(N=2, W=None, coupling_strength=1.0, frequency=10.0, dt=0.001, seed=42, **node_kwargs)

Convenience network of Phasor nodes with Kuramoto coupling.

Each node is a Phasor oscillator with the same frequency. The phase of node i evolves as

\[\dot{\phi}_i = \omega + \sum_j K_{ij} \sin(\phi_j - \phi_i)\]

with K = coupling_strength * W, and the readout of each node is \(\sin(\phi_i)\).

Parameters:
  • N (int) – The number of oscillators in the network.

  • W (array_like, optional) – The connectivity matrix. Shape (N, N). If None, an all-zero matrix is used (uncoupled oscillators).

  • coupling_strength (float) – The global scaling applied to W to obtain the effective coupling matrix K.

  • frequency (float) – The natural frequency of every oscillator in Hz.

  • dt (float) – The integration time step in seconds.

  • seed (int) – The random seed used to initialise the network’s random number generator and the per-node seeds.

  • **node_kwargs – Extra keyword arguments passed to the Phasor constructor.

Methods

Kuramoto.reset()

Reset the network to its initial state.

Kuramoto.simulate([tmax, x0])

Simulate the network and return the readout of every node.

Kuramoto.step()

Advance the network by one integration step.