首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求解多个相互影响的等价常微分方程系统

求解多个相互影响的等价常微分方程系统
EN

Stack Overflow用户
提问于 2014-05-20 23:57:21
回答 2查看 152关注 0票数 1

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

有没有一种方便的方法可以做到这一点?我可以将微分方程分布在两个函数文件中吗?或者我是否必须将它们复制到原始文件下面,以便在同一文件中有一个更长的方程列表?我希望每个单元格都有一个文件,并以某种方式将其组织起来。(另外,以防我想再次将其扩展到三个或四个神经元。)

如果我的问题有任何不清楚或不够具体的地方,请指出。我会试着解释我在做什么/试得更好。

EN

回答 2

Stack Overflow用户

发布于 2014-05-21 02:59:38

您必须将所有变量的大向量拆分为每个神经元的变量的子数组,使用其变量调用每个文件,然后连接产生的方向向量。

如果神经元的行为类似,您应该考虑使用一个方法(文件),其中包含一个用于神经元函数的循环-方向的内部部分,然后可能是用于交互项的双循环。将连接信息放入数据结构中,以便灵活地更改它。

票数 0
EN

Stack Overflow用户

发布于 2014-06-06 00:14:38

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

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

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

1)让'index = 1‘

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

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23764719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档