微分方程的默认单位
Code:
start_scope()
eqs = '''
dv/dt = 1*Hz : 1
'''
eqs1 = '''
dv/dt = 1*volt*Hz : volt
'''
G = NeuronGroup(N, eqs, method='euler')
G1 = NeuronGroup(N, eqs1, method='euler')
print(G.v)
print(G1.v)
Output:
<neurongroup.v: array([0.])>
<neurongroup_1.v: array([0.]) * volt>
在上例中,Equation句末声明为v的单位,同时Equation两端要保持单位统一
微分方程模型示例
A simple model
- 膜电位与时间的函数为:
\[v=1-e^{-\frac{t}{\tau}} \]
-
对应的微分方程为:
\[\frac{\mathrm{d}v}{\mathrm{dt}}=\frac{1-v}{\tau}\\ v(0)=0 \]
-
对应的Equation代码为:
eqs=''' dv/dt=(1-v)tau : 1 ''' # NeuronGroup中默认v(0)=0,若初始条件不同需使用NeuronGroup.v指定
-
已知微分方程形式以及某一特解条件,当 \(\tau=1\) 时使用WolframAlpha求解原函数
v'(t)=1-v/1, v(0)=0