コンピュータ工学基礎演習 2014 11 連立常微分方程式を解く・解答例 機能創成専攻 生体工学領域 井村 誠孝 [email protected] 講義資料: http://bit.ly/bpe-ecp14 ニューロンの活動 ニューロンの活動: 入力刺激に反応して活動電位 を発生させ,他の細胞に情報を伝達する. 活動電位 = 細胞内外の電位差(通常は内部が負)が一時的 に逆転する現象 Na+およびK+のイオンチャンネルを介した移動によって 生じる 活動電位のモデル化 Hodgkin-Huxley model 1963 ノーベル医学・生理学賞 FitzHugh-Nagumo model 2014/7/7 Exercises in Computer Programming 2 / 16 講義資料: http://bit.ly/bpe-ecp14 FitzHugh-Nagumo Model v3 v′ = c − + v − w + I (t ) 3 w′ =v − bw + a v : 膜電位 w : 隠れた変数 I ニューロン v I : 外部入力 a, b, c : パラメータ よく使われる値: = a 0.7, = b 0.8, = c 10 2014/7/7 Exercises in Computer Programming 3 / 16 講義資料: http://bit.ly/bpe-ecp14 課題ex11-1 FitzHugh-Nagumo Model の数値解をルンゲ・クッ タ法で求めよ. = = = a 0.7, b 0.8, c 10 パラメータの値: tの範囲は0から100までとする. 結果はファイルにt,v,wを出力し,gnuplotでt-vおよびt-w のグラフを描いてその挙動を確認せよ. 外部入力 I (t ) が時間に依存しない一定値 I 0 である とする.この場合,I 0の値によって出力パターン が変化する.0から1の間で I 0 を様々に変えて計算 を行い,挙動が変化する閾値を探索せよ. 2014/7/7 Exercises in Computer Programming 4 / 16 講義資料: http://bit.ly/bpe-ecp14 結果1 I0 = 0 I 0 = 0.3 I 0 = 0.5 I 0 = 1.0 t-v v-w 2014/7/7 Exercises in Computer Programming 5 / 16 講義資料: http://bit.ly/bpe-ecp14 結果2 I 0 = 0.3 2014/7/7 I 0 = 0.33 I 0 = 0.34 Exercises in Computer Programming I 0 = 0.35 6 / 16 講義資料: http://bit.ly/bpe-ecp14 結果3 I 0 = 0.3323220 2014/7/7 I 0 = 0.3323221 I 0 = 0.3323222 Exercises in Computer Programming I 0 = 0.3323223 7 / 16 講義資料: http://bit.ly/bpe-ecp14 課題ex11-2 外部入力 I (t ) として,周期的な入力を与えた場合 の挙動について調べよ. 正弦波状の入力 パルス状の入力 現在の時刻をt,周期をTとした場合,現在の時刻が1周期内のどの 時点であるかは,以下の式で与えられる. t − t / T T C言語で書くと以下の通り. t – (int)(t / T) * T パラメータが多いので,ある一つのパラメータを変えて みる(その他は固定する)のがよい. 2014/7/7 Exercises in Computer Programming 8 / 16 講義資料: http://bit.ly/bpe-ecp14 入力のパラメータ(たとえば) 正弦波の場合: I 0 , A, T 2π t I (t= ) I 0 + A sin T パルス波の場合: A, T , T1 T1 (< T ) A T 2014/7/7 Exercises in Computer Programming 9 / 16 講義資料: http://bit.ly/bpe-ecp14 正弦波入力 A = 1.0 2014/7/7 A = 2.0 Exercises in Computer Programming I (t= ) I 0 + A sin 2π t T = I 0 0,= T 10 10 / 16 講義資料: http://bit.ly/bpe-ecp14 パルス入力 A = 2.0 周期解 A = 2.09 カオス A = 2.2 周期解 = T 2.0, = T1 0.45 2014/7/7 Exercises in Computer Programming 11 / 16 その他補足事項 講義資料: http://bit.ly/bpe-ecp14 変数のスコープ 変数は宣言した場所によって,有効な範囲が違い ます. 変数をブロックの先頭({の直後)で宣言した場合 →そのブロックの中でのみ有効 変数を全ての関数の外側で宣言した場合 →宣言した場所以降のソースコード内で有効 / 16 講義資料: http://bit.ly/bpe-ecp14 変数のスコープ: 例 a /* sample.c */ int a; t double Func(double t) r { double r; : argc,argv } int main(int argc, char **argv) x { double x; y while (1) { double y; : } : } 2014/7/7 Exercises in Computer Programming 14 / 16 講義資料: http://bit.ly/bpe-ecp14 変数のスコープ: 同じ名前を使うと? /* sample.c */ a1 int a; double Func(int t) a2 { int a; : } int main(int argc, char **argv) a3 { int a; Func(a); } 2014/7/7 Exercises in Computer Programming 15 / 16 gnuplotが使えない!! 講義資料: http://bit.ly/bpe-ecp14 インストールしてください:-) データファイルが無いと言われる場合 gnuplotにもカレントディレクトリという概念があるので, まずデータファイルがあるディレクトリ(フォルダ)に移 動してください. フォーマットが変と言われる場合 「数字 空白 数字 空白 ... 空白 数字 改行」となっている か確認してください. 2014/7/7 Exercises in Computer Programming 16 / 16
© Copyright 2024 ExpyDoc