mercurial.core.wilson_cowan module

Wilson‑Cowan neural population dynamics with empirical parameters.

class mercurial.core.wilson_cowan.WilsonCowanPopulation(params: WilsonCowanParams | None = None, **kwargs)[source]

Bases: object

Wilson‑Cowan population with empirical parameters from literature.

Methods

clamped_derivative(t, state[, P_ext, Q_ext])

Derivative with clamping to prevent negative activity.

evolve(dt, n_steps[, P_ext, Q_ext, ...])

Evolve the population for n_steps using the step method.

steady_state([P_ext, Q_ext, tol, max_iter])

Find fixed point by iteration.

step(dt[, P_ext, Q_ext])

Euler step with noise.

derivative

sigmoid

__init__(params: WilsonCowanParams | None = None, **kwargs)[source]
Parameters:
paramsWilsonCowanParams, optional

Empirical parameter dataclass. If None, uses default.

**kwargsindividual parameter overrides.
clamped_derivative(t: float, state: ndarray, P_ext: float = 0.0, Q_ext: float = 0.0) ndarray[source]

Derivative with clamping to prevent negative activity.

derivative(t: float, state: ndarray, P_ext: float = 0.0, Q_ext: float = 0.0) ndarray[source]
evolve(dt: float, n_steps: int, P_ext: float = 0.0, Q_ext: float = 0.0, initial_state: ndarray | None = None) Tuple[ndarray, ndarray][source]

Evolve the population for n_steps using the step method. Returns (E_history, I_history).

sigmoid(x: float, a: float, theta: float) float[source]
steady_state(P_ext: float = 0.0, Q_ext: float = 0.0, tol: float = 1e-06, max_iter: int = 1000) Tuple[float, float][source]

Find fixed point by iteration. Returns (E_ss, I_ss).

step(dt: float, P_ext: float = 0.0, Q_ext: float = 0.0) None[source]

Euler step with noise.