Equation

微分方程的默认单位

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

  1. 膜电位与时间的函数为:

\[v=1-e^{-\frac{t}{\tau}} \]

  1. 对应的微分方程为:

    \[\frac{\mathrm{d}v}{\mathrm{dt}}=\frac{1-v}{\tau}\\ v(0)=0 \]

  2. 对应的Equation代码为:

    eqs='''
    dv/dt=(1-v)tau : 1
    '''
    # NeuronGroup中默认v(0)=0,若初始条件不同需使用NeuronGroup.v指定
    
  3. 已知微分方程形式以及某一特解条件,当 \(\tau=1\) 时使用WolframAlpha求解原函数
    v'(t)=1-v/1, v(0)=0

上一篇:linux – 是否可以使用optirun运行Steam游戏?


下一篇:软件安装 – 在OpenSUSE上安装Java 8 JDK – 更新替代品