解析力学から様々な理論分野を組み立てる 第1部 第8章 §1.8.5 ★★ Hamilton 方程式の速度場は発散が 0 で、流れは相空間の面積を変えない。数値積分はこの性質を守る方法を選ぶ
発散が 0 の速度場
相空間の点の集まり(たとえば初期値に幅を持たせた点の集合)を流れに沿って動かすと、集まりの形は変わる。その面積(自由度 f なら 2f 次元の体積)がどう変わるかは、速度場 (1.8.9) の発散で決まる。発散を計算すると
i∑(∂qi∂q˙i+∂pi∂p˙i)=i∑(∂qi∂pi∂2H−∂pi∂qi∂2H)=0(1.8.17)
となる。2階の偏微分の順序を入れ替えても値が変わらないので、各項が打ち消し合う。流体の言葉では、発散が 0 の速度場は湧き出しも吸い込みもない流れで、流れに乗って動く領域の体積は変わらない。したがって Hamilton 方程式の流れは相空間の体積を保つ。これが Liouville の定理で、証明の詳細と確率分布の時間発展への応用は第3部第1章で扱う(第3部第1章)。
小さな時間 Δt の間の流れで確かめる。自由度1で、点 (q,p) が (q+Δt∂H/∂p, p−Δt∂H/∂q) に移るとすると、この写像の Jacobi 行列式は
det(1+ΔtHqp−ΔtHqqΔtHpp1−ΔtHpq)=1+Δt2(HqqHpp−Hqp2)
で(Hqp=∂2H/∂q∂p などと略記)、Δt の1次の項が消える。面積の変化率は Δt→0 で 0 になる。
減衰振動子 mq¨=−mω2q−mγq˙ は Hamilton 方程式の形に書けない。(q,p=mq˙) で書いた速度場 (p/m, −mω2q−γp) の発散は −γ で、相空間の面積は e−γt で縮み、点の集まりは原点へ集まる。Hamilton 方程式の平衡点に漸近安定な点が現れないこと(1.8.3節)は、面積が縮まないことから従う。
数値積分と面積
Hamilton 方程式を計算機で解くとき、時間を刻み Δt で区切って1歩ずつ進める。調和振動子 H=21p2+21ω2q2(m=1)で2つの方法を比べる。前進 Euler 法は、今の値で右辺を計算して両方を同時に進める:
qn+1=qn+Δtpn,pn+1=pn−Δtω2qn.(1.8.18)
シンプレクティック Euler 法は、先に p を進め、進めた p で q を進める:
pn+1=pn−Δtω2qn,qn+1=qn+Δtpn+1.(1.8.19)
どちらも1歩の誤差は O(Δt2) で、短い時間なら同じ精度である。違いは1歩の写像の行列式に現れる。前進 Euler 法の行列 (1−Δtω2Δt1) の行列式は 1+ω2Δt2>1 で、1歩ごとに面積が増える。シンプレクティック Euler 法の行列 (1−ω2Δt2−Δtω2Δt1) の行列式は 1 で、面積が厳密に保たれる。

図 1.8.3 調和振動子(ω=1、初期値 (q,p)=(1,0))を刻み ωΔt=0.25 で 25 歩(ほぼ1周期)進めた点列。前進 Euler 法の軌道は1周で半径が約 2.13 倍になる。シンプレクティック Euler 法の点は厳密な円のすぐ近くの、わずかに傾いた楕円の上にある
前進 Euler 法では、エネルギー E=21p2+21ω2q2 が1歩ごとに正確に 1+ω2Δt2 倍になる(下の例題)。シンプレクティック Euler 法では E は保存しないが、少し変形した2次式 E~=21p2+21ω2q2−21ω2Δtqp が厳密に保存し、E は E~ のまわりで振動するだけで増え続けない。面積を保つ1歩の写像をシンプレクティックな写像と呼び、こうした積分法は、惑星の軌道や分子動力学のように長い時間にわたる計算で使われる。時間発展そのものが面積を保つ写像の連続であるという見方は、第1部第12章の正準変換で一般の形にする(第1部第12章)。
例題 1.8.6 2つの Euler 法のエネルギー ★★
オリジナル調和振動子 H=21p2+21ω2q2 を刻み Δt で数値積分する。
- (1) 前進 Euler 法 (1.8.18) の1歩で、En=21pn2+21ω2qn2 が En+1=(1+ω2Δt2)En となることを示せ。
- (2) ωΔt=0.1 で 628 歩(約 10 周期)進めたとき、E は初めの何倍になるか。
- (3) シンプレクティック Euler 法 (1.8.19) の1歩で E~=21p2+21ω2q2−21ω2Δtqp が変わらないことを示せ。
解答
(1) pn+1=pn−Δtω2qn, qn+1=qn+Δtpn を入れて展開すると、
21pn+12+21ω2qn+12=21(pn2−2ω2Δtpnqn+ω4Δt2qn2)+21ω2(qn2+2Δtqnpn+Δt2pn2).
交差項 ∓ω2Δtpnqn が打ち消し合い、残りは 21pn2(1+ω2Δt2)+21ω2qn2(1+ω2Δt2)=(1+ω2Δt2)En。
(2) (1.01)628=e628ln1.01=e6.249≈517 倍。振幅は 517≈22.7 倍になり、計算結果は振動子の運動を表さない。同じ刻みのシンプレクティック Euler 法では、E の初めの値からのずれは 10 周期の間ずっと 5.3% 以内にとどまる。
(3) E~ を行列で E~=21zTMz, z=(q,p)T,
M=(ω2−21ω2Δt−21ω2Δt1) と書く。1歩の写像は z↦Az, A=(1−ω2Δt2−ω2ΔtΔt1) なので、ATMA=M を示せばよい。まず
MA=(ω2−21ω4Δt2−23ω2Δt+21ω4Δt321ω2Δt1−21ω2Δt2).
これに左から AT を掛けると、(1,1) 成分は(1−ω2Δt2)(ω2−21ω4Δt2)−ω2Δt(−23ω2Δt+21ω4Δt3)=ω2、(1,2) 成分は (1−ω2Δt2)⋅21ω2Δt−ω2Δt(1−21ω2Δt2)=−21ω2Δt、(2,2) 成分は Δt⋅21ω2Δt+1−21ω2Δt2=1 で、どれも M の成分に一致する((2,1) 成分は対称性から (1,2) と同じ)。E~ と E の差 21ω2Δtqp は ωΔt に比例する大きさなので、E は E~ のまわりで O(ωΔt) の割合だけ振動し、増え続けない。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com