tecktom.com

出てくるもの (3):相空間の流れは面積を保つ

2026年10月15日8分で読めますAI生成教科書『虎の巻』第1部 第8章 Hamilton 形式と相空間
目次
  1. 発散が の速度場
  2. 数値積分と面積
  3. 木下の層

AI 生成・木下が未勉強

解析力学から様々な理論分野を組み立てる 第1部 第8章 §1.8.5 ★★ Hamilton 方程式の速度場は発散が 00 で、流れは相空間の面積を変えない。数値積分はこの性質を守る方法を選ぶ

発散が 00 の速度場

相空間の点の集まり(たとえば初期値に幅を持たせた点の集合)を流れに沿って動かすと、集まりの形は変わる。その面積(自由度 ff なら 2f2f 次元の体積)がどう変わるかは、速度場 (1.8.9) の発散で決まる。発散を計算すると

∑i(∂q˙i∂qi+∂p˙i∂pi)=∑i(∂2H∂qi∂pi−∂2H∂pi∂qi)=0(1.8.17)\sum_i\Bigl(\frac{\partial \dot q_i}{\partial q_i}+\frac{\partial \dot p_i}{\partial p_i}\Bigr)=\sum_i\Bigl(\frac{\partial^2H}{\partial q_i\partial p_i}-\frac{\partial^2H}{\partial p_i\partial q_i}\Bigr)=0\tag{1.8.17}

となる。2階の偏微分の順序を入れ替えても値が変わらないので、各項が打ち消し合う。流体の言葉では、発散が 00 の速度場は湧き出しも吸い込みもない流れで、流れに乗って動く領域の体積は変わらない。したがって Hamilton 方程式の流れは相空間の体積を保つ。これが Liouville の定理で、証明の詳細と確率分布の時間発展への応用は第3部第1章で扱う(第3部第1章)。

小さな時間 Δt\Delta t の間の流れで確かめる。自由度1で、点 (q,p)(q,p) が (q+Δt ∂H/∂p, p−Δt ∂H/∂q)(q+\Delta t\,\partial H/\partial p,\ p-\Delta t\,\partial H/\partial q) に移るとすると、この写像の Jacobi 行列式は

det⁡(1+Δt HqpΔt Hpp−Δt Hqq1−Δt Hpq)=1+Δt2(HqqHpp−Hqp2)\det\begin{pmatrix}1+\Delta t\,H_{qp}&\Delta t\,H_{pp}\\-\Delta t\,H_{qq}&1-\Delta t\,H_{pq}\end{pmatrix} =1+\Delta t^2\bigl(H_{qq}H_{pp}-H_{qp}^2\bigr)

で(Hqp=∂2H/∂q∂pH_{qp}=\partial^2H/\partial q\partial p などと略記)、Δt\Delta t の1次の項が消える。面積の変化率は Δt→0\Delta t\to0 で 00 になる。

減衰振動子 mq¨=−mω2q−mγq˙m\ddot q=-m\omega^2q-m\gamma\dot q は Hamilton 方程式の形に書けない。(q,p=mq˙)(q,p=m\dot q) で書いた速度場 (p/m, −mω2q−γp)(p/m,\ -m\omega^2q-\gamma p) の発散は −γ-\gamma で、相空間の面積は e−γt\mathrm{e}^{-\gamma t} で縮み、点の集まりは原点へ集まる。Hamilton 方程式の平衡点に漸近安定な点が現れないこと(1.8.3節)は、面積が縮まないことから従う。

数値積分と面積

Hamilton 方程式を計算機で解くとき、時間を刻み Δt\Delta t で区切って1歩ずつ進める。調和振動子 H=12p2+12ω2q2H=\frac12p^2+\frac12\omega^2q^2(m=1m=1)で2つの方法を比べる。前進 Euler 法は、今の値で右辺を計算して両方を同時に進める:

qn+1=qn+Δt pn,pn+1=pn−Δt ω2qn.(1.8.18)q_{n+1}=q_n+\Delta t\,p_n,\qquad p_{n+1}=p_n-\Delta t\,\omega^2q_n .\tag{1.8.18}

シンプレクティック Euler 法は、先に pp を進め、進めた pp で qq を進める:

pn+1=pn−Δt ω2qn,qn+1=qn+Δt pn+1.(1.8.19)p_{n+1}=p_n-\Delta t\,\omega^2q_n,\qquad q_{n+1}=q_n+\Delta t\,p_{n+1} .\tag{1.8.19}

どちらも1歩の誤差は O(Δt2)\mathcal{O}(\Delta t^2) で、短い時間なら同じ精度である。違いは1歩の写像の行列式に現れる。前進 Euler 法の行列 (1Δt−Δt ω21)\begin{pmatrix}1&\Delta t\\-\Delta t\,\omega^2&1\end{pmatrix} の行列式は 1+ω2Δt2>11+\omega^2\Delta t^2>1 で、1歩ごとに面積が増える。シンプレクティック Euler 法の行列 (1−ω2Δt2Δt−Δt ω21)\begin{pmatrix}1-\omega^2\Delta t^2&\Delta t\\-\Delta t\,\omega^2&1\end{pmatrix} の行列式は 11 で、面積が厳密に保たれる。

図

図 1.8.3 調和振動子(ω=1\omega=1、初期値 (q,p)=(1,0)(q,p)=(1,0))を刻み ωΔt=0.25\omega\Delta t=0.25 で 25 歩(ほぼ1周期)進めた点列。前進 Euler 法の軌道は1周で半径が約 2.13 倍になる。シンプレクティック Euler 法の点は厳密な円のすぐ近くの、わずかに傾いた楕円の上にある

前進 Euler 法では、エネルギー E=12p2+12ω2q2E=\frac12p^2+\frac12\omega^2q^2 が1歩ごとに正確に 1+ω2Δt21+\omega^2\Delta t^2 倍になる(下の例題)。シンプレクティック Euler 法では EE は保存しないが、少し変形した2次式 E~=12p2+12ω2q2−12ω2Δt qp\tilde E=\frac12p^2+\frac12\omega^2q^2-\frac12\omega^2\Delta t\,qp が厳密に保存し、EE は E~\tilde E のまわりで振動するだけで増え続けない。面積を保つ1歩の写像をシンプレクティックな写像と呼び、こうした積分法は、惑星の軌道や分子動力学のように長い時間にわたる計算で使われる。時間発展そのものが面積を保つ写像の連続であるという見方は、第1部第12章の正準変換で一般の形にする(第1部第12章)。

例題 1.8.6 2つの Euler 法のエネルギー ★★

オリジナル調和振動子 H=12p2+12ω2q2H=\frac12p^2+\frac12\omega^2q^2 を刻み Δt\Delta t で数値積分する。

  1. (1) 前進 Euler 法 (1.8.18) の1歩で、En=12pn2+12ω2qn2E_n=\frac12p_n^2+\frac12\omega^2q_n^2 が En+1=(1+ω2Δt2)EnE_{n+1}=(1+\omega^2\Delta t^2)E_n となることを示せ。
  2. (2) ωΔt=0.1\omega\Delta t=0.1 で 628 歩(約 10 周期)進めたとき、EE は初めの何倍になるか。
  3. (3) シンプレクティック Euler 法 (1.8.19) の1歩で E~=12p2+12ω2q2−12ω2Δt qp\tilde E=\frac12p^2+\frac12\omega^2q^2-\frac12\omega^2\Delta t\,qp が変わらないことを示せ。
解答

(1) pn+1=pn−Δt ω2qnp_{n+1}=p_n-\Delta t\,\omega^2q_n, qn+1=qn+Δt pnq_{n+1}=q_n+\Delta t\,p_n を入れて展開すると、

12pn+12+12ω2qn+12=12(pn2−2ω2Δt pnqn+ω4Δt2qn2)+12ω2(qn2+2Δt qnpn+Δt2pn2).\tfrac12p_{n+1}^2+\tfrac12\omega^2q_{n+1}^2=\tfrac12\bigl(p_n^2-2\omega^2\Delta t\,p_nq_n+\omega^4\Delta t^2q_n^2\bigr)+\tfrac12\omega^2\bigl(q_n^2+2\Delta t\,q_np_n+\Delta t^2p_n^2\bigr).

交差項 ∓ω2Δt pnqn\mp\omega^2\Delta t\,p_nq_n が打ち消し合い、残りは 12pn2(1+ω2Δt2)+12ω2qn2(1+ω2Δt2)=(1+ω2Δt2)En\frac12p_n^2(1+\omega^2\Delta t^2)+\frac12\omega^2q_n^2(1+\omega^2\Delta t^2)=(1+\omega^2\Delta t^2)E_n。

(2) (1.01)628=e628ln⁡1.01=e6.249≈517(1.01)^{628}=\mathrm{e}^{628\ln1.01}=\mathrm{e}^{6.249}\approx517 倍。振幅は 517≈22.7\sqrt{517}\approx22.7 倍になり、計算結果は振動子の運動を表さない。同じ刻みのシンプレクティック Euler 法では、EE の初めの値からのずれは 10 周期の間ずっと 5.3% 以内にとどまる。

(3) E~\tilde E を行列で E~=12zTMz\tilde E=\frac12z^{\mathsf T}Mz, z=(q,p)Tz=(q,p)^{\mathsf T}, M=(ω2−12ω2Δt−12ω2Δt1)M=\begin{pmatrix}\omega^2&-\frac12\omega^2\Delta t\\-\frac12\omega^2\Delta t&1\end{pmatrix} と書く。1歩の写像は z↦Azz\mapsto Az, A=(1−ω2Δt2Δt−ω2Δt1)A=\begin{pmatrix}1-\omega^2\Delta t^2&\Delta t\\-\omega^2\Delta t&1\end{pmatrix} なので、ATMA=MA^{\mathsf T}MA=M を示せばよい。まず

MA=(ω2−12ω4Δt212ω2Δt−32ω2Δt+12ω4Δt31−12ω2Δt2).MA=\begin{pmatrix}\omega^2-\frac12\omega^4\Delta t^2&\frac12\omega^2\Delta t\\[2pt]-\frac32\omega^2\Delta t+\frac12\omega^4\Delta t^3&1-\frac12\omega^2\Delta t^2\end{pmatrix}.

これに左から ATA^{\mathsf T} を掛けると、(1,1)(1,1) 成分は(1−ω2Δt2)(ω2−12ω4Δt2)−ω2Δt(−32ω2Δt+12ω4Δt3)=ω2(1-\omega^2\Delta t^2)(\omega^2-\frac12\omega^4\Delta t^2)-\omega^2\Delta t(-\frac32\omega^2\Delta t+\frac12\omega^4\Delta t^3)=\omega^2、(1,2)(1,2) 成分は (1−ω2Δt2)⋅12ω2Δt−ω2Δt(1−12ω2Δt2)=−12ω2Δt(1-\omega^2\Delta t^2)\cdot\frac12\omega^2\Delta t-\omega^2\Delta t(1-\frac12\omega^2\Delta t^2)=-\frac12\omega^2\Delta t、(2,2)(2,2) 成分は Δt⋅12ω2Δt+1−12ω2Δt2=1\Delta t\cdot\frac12\omega^2\Delta t+1-\frac12\omega^2\Delta t^2=1 で、どれも MM の成分に一致する((2,1)(2,1) 成分は対称性から (1,2)(1,2) と同じ)。E~\tilde E と EE の差 12ω2Δt qp\frac12\omega^2\Delta t\,qp は ωΔt\omega\Delta t に比例する大きさなので、EE は E~\tilde E のまわりで O(ωΔt)\mathcal{O}(\omega\Delta t) の割合だけ振動し、増え続けない。

木下の勉強ステータス

木下はまだこの記事を勉強していません。

AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com

← AI生成教科書『虎の巻』の記事一覧へ