pyeeg.simulate.HopfOscillator

class pyeeg.simulate.HopfOscillator(a=0.01, frequency=10.0, dt=0.001, seed=42)

Two-dimensional Stuart-Landau (Hopf normal-form) oscillator.

The state (x, y) evolves according to

\[\dot{x} = (a - r^2) x - \omega y + I, \quad \dot{y} = (a - r^2) y + \omega x + I\]

with \(r^2 = x^2 + y^2\) and \(\omega = 2 \pi f\). For \(a > 0\) the origin is unstable and the oscillator converges to a limit cycle of radius \(\sqrt{a}\) at frequency \(f\).

Parameters:
  • a (float) – The bifurcation parameter. Positive values yield a stable limit cycle, negative values a damped oscillator.

  • frequency (float) – The oscillation frequency in Hz. Must be non-negative.

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

  • seed (int) – The random seed used to initialise the node’s random number generator.

Raises:

ValueError – If frequency is negative.

Methods

HopfOscillator.read_out()

Return the scalar readout of the oscillator.

HopfOscillator.simulate([x0, tmax, noise, I])

Simulate the oscillator and return its states and readout.

HopfOscillator.step([I, noise])

Advance the oscillator by one integration step (Euler method).