# brainpy.dyn.neurons.FractionalIzhikevich#

class brainpy.dyn.neurons.FractionalIzhikevich(size, alpha, num_step, a=0.02, b=0.2, c=- 65.0, d=8.0, f=0.04, g=5.0, h=140.0, R=1.0, tau=1.0, V_th=30.0, V_initializer=OneInit(value=- 65.0), u_initializer=OneInit(value=- 13.0), keep_size=False, name=None)[source]#

Fractional-order Izhikevich model 10.

The fractional-order Izhikevich model is given by

\begin{split}\begin{aligned} &\tau \frac{d^{\alpha} v}{d t^{\alpha}}=\mathrm{f} v^{2}+g v+h-u+R I \\ &\tau \frac{d^{\alpha} u}{d t^{\alpha}}=a(b v-u) \end{aligned}\end{split}

where $$\alpha$$ is the fractional order (exponent) such that $$0<\alpha\le1$$. It is a commensurate system that reduces to classical Izhikevich model at $$\alpha=1$$.

The time $$t$$ is in ms; and the system variable $$v$$ expressed in mV corresponds to membrane voltage. Moreover, $$u$$ expressed in mV is the recovery variable that corresponds to the activation of K+ ionic current and inactivation of Na+ ionic current.

The parameters $$f, g, h$$ are fixed constants (should not be changed) such that $$f=0.04$$ (mV)−1, $$g=5, h=140$$ mV; and $$a$$ and $$b$$ are dimensionless parameters. The time constant $$\tau=1$$ ms; the resistance $$R=1$$ Ω; and $$I$$ expressed in mA measures the injected (applied) dc stimulus current to the system.

When the membrane voltage reaches the spike peak $$v_{peak}$$, the two variables are rest as follow:

$\begin{split}\text { if } v \geq v_{\text {peak }} \text { then }\left\{\begin{array}{l} v \leftarrow c \\ u \leftarrow u+d \end{array}\right.\end{split}$

we used $$v_{peak}=30$$ mV, and $$c$$ and $$d$$ are parameters expressed in mV. When the spike reaches its peak value, the membrane voltage $$v$$ and the recovery variable $$u$$ are reset according to the above condition.

Examples

References

10

Teka, Wondimu W., Ranjit Kumar Upadhyay, and Argha Mondal. “Spiking and bursting patterns of fractional-order Izhikevich model.” Communications in Nonlinear Science and Numerical Simulation 56 (2018): 161-176.

__init__(size, alpha, num_step, a=0.02, b=0.2, c=- 65.0, d=8.0, f=0.04, g=5.0, h=140.0, R=1.0, tau=1.0, V_th=30.0, V_initializer=OneInit(value=- 65.0), u_initializer=OneInit(value=- 13.0), keep_size=False, name=None)[source]#

Methods

 __init__(size, alpha, num_step[, a, b, c, ...]) 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

 derivative global_delay_targets global_delay_vars name steps