izhikevich
izhikevich - Izhikevich neuron model
Description
Implementation of the simple spiking neuron model introduced by Izhikevich 1. The dynamics are given by:
As published in 1, the numerics differs from the standard forward Euler technique in two ways:
the new value of \(u\) is calculated based on the new value of \(v\), rather than the previous value
the variable \(v\) is updated using a time step half the size of that used to update variable \(u\).
This model will instead be simulated using the numerical solver that is recommended by ODE-toolbox during code generation.
References
Parameters
Name |
Physical unit |
Default value |
Description |
---|---|---|---|
a |
real |
0.02 |
describes time scale of recovery variable |
b |
real |
0.2 |
sensitivity of recovery variable |
c |
mV |
-65mV |
after-spike reset value of V_m |
d |
real |
8.0 |
after-spike reset value of U_m |
V_m_init |
mV |
-65mV |
initial membrane potential |
V_min |
mV |
-inf * mV |
Absolute lower value for the membrane potential. |
I_e |
pA |
0pA |
constant external input current |
State variables
Name |
Physical unit |
Default value |
Description |
---|---|---|---|
V_m |
mV |
V_m_init |
Membrane potential |
U_m |
real |
b * V_m_init |
Membrane potential recovery variable |
Equations
Source code
neuron izhikevich:
state:
V_m mV = V_m_init # Membrane potential
U_m real = b * V_m_init # Membrane potential recovery variable
end
equations:
V_m'=(0.04 * V_m * V_m / mV + 5.0 * V_m + (140 - U_m) * mV + ((I_e + I_stim) * GOhm)) / ms
U_m'=a * (b * V_m - U_m * mV) / (mV * ms)
end
parameters:
a real = 0.02 # describes time scale of recovery variable
b real = 0.2 # sensitivity of recovery variable
c mV = -65mV # after-spike reset value of V_m
d real = 8.0 # after-spike reset value of U_m
V_m_init mV = -65mV # initial membrane potential
V_min mV = -inf * mV # Absolute lower value for the membrane potential.
# constant external input current
# constant external input current
I_e pA = 0pA
end
input:
spikes mV <-spike
I_stim pA <-current
end
output: spike
update:
integrate_odes()
# Add synaptic current
# Add synaptic current
V_m += spikes
# lower bound of membrane potential
V_m = (V_m < V_min)?V_min:V_m
# threshold crossing
if V_m >= 30mV:
V_m = c
U_m += d
emit_spike()
end
end
end
Characterisation
Synaptic response

f-I curve
