フィッツヒュー・南雲 (FitzHugh-Nagumo) 方程式をPython+Scipyでルンゲクッタ8次のDOP853(Dormand Prince)で計算。
今回は神経を通る電気信号をモデル化したフィッツヒュー・南雲方程式
dv/dt = v - v3/3 -w +I
dw/dt = ε(v + a - b*w)
をPython+Scipyでルンゲクッタ8次のDOP853(Dormand Prince)で計算してみた。
結果はこんな感じ。スパイクが見える。
パラメータはここと同じにしました。
https://www.comsol.com/blogs/understand-the-dynamics-of-the-fitzhugh-nagumo-model-with-an-app/
ソースコードはこちら:
import numpy as np
from scipy.integrate import ode
import matplotlib.pyplot as plt
a=0.7
b=0.8
eps=0.08
I=1
def FNmodel(t, u): #odeintのときとt,xの並びが逆
v=u[0]
w=u[1]
v_dot = (v*(1.0-(v**2)/3)-w+I)
w_dot = eps*(v+a-b*w)
return [v_dot, w_dot]
t0=0
tmax = 200
N=5000
u0=[0.0,0.0]
solver=ode(FNmodel)
solver.set_integrator('dop853')
solver.set_initial_value(u0,t0) #なぜか関数と並びが逆
t=np.linspace(0, tmax, N)
sol= np.empty((N, 2))
sol[0] = u0
k=1
while solver.successful() and solver.t < tmax:
solver.integrate(t[k])
sol[k] = solver.y
k+= 1
# Plot
fig = plt.figure(figsize=(10,24))
ax1=fig.add_subplot(3, 1, 1)
ax2=fig.add_subplot(3, 1, 2)
ax3=fig.add_subplot(3, 1, 3)
ax1.set_xlabel("Time")
ax1.set_ylabel("v")
ax1.grid(True)
ax2.set_xlabel("Time")
ax2.set_ylabel("w")
ax2.grid(True)
ax3.set_xlabel("v")
ax3.set_ylabel("w")
ax3.grid(True)
ax1.plot(t,sol[:,0],c='Red')
ax2.plot(t,sol[:,1],c='Blue')
ax3.plot(sol[:,0],sol[:,1],c='Green')
plt.show()
« 新型コロナウイルス、中国、日本、韓国、アメリカ、ドイツ、フランス、イギリスでの感染者数を指数関数&ロジスティック関数&Log-Logプロットでべき関数フィッティングした(2/21更新)さすがに日本も増加率は鈍化してきた。しかし中国が2/7から更新データがない、、、 | トップページ | ExcelのLET関数+SEQUENCE関数で数値計算シリーズ(その3?)ワンライナー(1行というか 1セル)で数値積分のシンプソンの公式を計算する。 »
「学問・資格」カテゴリの記事
- TensorFlow(Keras)でモデルをsaveで保存してload_modelで読み込むときに突然エラー(utf8で読めないとかディレクトリが存在しないとか)が出始めた。なんで?といろいろやると、単に日本語がフォルダ名に使われているときにエラーになるだけだった…(Windowsネイティブの場合)(2023.05.28)
- 時代に逆行してCOBOL(GnuCOBOL)を学んでみる(4) 10進31桁まで計算できることを生かして4段4次のルンゲクッタ法でローレンツ方程式を計算して図示してみる。テキストベース(アスキーアート)で!(2023.05.23)
- 時代に逆行してCOBOL(GnuCOBOL)を学んでみる(3) ロジスティック写像の分岐図を31桁まで10進計算ができることを生かして描いてみる。テキストベースで!今回は2次元配列の練習。(2023.05.19)
- 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース(5/18) IEEE Microwave Magazineはグラフェンのマイクロ波応用、Microwave Journalはテラヘルツ波の発生、Next G allianceの新6Gレポート、Hexa-Xの新動画、ESAが軌道上に6Gラボ、De-embeddingって何?など。(2023.05.18)
- カシオの高精度計算サイトkeisan.casio.jpが復旧してログインや自作式の作成ができるようになった。ということで作った自作式のアクセスベスト10とお勧めを紹介。(2023.05.17)
« 新型コロナウイルス、中国、日本、韓国、アメリカ、ドイツ、フランス、イギリスでの感染者数を指数関数&ロジスティック関数&Log-Logプロットでべき関数フィッティングした(2/21更新)さすがに日本も増加率は鈍化してきた。しかし中国が2/7から更新データがない、、、 | トップページ | ExcelのLET関数+SEQUENCE関数で数値計算シリーズ(その3?)ワンライナー(1行というか 1セル)で数値積分のシンプソンの公式を計算する。 »
コメント