默认情况下,Brian自动选择一种积分方法。首先尝试精确的求解方程(对于线性方程),然后诉诸数值算法。它也会适当地处理随机微分方程的积分。
在某些情况下,由于无法预先确定参数的选择,自动选择集成方法将是不合适的。在这种情况下,通常你将会在结果中获得nan(不是数字)值,或者大的振荡。在这种情况下,brian将生成警告,但并不会引发错误。
方法选择
如果你更想自己选择积分方法,你可以为NeuroGroup,Synapses或SpatialNeuron使用关键字。以下列表是可供选择的积分方法:
'exact':线性方程的精确积分(另一个名字:'linear')
'exponential_euler':条件线性方程的指数欧拉积分
'euler':正演欧拉积分(用欧拉-丸山法求解加性随机微分方程)
'rk2':二阶龙格-库塔法(中点法)
'rk4':经典龙格-库塔法
'heun':求解具有非对角乘性噪声的Stratonovich随机微分方程的随机Heun方法
'milstein':含对角乘性噪声随机微分方程的无导数Milstein方法
以下方法仍被认为是实验性的:
'gsl':当选择使用GNU科学库ODE求解器对方程进行积分时,默认积分器:rkf45方法。默认情况下使用可调整的时间步长。
'gsl_rkf45’:Runge-Kutta-Fehlberg方法。根据GSL文档,这是一个很好的通用积分器。默认情况下使用可调整的时间步长。
'gsl_rk2':使用GSL的二阶龙格-库塔法。默认情况下使用可调整的时间步长。
'gsl_rk4':使用GSL的四阶龙格-库塔法。默认情况下使用可调整的时间步长。
'gsl_rkck':使用GSL的Runge-Kutta Cash-Karp方法。默认情况下使用可调整的时间步长。
'gsl_rk8pd':龙格-库塔王子-多蒙德方法使用GSL。默认情况下使用可调整的时间步长。