計算機実習 平成28年度その1の第2回目

2016年10月12日

今日も一人で計算機実習。前回よりも「え、それってプログラミング言語および演習の内容じゃん」的な感じは少ない。ケアレスミスはあるよう。

最初にイジング模型の物理的意味、つまり磁性体のモデルとしてのイジング模型という話を。どうも、「別に気にしません」って雰囲気がある。つまり、σ=±1の二次元配列に対して、エネルギーE = -J Σ<ij>σiσjの意味はよくて、プログラムが動けばいい、って感じ。

σ=+1を○、σ=-1を●にして、白黒の二次元配列を画面に出すのは、σの配列の表示。σ=±1で表される状態があり、それに対してエネルギーが定義される。

さて、今回のポイントは、エネルギーをforループで計算するときに、終わりの相互作用が計算されないこと。毎回のことであるが、学生が困ってから「終わりの端については例外処理をする」旨述べた。それ自体はいいのかもしれないが、一次元の場合について、周期境界のない場合→ある場合という説明をした後だったのは反省すべき。forループが二重だから、最後の列や最後の行の和が抜ける。

来週は、ランダムに選んだサイトのスピン(σ=±1)を反転させ、エネルギーの低くなる方向に状態変化させる、というシミュレーションを完成させる積もり。そのためには、来週の頭にはエネルギーの計算は終了していなければならない。