public class NetworkLeakyIntegratorWithIntrinsicPlasticityODE
extends java.lang.Object
implements org.apache.commons.math3.ode.FirstOrderDifferentialEquations
TransientDynamicsOfLeakyIntegratorsWithIntrinsicPlasticity
.Modifier and Type | Class and Description |
---|---|
static class |
NetworkLeakyIntegratorWithIntrinsicPlasticityODE.Properties
Properties of each neuron: membrane potential, gain, threshold.
|
Constructor and Description |
---|
NetworkLeakyIntegratorWithIntrinsicPlasticityODE(double[] gamma,
double[][] w,
double[] epsilon_a,
double[] epsilon_b,
double[] lambda_1,
double[] lambda_2)
Creates a new leaky integrator network according to the specified
parameters.
|
Modifier and Type | Method and Description |
---|---|
void |
computeDerivatives(double time,
double[] state,
double[] stateDot)
Calculates the first derivatives of the ODE.
|
static double |
firingRate(int neuron,
double[] state)
Calculates the firing rate of the given neuron in the given state.
|
static double |
g(double x,
double a,
double b)
Transfer function $g(x, a, b) = \frac{1}{1 + e^{-a(x-b)}}$.
|
int |
getDimension()
Returns the dimension of the ODE.
|
static double |
getValue(int neuron,
double[] state,
NetworkLeakyIntegratorWithIntrinsicPlasticityODE.Properties property)
Get the value of a property of a neuron in the given state.
|
static double |
gInverse(double y,
double a,
double b)
Inverse transfer function $g^{-1}(y,a,b) = -\frac{1}{a} \log \left( \frac{y_{\mathrm{max}}-y_{\mathrm{min}}}{y-y_{\mathrm{min}}} - 1 \right) + b$.
|
static void |
setValue(int neuron,
double[] state,
NetworkLeakyIntegratorWithIntrinsicPlasticityODE.Properties property,
double value)
Set the value of a property of a neuron to the given state.
|
public NetworkLeakyIntegratorWithIntrinsicPlasticityODE(double[] gamma, double[][] w, double[] epsilon_a, double[] epsilon_b, double[] lambda_1, double[] lambda_2)
gamma
- leaks $\Gamma$w
- weighted adjacency matrix $w$epsilon_a
- transfer function gain learning rates $\epsilon_a$epsilon_b
- transfer function threshold learning rates $\epsilon_b$lambda_1
- target firing rate distribution parameter 1 $\lambda_1$lambda_2
- target firing rate distribution parameter 2 $\lambda_2$public int getDimension()
getDimension
in interface org.apache.commons.math3.ode.FirstOrderDifferentialEquations
public void computeDerivatives(double time, double[] state, double[] stateDot)
computeDerivatives
in interface org.apache.commons.math3.ode.FirstOrderDifferentialEquations
time
- time $t$state
- vector $(x_1(t), a_1(t), b_1(t), x_2(t), a_2(t), b_2(t),
\dots, x_n(t), a_n(t), b_n(t))$stateDot
- vector $(\dot x_1(t), \dot a_1(t), \dot b_1(t), \dots)$public static double getValue(int neuron, double[] state, NetworkLeakyIntegratorWithIntrinsicPlasticityODE.Properties property)
neuron
- index of the neuron in the networkstate
- overall network stateproperty
- property to get (firing rate, gain, threshold)public static void setValue(int neuron, double[] state, NetworkLeakyIntegratorWithIntrinsicPlasticityODE.Properties property, double value)
neuron
- index of the neuron in the networkstate
- overall network state to changeproperty
- property to set (firing rate, gain, threshold)value
- value to setpublic static double firingRate(int neuron, double[] state)
neuron
- index of neuronstate
- the whole network state as used in
computeDerivatives
including membrane potentials, gains and
thresholdspublic static double g(double x, double a, double b)
x
- membrane potential $x$a
- transfer function gain $a$b
- transfer function threshold $b$public static double gInverse(double y, double a, double b)
y
- firing rate $y$a
- transfer function gain $a$b
- transfer function threshold $b$