Turning On the Input
A resting neuron is boring. Let's open the tap — inject input current I — and watch the bucket fill. This input is what real neurons get from other neurons or from the senses.
Putting the input back gives the full subthreshold equation:
τ_m · dV/dt = −(V − E_L) + R_m · I
The leak pulls down toward E_L; the input R_m·I pushes up. They fight.
This next part is the genuinely tricky bit — so we won't just hand you the answer. Let's derive it together, one move at a time. Tap the correct next step; if you miss, just try again. By the end you'll have built the exact solution yourself, line by line. 👇
We start from the subthreshold equation: τ_m·dV/dt = −(V − E_L) + R_m·I. First, find the target the voltage drifts toward. It stops changing when dV/dt = 0, so set the right-hand side to zero and solve for V.
What is the target voltage V∞?
In plain words, the formula you just built says:
current voltage V(t) = the target it's heading for (V∞ = E_L + R_m·I) + (how far the start was from the target) × (an exponential that fades with rate 1/τ_m)
V begins at V_reset, and the gap to where it's headed shrinks exponentially — fast at first, slowing as it nears the target, basically arrived after a few τ_m.
Let's plug in real numbers and watch it. (These are NMA's values.)
• V_reset = −75 mV (starting voltage)
• E_L = −75 mV (resting level)
• τ_m = 10 ms (time constant)
• R_m = 10 MΩ, I = 10 nA → R_m·I = 100
So the target is V∞ = E_L + R_m·I = −75 + 100 = +25 mV. Hit Run to see the curve rise and flatten out. ↓
import numpy as npimport matplotlib.pyplot as plt# Parameters (NMA's values)V_reset = -75 # mV — voltage at the startE_L = -75 # mV — resting potentialtau_m = 10 # ms — membrane time constantR_m = 10 # MΩ — membrane resistanceI = 10 # nA — injected currentt = np.linspace(0, 50, 500) # time (ms)V_inf = E_L + R_m * I # the target / plateauV = V_inf + (V_reset - V_inf) * np.exp(-t / tau_m) # exact solutionplt.figure(figsize=(6, 4))plt.plot(t, V, linewidth=2, label="V(t)")plt.axhline(V_inf, color="red", linestyle="--", label=f"plateau V∞ = {V_inf} mV")plt.xlabel("time (ms)")plt.ylabel("membrane potential V (mV)")plt.title("LIF exact solution: rises, then plateaus")plt.legend()plt.show()Press Run — V climbs from −75 mV and flattens out at the red target (+25 mV). Try changing I to a bigger number and run again: the plateau goes even higher.
Does this make biological sense? Look at the plot: crank I up and the voltage just rises and plateaus at some high value forever. Real neurons never do that — they spike and snap back. The pure equation is mathematically perfect but biologically wrong. Fixing that is the next lesson — and it's what the 'Fire' in Integrate-and-Fire means.