2014-05-20 87 views
1

我正在使用MATLAB的ODE套件來解決確定神經元行爲的13個微分方程組。現在我想添加第二個神經元,它由同一組微分方程操作,但受到第一個神經元的影響。更重要的是,這第二個神經元也會影響第一個神經元。 (這兩個單元之間的前饋和反饋。)解決多個相互影響的ODE系統

有沒有一種方便的方法來做到這一點?我可以將微分方程分佈在兩個函數文件中,還是必須將它們複製到原始文件之下,以便在同一個文件中存在更長的方程列表?我希望能夠每個單元格有一個文件,並以某種方式保持這種組織。 (如果我想再次將它擴展到三個或四個神經元)。

如果我的問題有任何不明確或不夠詳細的地方,請註明。我會盡力解釋我在做什麼/嘗試更好。

回答

0

您必須將所有變量的大矢量拆分成每個神經元變量的子數組,然後調用每個文件的變量,然後連接結果方向矢量。

如果神經元的行爲類似,你應該考慮一個方法(文件)內部有一個循環,用於神經元函數內部的方向,然後可能是交互項的雙循環。將連接信息放入數據結構中,以便靈活地更改它。

0

我幾乎沒有使用MATLAB的經驗,但是我在MATLAB中看到過的一種方法是爲需要存儲的每個狀態變量創建一個列表(1D矩陣?)。例如,實現Hodgkin-Huxley神經元需要一個矩陣,每個矩陣用於選通變量'm','h'和'n',還有一個用於'V'的變量。每個列表與模擬中神經元的數量一樣長。然後使列表中的第i個位置對應於第i個神經元。

模擬的流動將如下所示(設N是神經元的數量):

對於模擬中的每個時間步長,

1)讓「指數= 1」

2)使用狀態變量的每個列表/矩陣的第一個元素作爲參數調用文件中的ODE系統。

3)在索引中加1。如果索引現在大於N,則將時間步向前移1,並從(1)開始。

聽起來你還需要矩陣來存儲關於彼此影響的信息。雖然我知道很多人這樣做,但在更大規模上看起來很麻煩(尤其是如果您將神經元與不同的ODE集合結合在一起)。從長遠來看,我強烈建議遷移到更加面向對象的方法。他們應該提供一種更容易的方法來將每個神經元的實例與其變量和方程「綁定」,並且創建任意數量的神經元都不需要額外的代碼。

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