sftpの使い方メモ
サーバーに入るのはSSHと同じ要領
sftp [サーバー名]
でサーバーに入る。
exit
でsftpを終了。
サーバーからローカルにファイル転送
- ファイル転送
get [ファイル名]
- ローカルのディレクトリ操作
基本的に先頭に"l"をつけるだけ
lls #localのls lcd #localのcd lmkdir #localのmkdir lpwd #localのpwd
import numpy as np import matplotlib.pyplot as plt time = 2000 state = np.zeros(2) orbit = np.zeros(2) for t in range(time): speed = 1 randomvec = np.random.random(2) - 0.5 randomvec *= speed/np.linalg.norm(randomvec) state += randomvec orbit = np.vstack([orbit, state]) orbit = orbit.T plt.scatter(0, 0, color="r") plt.plot(*orbit, lw=0.5) plt.scatter(*state, color="r") plt.axis("equal") plt.show()
pythonでヌルクラインを描く方法
いくつか方法があるようだけど、matplotlibとscipyを組み合わせる方法が良さそうだった。
FitzHugh南雲方程式とは、一言でいうと神経細胞(ニューロン)の挙動を数理的に表した方程式のこと。
ニューロンのダイナミクスを電気生理学的にモデル化したものとしてはHodgkin-Huxley方程式が最も古く、今でもニューロンのモデル研究で使われることがある。*1
ホジキンハクスレイ方程式とは、ホジキンとハクスレーがヤリイカの巨大軸索における神経膜の電位変化を調べ、 4変数の微分方程式で書き下したもののことで、この研究で1963年のノーベル生理学賞を受賞している。
このモデルを出発点として色々なモデルの単純化が進められていて、
その代表例がこの FitzHugh-Nagumo方程式。
FitzHugh-Nagumo方程式は、4変数のホジキンハクスレー方程式の「本質」を残したまま
2変数で表現されるように単純化したモデルになっている。
2変数で表現することで数学的にも解析しやすくなりニューロンモデルの研究が進んだという経緯がある。
具体的には以下の式で表せられる方程式だ。
は膜電位を表し、はニューロン内部の変数である。まあの方はどうでもよくて、膜電位によって次のニューロンに信号が伝達するかどうかが決まるからが大事になってくる。
は外部からの入力なので、時間変化のある変数になっている。
ここで、色々パラメータがあるけれど、ここを参考に決めた。
()
参考にしたサイトによると、Iが定常入力の時I=0.34付近でホップ分岐(微分方程式の解が大きく変化すること)が起きるという。
せっかくなので、それを確かめてみようと思う。
ヌルクライン(nullcline)とは、微分方程式の解が0となる点の集合のこと。
その意義としては微分方程式において解の挙動を見るためで、これを見るとだいたい微分方程式の解の軌跡が予想できる。
ヌルクラインと読んだりナルクラインと読んだりするらしいが、自分はnullはヌルと読むので「ヌルクライン」と呼ぶことにする。
下の図では赤や緑の曲線がnullclineに相当していて青のラインが解の軌跡を表している。
import numpy as np import matplotlib.pyplot as plt import scipy.integrate as integrate I = 0.33 # external input def d_u(u, v): c = 10 return c * (-v + u - pow(u,3)/3 + I) def d_v(u, v): a = 0.7 b = 0.8 return u - b * v + a def fitzhugh(state, t): u, v = state deltau = d_u(u,v) deltav = d_v(u,v) return deltau, deltav # the initial state u0 = 2.0 v0 = 1.0 t = np.arange(0.0, 20, 0.01) y0 = [u0, v0] # the initial state vector y = integrate.odeint(fitzhugh, y0, t) u_vec = y[:,0] v_vec = y[:,1] plt.figure() plt.plot(t, u_vec, label="u") plt.plot(t, v_vec, label="v") plt.title("membrane potential") plt.grid() plt.legend() plt.figure() plt.plot(u_vec, v_vec) plt.xlabel("u") plt.ylabel("v") plt.title("FitzHugh nullcline") padding = 0.2 umax, umin = u_vec.max() + padding, u_vec.min() - padding vmax, vmin = v_vec.max() + padding, v_vec.min() - padding U, V = np.meshgrid(np.arange(umin, umax, 0.1), np.arange(umin, vmax, 0.1)) dU = d_u(U, V) dV = d_v(U, V) plt.quiver(U, V, dU, dV) plt.contour(U, V, dV, levels=[0], colors="green") plt.contour(U, V, dU, levels=[0], colors="red") plt.xlim([umin, umax]) plt.ylim([vmin, vmax]) plt.grid() plt.show()
参考サイト
フィッツヒュー・南雲 (FitzHugh-Nagumo) 方程式
https://mail.scipy.org/pipermail/scipy-user/2007-October/014290.html
pythonでカオスの軌跡を描いた
swdrsker.hatenablog.com