解决相互影响的多个相等的ODE系统

时间:2014-05-20 15:57:21

标签: matlab ode differential-equations neuroscience

我正在使用MATLABs ODE套件来解决一个确定神经元行为的13个微分方程组。现在我想添加第二个神经元,它由同一组微分方程组操作,但受第一个神经元的影响。更重要的是,这第二个神经元也将影响第一个神经元。 (这两个单元格之间的前馈和反馈。)

有没有方便的方法呢?我可以将微分方程分布在两个函数文件上,还是必须将它们复制到原始函数文件下面,以便在同一个文件中有更长的方程列表?我希望每个单元格能够有一个文件,并以某种方式保持这种组织。 (如果我可能想再将它扩展到三个或四个神经元。)

如果我的问题不清楚或不够具体,请说明。我会试着解释一下我在做什么/做得更好。

2 个答案:

答案 0 :(得分:0)

你必须将所有变量的大向量分成每个神经元变量的子数组,用它们的变量调用每个文件,然后连接得到的方向向量。

如果神经元的行为相似,你应该考虑让一个方法(文件)内部有一个循环用于神经元功能 - 方向的内部部分,之后可能是交互术语的双循环。将连接信息放入数据结构中以便灵活地更改它。

答案 1 :(得分:0)

我对MATLAB的经验不多,但我在MATLAB中看到的一种方法是为每个需要存储的状态变量创建一个列表(1D矩阵?)。例如,实现Hodgkin-Huxley神经元需要一个矩阵,每个矩阵用于选择变量' m' h'和' n'以及一个用于' V&#39 ;.每个列表与模拟中的神经元数量一样长。然后使列表中的第i个位置对应于第i个神经元。

模拟的流程如下所示(让N为神经元的数量):

对于模拟中的每个时间步,

1)让" index = 1'

2)使用每个列表/状态变量矩阵中的第一个元素作为参数调用文件中的ODE系统。

3)在索引中添加一个。如果索引现在大于N,则将时间步长向前移动一步并从(1)开始。

听起来你还需要使用矩阵来存储彼此影响的信息。虽然我知道有很多人这样做,但是在更大规模上看起来很麻烦(特别是如果你将神经元与不同的ODE组合在一起)。从长远来看,我强烈建议迁移到更加面向对象的方法。它们应该提供一种更简单的方法来绑定'神经元的每个实例及其变量和方程式,以及创建任意数量的神经元都不需要额外的代码。

http://www.mathworks.com/discovery/object-oriented-programming.html