シンプレクティック積分法について∗ 陰山 聡 神戸大学 システム情報学研究科 計算科学専攻 ver. 140110a 1 正準方程式の厳密解 1 自由度系の相空間 (q, p) 中の点を ( r= q p ) (1) ˆ などと書くことにする。 と書く。関数 f (r) に作用する演算子をハットをつけて A ˆ 関数 h(r) をパラメータとし、f (r) に作用する演算子 D(h) をポアッソン括弧を使い ∂f ∂h ∂h ∂f ˆ D(h)f = {f, h} = − ∂q ∂p ∂q ∂p (2) と定義すると、ハミルトニアンが H で与えられる系の正準方程式は dr ˆ = D(H) r dt (3) である。 時刻 t の状態を r = r(t)、そこから τ だけ時間が経った状態を r(t + τ ) とする。テーラー展開と式 (3) より ) (∞ ) (∞ ∑ τ n dn ∑ τn ˆ D(H) r r(t + τ ) = r= n! dtn n! n=0 ˆ の指数関数を Exp(A) ˆ = 演算子 A ∑∞ n=0 n=0 Aˆn /n! と定義すると、正準方程式の形式的な厳密解は ˆ r(t + τ ) = Exp(τ D(H)) r(t) (4) ˆ と書ける。つまり Exp(τ D(H)) は状態を時間 τ だけ進める時間推進の演算子である。 ˆ 一般のハミルトニアン H(r) に対する時間推進演算子 Exp(τ D(H)) を具体的に計算することができないが、 n ˆ H が p だけに依存する関数 K(p) の時は D(K) r = 0 (n ≥ 2) なので ( ) ( ) ( ) q + τ dK(p) dK ∂ dp ˆ ˆ Exp(τ D(K)r = 1 + τ D(K) r = 1 + τ r= (5) dp ∂q p と厳密に書ける。任意の τ について成り立つこの式は等速直線運動の演算子である。同様に H = U (q) の時に も時間推進演算子の厳密な形を具体的に求めることができ、 ( ) ) ( ( ) q ∂ dU ˆ )r = 1 + τ D(U ˆ ) r = 1−τ r= (6) Exp(τ D(U dq ∂p p − τ dU (q) dq ∗ このノートは神戸大学工学部の講義「解析力学 B」(2013 年度後期)の講義資料から一部を抜き出したものである。 1 である。 ˆ ˆ )r のような厳密に解ける 以下に見るように、シンプレクティック積分法は上の Exp(τ D(K)r や Exp(τ D(U ˆ 時間推進演算子を組み合わせて(合成変換して)本来の時間推進演算子 Exp(τ D(H)r を近似する手法である。 ˆ )) はシ なお、任意の運動は正準変換なので、式 (4) から、ある関数 f (r) から構成される演算子 Exp(τ D(f ンプレクティック性をもつ演算子であることがわかる。また、r(t) から r ′ = r(t + τ ) への変換が式 (4) の形で 書けるのであればこれは(H をハミルトニアンとする)運動と解釈することができる。 2 シンプレクティック積分法 ハミルトニアンが H(q, p) = K(p) + U (q) (7) のときの 1 次精度シンプレクティック積分法の一つとして以下の公式がある。 dK (p) dp dU ′ p′ = p − τ (q ) dq q′ = q + τ (8) (9) ここで τ < 1 である。これは dK (p) dp dK p∗ = p − τ (q) dq q∗ = q + τ dU ∗ (p ) dp dU ∗ p′ = p∗ − τ (q ) dq q′ = q∗ + τ (10) (11) (12) (13) という二つの変換に分けられる。式 (10) と (11) は、ハミルトニアン K による厳密な時間推進 (5) であり、式 (12) と (13) は、ハミルトニアン U による(新しい正準座標 r ∗ の下で計算した)厳密な時間推進 (6) である。 つまりこの積分法は演算子を使って r ′ = Sˆ r (14) ˆ ˆ ˆ S = Exp(τ D(K)) Exp(τ D(U )) (15) と書ける。先に作用させる K の演算子が左にくることに注意する1 。 式 (15) は次のようにしても確認できる。式 (9) を書き換えると dU dK (p + τ ) dq dp ( ) ( )2 3 ( )3 4 dU dK d2 U τ 2 dK d U τ 3 dK d U =p−τ +τ + + + ··· dq dp dq 2 2! dp dq 3 3! dp dq 4 } {∞ ∑ τ n ( dK d )n dU =p−τ n! dp dq dq n=0 {∞ }( ) ∑ τn dU n ˆ = D(K) p−τ n! dq n=0 ( ) ˆ ˆ ) p = Exp(τ D(K)) 1 + τ D(U p′ = p − τ ˆ ˆ )) p = Exp(τ D(K)) Exp(τ D(U (16) 1 たとえば、3 次元カーテシアン座標 (x, y, z) の z 軸周りの回転 R ˆ と x 軸方向の平行移動 Tˆ は非可換である。局所座標を回転(R ˆ) ˆ Tˆ r である。 してから変換後の x 軸方向に平行移動(Tˆ )するという操作は r ′ = R 2 また、式 (8) も同じ形に書けることがわかるので、式 (15) が成り立つ。 このシンプレクティック積分法はハミルトニアン H による(未知の)時間推進演算子を、二つの(既知の) 時間推進演算子の合成で ˆ ˆ ˆ ˆ )) = Sˆ Exp(τ D(H)) = Exp(D(K + U )) ∼ Exp(τ D(K)) Exp(τ D(U (17) と近似した方法と言える。 ˆ ˆ )) はどちらも正準変換であり、正準変換の合成変換は正準変換なので、 変換 Exp(τ D(K)) と変換 Exp(τ D(U ˆ この演算子 S はシンプレクティック性を持つことがわかる。 3 計算精度 ˆ ˆ とすると、二つの演算子の展開 近似式 (17) の誤差を見積もってみよう。Exp(τ D(H)) = Sˆ + Err )2 ( ) 2 ( ˆ ˆ ) + ··· ˆ ˆ ˆ ) + τ D(K) + τ D(U Exp(τ D(H)) = 1 + τ D(K) + τ D(U 2! ( )( ) 2 τ ˆ τ2 ˆ 2 2 ˆ ˆ ˆ S = 1 + τ D(K) + D(K) + · · · 1 + τ D(U ) + D(U ) + · · · 2! 2! を比較して ) τ2 ( ˆ ˆ ) − D(U ˆ )D(K) ˆ ˆ D(K)D(U + ··· Err(τ )= 2 (18) つまり 1 ステップの誤差は O(τ 2 ) である。これは 1 次オイラー法と同じである。 4 エネルギーの計算精度 1 ステップあたりの精度は同じなのに、1 次オイラー法とは異なり、シンプレクティック法は長時間積分し ても全エネルギーが本来の値から大きくずれることはない。その理由は以下の通りである。 シンプレクティック積分法の演算子 Sˆ は正準変換なので、それに対応する(仮想的な)運動があると期待で きる。実際 ˆ ˆ )) = Exp(τ D( ˆ H)) ˜ Sˆ = Exp(τ D(K)) Exp(τ D(U (19) と書けることが以下のように確認できる。 ˆ B ˆ に対して以下の公式(Baker-Campbell-Hausdorff 公式)が成り立つ。 一般に非可換演算子 A, ˆ Exp(B) ˆ = Exp(C) ˆ Exp(A) (20) ˆ + 1 [A, ˆ B] ˆ + 1 [Aˆ − B, ˆ [A, ˆ B]] ˆ − 1 [B, ˆ [A, ˆ [A, ˆ B]]] ˆ + ··· Cˆ = Aˆ + B 2 12 24 (21) ˆ B] ˆ = AˆB ˆ −B ˆ Aˆ [A, (22) ˆ ), D(g)] ˆ ˆ [D(f = D({g, f }) (23) {f, {g, h}} + {g, {h, f }} + {h, {f, g}} = 0 (24) ˆ ˆ )) = Exp(C) ˆ Sˆ = Exp(τ D(K)) Exp(τ D(U (25) α = {U, K} (26) ここで 等である。定義から、任意の f , g に対して が成り立つ。これはヤコビ恒等式 を使えば証明できる。 3 とすると 2 τ3 ˆ τ4 ˆ ˆ ˆ ) + τ D(α) ˆ ˆ ˆ ˆ Cˆ = τ D(K) + τ D(U + [D(K − U ), D(α)] − [D(U ), [D(K), D(α)]] + ··· 2 12 24 2 τ3 ˆ τ4 ˆ ˆ ˆ ) + τ D(α) ˆ + D({α, K − U }) − D({{α, K} , U }) + · · · = τ D(K) + τ D(U 2 12 24 τ τ2 τ3 ˆ = τ D(K +U + α+ {α, K − U } − {{α, K} , U } + · · · ) 2 12 24 (27) 従って 2 3 ˜ = K + U + τ α + τ {α, K − U } − τ {{α, K} , U } + · · · H (28) 2 12 24 ˆ H)) ˜ による推進を厳密に実装したものなので、どれだけ を得る。シンプレクティック積分法は演算子 Exp(τ D( ˜ を一定に保つ。上の式は、その H ˜ が本来の系のエネルギー H とは O(τ ) だけしかずれて 積分しても、常に H いないことを意味する。つまりシンプレクティック積分法ではエネルギーの誤差は蓄積しない。 5 その他 式 (15) において K による推進と H による推進の順番を入れ替えて ˆ ˆ )) Exp(τ D(K)) ˆ Exp(τ D(H)) ∼ Exp(τ D(U (29) とすれば別の 1 次精度のシンプレクティック法ができる。具体的なアルゴリズムは dU (q) dq dK ′ (p ) q′ = q + τ dp p′ = p − τ (30) (31) である。 これらのシンプレクティック法は 1 次精度である。精度を上げるためには次のようにすればよい。一般に演 ˆとB ˆ に対して 算子 A ˆ Exp(τ B) ˆ Exp( τ A) ˆ + O(τ 3 ) ˆ = Exp( τ A) (32) Exp(τ Aˆ + τ B) 2 2 なので、そこで、ハミルトニアン H = K(p) + U (q) に対する時間推進演算子を τ ˆ ˆ ˆ )) Exp( τ D(K)) ˆ Exp(τ D(H)) ∼ Exp( D(K)) Exp(τ D(U 2 2 (33) と近似すれば、2 次精度の数値積分法になっている。右辺は正準変換の合成変換なので、これは明らかにシン プレクティックな積分法である。より高次のシンプレクティック法を構成方法については [2] を参照のこと。 References [1] 吉田 春男. ハミルトニアン力学系のためのシンプレクティック数値積分法. 共同研究 「非線形現象の数理科 学」湘南レクチャー論文集, p. 68–83, 1997. [2] H. Yoshida. Construction of Higher Order Symplectic Integrators. Phys. Lett., Vol. 102, pp. 262–268., 1990 4
© Copyright 2024 ExpyDoc