物理ノート

サイエンス社「数理科学」SGCライブラリの読書メモ

計算物理入門

SGCライブラリ - 10

計算物理入門

分子シミュレーションを中心に

上田顯 著

2001年9月25日 初版発行

一様乱数の発生法

計算機で擬似乱数を発生させる。

線形合同法

 {I_n = aI_{n-1} + c \pmod M}

 {M} が素数の場合:

フェルマーの小定理

 {p} を素数とし、 {T^{\ast}} {0} を除いた  {(p - 1)} 個の元  {\{1,2,3,\dots,p-1\}} から成る集合とする。

 {T^{\ast}} の任意の元  {a} に対して以下が成り立つ:

 {a^{p - 1} = 1 \pmod p}

 {T^{\ast}} の元の中には、 {a^k \pmod p} {k = 1,2,\dots,p-1})によってすべての元を生成できる元  {a} が必ず存在する。

  •  {a} を法  {p} のもとでの原始根と呼ぶ。
  •  {T^{\ast}} は巡回群で、 {a} はその生成元である。

 {P} を素数とし、 {a} を法  {P} の原始根とすると、以下で生成される整数列  {\{I_n\}} の周期は  {(P - 1)} で与えられる:

 {I_n = a^nI_0 \pmod P}

 {M = 2^r} {r \ge 4})の場合:

 {I_k = a^kI_0 \pmod {2^r}}

で生成される整数列  {\{I_k\}} の最長周期は  {2^{r - 2} = 2^r/4} で与えられる。

最長周期が実現される必要十分条件は、初期値  {I_0} が素数であることと、定数  {a} が以下をみたすことである:

 {a = 3} または  {5 \pmod 8}

M 系列法

周期の長い  {2} 進数列を生成し、その中からある規則で  {32} ビットずつ抽出して  {10} 進の乱数を作り出す。

初期値(種)として、 {p} 個の  {a_0,a_1,\dots,a_{p-1}} を、すべてが  {0} にならないように、任意に  {0} または  {1} に選ぶ。

 {n \ge p} として、 {a_n,a_{n+1},a_{n+2},\dots} を次の漸化式で構成していく:

 {a_n = c_1a_{n - 1} + c_2a_{n - 2} + c_3a_{n - 3} + \cdots + c_pa_{n - p} \pmod 2}

 {p} および  {c_1,c_2,\dots,c_p} は以下の多項式  {f(x)} が原始多項式となるように選ぶ:

  •  {f(x) = 1 + c_1x + c_2x^2 + \cdots + c_px^p \pmod 2}
  •  {c_p = 1}

原始多項式: {p} 次より低い次数の多項式の積に因数分解されない多項式

与えられた分布に従う乱数の発生法

ランダム・ウォーク

マルコフ過程

分子シミュレーションとモンテカルロ法

自由エネルギーと多段サンプリング

分子動力学法