シミュレーションの一部
まず、シミュレーションで最初の部分、*例:*100 psを平衡状態とみなすことはよくあります。ただし、:ref:`ログファイル<log>`に表示される平均値と変動は、シミュレーション全体で計算されます。この場合、シミュレーションの一部として平衡状態に移行する初期段階の影響が大きくなるため、これらの平均値と変動が無効になる可能性があります。
使用:(30) および (31) を使用すると、軌跡の一部に対する平均値と標準偏差を計算できます。
(37)\[\begin{split}\begin{aligned}
X_{m+1,m+k} &=& X_{1,m+k} - X_{1,m} \\
\sigma_{m+1,m+k} &=& \sigma_{1,m+k}-\sigma_{1,m} - \left[~\frac{X_{1,m}}{m} - \frac{X_{1,m+k}}{m+k}~\right]^{2}~ \frac{m(m+k)}{k}\end{aligned}\end{split}\]
または、より一般的に(\(p \geq 1\) および \(q \geq p\) の場合):
(38)\[\begin{split}\begin{aligned}
X_{p,q} &=& X_{1,q} - X_{1,p-1} \\
\sigma_{p,q} &=& \sigma_{1,q}-\sigma_{1,p-1} - \left[~\frac{X_{1,p-1}}{p-1} - \frac{X_{1,q}}{q}~\right]^{2}~ \frac{(p-1)q}{q-p+1}\end{aligned}\end{split}\]
注意:この実装は必ずしも簡単ではありません。なぜなら、シミュレーションの各時間ステップでエネルギーが保存されないからです。したがって、\(X_{1,p-1}\) と \(\sigma_{1,p-1}\) を、(33) と (34) を使用して、時間 \(p\) の情報から構築する必要があります。
(39)\[\begin{split}\begin{aligned}
X_{1,p-1} &=& X_{1,p} - x_p \\
\sigma_{1,p-1} &=& \sigma_{1,p} - \frac {[~X_{1,p-1} - (p-1) x_{p}~]^2}{(p-1)p}\end{aligned}\end{split}\]
2つのシミュレーションの結合
よくあるもう一つの問題は、2つのシミュレーションの変動を組み合わせる必要があることです。例えば、次の例を考えてみましょう:シミュレーションAとシミュレーションBがあり、それぞれ:math:`n`と:math:`m`ステップのシミュレーションです。ここで、シミュレーションBはシミュレーションAの続きであり、シミュレーションBは1から番号を始めるのではなく、:math:`n+1`から番号を始めます。この場合、部分和は問題ありません。シミュレーションAから:math:`X_{1,n}^A`を追加する必要があります。
(40)\[X_{1,n+m}^{AB} ≈ X_{1,n}^A + X_{1,m}^B\]
「2つの成分から部分分散を計算する場合、修正 Deltasigma を行う必要があります。」
(41)\[\sigma_{1,n+m}^{AB} ~=~ \sigma_{1,n}^A + \sigma_{1,m}^B +\Delta\sigma\]
もし、\(x_i^{AB}\) を、データポイントを統合し、再番号化したセットとして定義した場合、次のように記述できます:
(42)\[\sigma_{1,n+m}^{AB} ~=~ \sum_{i=1}^{n+m} \left[x_i^{AB} - \frac{X_{1,n+m}^{AB}}{n+m}\right]^2\]
そして、それによって
(43)\[\sum_{i=1}^{n+m} \left[x_i^{AB} - \frac{X_{1,n+m}^{AB}}{n+m}\right]^2 ~=~
\sum_{i=1}^{n} \left[x_i^{A} - \frac{X_{1,n}^{A}}{n}\right]^2 +
\sum_{i=1}^{m} \left[x_i^{B} - \frac{X_{1,m}^{B}}{m}\right]^2 +\Delta\sigma\]
または
(44)\[\begin{split}\begin{aligned}
\sum_{i=1}^{n+m} \left[(x_i^{AB})^2 - 2 x_i^{AB}\frac{X^{AB}_{1,n+m}}{n+m} + \left(\frac{X^{AB}_{1,n+m}}{n+m}\right)^2 \right] &-& \nonumber \\
\sum_{i=1}^{n} \left[(x_i^{A})^2 - 2 x_i^{A}\frac{X^A_{1,n}}{n} + \left(\frac{X^A_{1,n}}{n}\right)^2 \right] &-& \nonumber \\
\sum_{i=1}^{m} \left[(x_i^{B})^2 - 2 x_i^{B}\frac{X^B_{1,m}}{m} + \left(\frac{X^B_{1,m}}{m}\right)^2 \right] &=& \Delta\sigma\end{aligned}\end{split}\]
すべての \(x_i^2\) の項が消え、合計のカウンタ \(i\) に依存しない項を簡略化できます:
(45)\[\begin{split}\begin{aligned}
\frac{\left(X^{AB}_{1,n+m}\right)^2}{n+m} \,-\,
\frac{\left(X^A_{1,n}\right)^2}{n} \,-\,
\frac{\left(X^B_{1,m}\right)^2}{m} &-& \nonumber \\
2\,\frac{X^{AB}_{1,n+m}}{n+m}\sum_{i=1}^{n+m}x_i^{AB} \,+\,
2\,\frac{X^{A}_{1,n}}{n}\sum_{i=1}^{n}x_i^{A} \,+\,
2\,\frac{X^{B}_{1,m}}{m}\sum_{i=1}^{m}x_i^{B} &=& \Delta\sigma\end{aligned}\end{split}\]
私たちが2行目の3つの部分合計を認識し、(40) を使用して、次の結果を得ます:
(46)\[\Delta\sigma ~=~ \frac{\left(mX^A_{1,n} - nX^B_{1,m}\right)^2}{nm(n+m)}\]
もし、m=1 を挿入してこの値を検証すると、(33) が返されます。
エネルギー項の合計
プログラム gmx energy は、エネルギー項を1つに合計することも可能です。*例*として、ポテンシャル + 運動エネルギー = 運動エネルギーを計算できます。部分的な平均を計算する場合、エネルギー項 \(S\) が \(s\) の場合に、これは簡単です。
(47)\[X_{m,n}^S ~=~ \sum_{i=m}^n \sum_{s=1}^S x_i^s ~=~ \sum_{s=1}^S \sum_{i=m}^n x_i^s ~=~ \sum_{s=1}^S X_{m,n}^s\]
変動に関しては、例えばポテンシャルと運動エネルギーの変動が打ち消し合うという点を考慮すると、さらに複雑になります。しかし、以前と同様の方法を試すことができます。具体的には、次のように記述します:
(48)\[\sigma_{m,n}^S ~=~ \sum_{s=1}^S \sigma_{m,n}^s + \Delta\sigma\]
もし、(29) を入力した場合:
(49)\[\sum_{i=m}^n \left[\left(\sum_{s=1}^S x_i^s\right) - \frac{X_{m,n}^S}{m-n+1}\right]^2 ~=~
\sum_{s=1}^S \sum_{i=m}^n \left[\left(x_i^s\right) - \frac{X_{m,n}^s}{m-n+1}\right]^2 + \Delta\sigma\]
これにより、以下のようになります。
(50)\[\begin{split}\begin{aligned}
&~&\sum_{i=m}^n \left[\sum_{s=1}^S (x_i^s)^2 + \left(\frac{X_{m,n}^S}{m-n+1}\right)^2 -2\left(\frac{X_{m,n}^S}{m-n+1}\sum_{s=1}^S x_i^s + \sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'} \right)\right] \nonumber \\
&-&\sum_{s=1}^S \sum_{i=m}^n \left[(x_i^s)^2 - 2\,\frac{X_{m,n}^s}{m-n+1}\,x_i^s + \left(\frac{X_{m,n}^s}{m-n+1}\right)^2\right] ~=~\Delta\sigma \end{aligned}\end{split}\]
項 (x_i^s)^2 が打ち消し合うため、以下のように簡略化できます:
(51)\[\begin{split}\begin{aligned}
&~&\frac{\left(X_{m,n}^S\right)^2}{m-n+1} -2 \frac{X_{m,n}^S}{m-n+1}\sum_{i=m}^n\sum_{s=1}^S x_i^s -2\sum_{i=m}^n\sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'}\, - \nonumber \\
&~&\sum_{s=1}^S \sum_{i=m}^n \left[- 2\,\frac{X_{m,n}^s}{m-n+1}\,x_i^s + \left(\frac{X_{m,n}^s}{m-n+1}\right)^2\right] ~=~\Delta\sigma \end{aligned}\end{split}\]
または
(52)\[-\frac{\left(X_{m,n}^S\right)^2}{m-n+1} -2\sum_{i=m}^n\sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'}\, + \sum_{s=1}^S \frac{\left(X_{m,n}^s\right)^2}{m-n+1} ~=~\Delta\sigma\]
もし、現在、最初の項を (47) を使用して展開すると、次のようになります。
(53)\[-\frac{\left(\sum_{s=1}^SX_{m,n}^s\right)^2}{m-n+1} -2\sum_{i=m}^n\sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'}\, + \sum_{s=1}^S \frac{\left(X_{m,n}^s\right)^2}{m-n+1} ~=~\Delta\sigma\]
これにより、次のように再定義できます:
または
これにより
(56)\[-2\sum_{s=1}^S \left[X_{m,n}^s \sum_{s'=s+1}^S \sum_{i=m}^n x_i^{s'}\,+\,\sum_{i=m}^n x_i^s \sum_{s'=s+1}^S x_i^{s'}\right] ~=~\Delta\sigma\]
「すべてのデータポイント \(i\) を評価する必要があるため、一般的にはこれは不可能です。したがって、左辺 \(\sigma_{m,n}^S\) の \(\sigma_{m,n}^S\) の推定値を、利用可能なデータポイントのみを使用して計算できます。シミュレーション内のすべての時間ステップを使用して平均を計算できますが、エネルギーの保存頻度によって、その精度は制限されます。この操作は、例えば xmgr などのプログラムで簡単に実行できるため、GROMACS には組み込まれていません。