# brainpy.dyn.neurons.Izhikevich#

class brainpy.dyn.neurons.Izhikevich(size, a=0.02, b=0.2, c=- 65.0, d=8.0, V_th=30.0, tau_ref=0.0, V_initializer=ZeroInit, u_initializer=OneInit(value=1.0), method='exp_auto', keep_size=False, name=None)[source]#

The Izhikevich neuron model.

Model Descriptions

The dynamics of the Izhikevich neuron model 1 2 is given by:

\begin{align}\begin{aligned}\frac{d V}{d t} &= 0.04 V^{2}+5 V+140-u+I\\\frac{d u}{d t} &=a(b V-u)\end{aligned}\end{align}
$\begin{split}\text{if} v \geq 30 \text{mV}, \text{then} \begin{cases} v \leftarrow c \\ u \leftarrow u+d \end{cases}\end{split}$

Model Examples

Model Parameters

 Parameter Init Value Unit Explanation a 0.02 It determines the time scale of the recovery variable $$u$$. b 0.2 It describes the sensitivity of the recovery variable $$u$$ to the sub-threshold fluctuations of the membrane potential $$v$$. c -65 It describes the after-spike reset value of the membrane potential $$v$$ caused by the fast high-threshold $$K^{+}$$ conductance. d 8 It describes after-spike reset of the recovery variable $$u$$ caused by slow high-threshold $$Na^{+}$$ and $$K^{+}$$ conductance. tau_ref 0 ms Refractory period length. [ms] V_th 30 mV The membrane potential threshold.

Model Variables

 Variables name Initial Value Explanation V -65 Membrane potential. u 1 Recovery variable. input 0 External and synaptic input current. spike False Flag to mark whether the neuron is spiking. refractory False Flag to mark whether the neuron is in refractory period. t_last_spike -1e7 Last spike time stamp.

References

1

Izhikevich, Eugene M. “Simple model of spiking neurons.” IEEE Transactions on neural networks 14.6 (2003): 1569-1572.

2

Izhikevich, Eugene M. “Which model to use for cortical spiking neurons?.” IEEE transactions on neural networks 15.5 (2004): 1063-1070.

__init__(size, a=0.02, b=0.2, c=- 65.0, d=8.0, V_th=30.0, tau_ref=0.0, V_initializer=ZeroInit, u_initializer=OneInit(value=1.0), method='exp_auto', keep_size=False, name=None)[source]#

Methods

 __init__(size[, a, b, c, d, V_th, tau_ref, ...]) dV(V, t, u, I_ext) du(u, t, V) get_delay_data(name, delay_step, *indices) Get delay data according to the provided delay steps. ints([method]) Collect all integrators in this node and the children nodes. load_states(filename[, verbose]) Load the model states. nodes([method, level, include_self]) Collect all children nodes. register_delay(name, delay_step, delay_target) Register delay variable. register_implicit_nodes(nodes) register_implicit_vars(variables) reset() Reset function which reset the whole variables in the model. save_states(filename[, variables]) Save the model states. train_vars([method, level, include_self]) The shortcut for retrieving all trainable variables. unique_name([name, type_]) Get the unique name for this object. update(t, dt) The function to specify the updating rule. vars([method, level, include_self]) Collect all variables in this node and the children nodes.

Attributes

 global_delay_targets global_delay_vars name steps