うべの時空代数

気になる点がありましたらコメントくださいm(_ _)m

エントロピーによる温度の定義

まず通常の温度TというものはエントロピーS,エネルギーE,その他エントロピーの示量変数Xに対し熱力学的に
T^{-1}=\left(\displaystyle\frac{\partial S}{\partial E}\right)_{X}
と定義される.右辺の意味を,エントロピーの存在と性質を認め温度の定義を知らない立場になって考える.ある孤立系を少なくとも熱的に接触したそれぞれ平衡状態の系A,Bに分割することを考える.系A,Bのエネルギーとその他示量変数をそれぞれE_{\mathrm{A}}E_{\mathrm{B}}X_{\mathrm{A}}X_{\mathrm{B}}とすると孤立系のエネルギーとその他示量変数はE=E_{\mathrm{A}}+E_{\mathrm{B}}=\mathrm{const}.X=X_{\mathrm{A}}+X_{\mathrm{B}}=\mathrm{const}.である.孤立系が平衡状態のときはそれぞれE_{\mathrm{A}}^{\mathrm{eq}}E_{\mathrm{B}}^{\mathrm{eq}}=E-E_{\mathrm{A}}^{\mathrm{eq}}X_{\mathrm{A}}^{\mathrm{eq}}X_{\mathrm{B}}^{\mathrm{eq}}=X-X_{\mathrm{A}}^{\mathrm{eq}}であるとする.系A,Bがそれぞれ平衡である状態から,孤立系が自発的に平衡状態になることを考える.それぞれが平衡状態のときの孤立系のエントロピーS_{\mathrm{AB}}=S_{\mathrm{AB}}(E_{\mathrm{A}},\ X_{\mathrm{A}})とし,系A,BのエントロピーはそれぞれS_{\mathrm{A}}=S_{\mathrm{A}}(E_{\mathrm{A}},\ X_{\mathrm{A}})S_{\mathrm{B}}=S_{\mathrm{B}}(E_{\mathrm{B}},\ X_{\mathrm{B}})であるとする.S_{\mathrm{AB}}は平衡状態で要請より最大になるため,エネルギーに対して連続的微分可能である要請より
\left(\displaystyle\frac{\partial S_{\mathrm{AB}}}{\partial E_{\mathrm{A}}}\right)_{E_{\mathrm{A}}=E_{\mathrm{A}}^{\mathrm{eq}},\ X_{\mathrm{A}}=X_{\mathrm{A}}^{\mathrm{eq}}}=0
である.エントロピーは示量変数であるためS_{\mathrm{AB}}=S_{\mathrm{A}}+S_{\mathrm{B}}である.よって
\left(\displaystyle\frac{\partial S_{\mathrm{AB}}}{\partial E_{\mathrm{A}}}\right)_{E_{\mathrm{A}}=E_{\mathrm{A}}^{\mathrm{eq}},\ X_{\mathrm{A}}=X_{\mathrm{A}}^{\mathrm{eq}}}=\left(\displaystyle\frac{\partial S_{\mathrm{A}}}{\partial E_{\mathrm{A}}}\right)_{E_{\mathrm{A}}=E_{\mathrm{A}}^{\mathrm{eq}},\ X_{\mathrm{A}}=X_{\mathrm{A}}^{\mathrm{eq}}}+\left(\displaystyle\frac{\partial S_{\mathrm{B}}}{\partial E_{\mathrm{A}}}\right)_{E_{\mathrm{A}}=E_{\mathrm{A}}^{\mathrm{eq}},\ X_{\mathrm{A}}=X_{\mathrm{A}}^{\mathrm{eq}}}\\
=\left(\displaystyle\frac{\partial S_{\mathrm{A}}}{\partial E_{\mathrm{A}}}\right)_{E_{\mathrm{A}}=E_{\mathrm{A}}^{\mathrm{eq}},\ X_{\mathrm{A}}=X_{\mathrm{A}}^{\mathrm{eq}}}+\left(\displaystyle\frac{\partial E_{\mathrm{B}}}{\partial E_{\mathrm{A}}}\displaystyle\frac{\partial S_{\mathrm{B}}}{\partial E_{\mathrm{B}}}\right)_{E_{\mathrm{A}}=E_{\mathrm{A}}^{\mathrm{eq}},\ X_{\mathrm{A}}=X_{\mathrm{A}}^{\mathrm{eq}}}\\
=\left(\displaystyle\frac{\partial S_{\mathrm{A}}}{\partial E_{\mathrm{A}}}\right)_{E_{\mathrm{A}}=E_{\mathrm{A}}^{\mathrm{eq}},\ X_{\mathrm{A}}=X_{\mathrm{A}}^{\mathrm{eq}}}-\left(\displaystyle\frac{\partial S_{\mathrm{B}}}{\partial E_{\mathrm{B}}}\right)_{E_{\mathrm{B}}=E_{\mathrm{B}}^{\mathrm{eq}},\ X_{\mathrm{B}}=X_{\mathrm{B}}^{\mathrm{eq}}}=0\\
\therefore\left(\displaystyle\frac{\partial S_{\mathrm{A}}}{\partial E_{\mathrm{A}}}\right)_{E_{\mathrm{A}}=E_{\mathrm{A}}^{\mathrm{eq}},\ X_{\mathrm{A}}=X_{\mathrm{A}}^{\mathrm{eq}}}=\left(\displaystyle\frac{\partial S_{\mathrm{B}}}{\partial E_{\mathrm{B}}}\right)_{E_{\mathrm{B}}=E_{\mathrm{B}}^{\mathrm{eq}},\ X_{\mathrm{B}}=X_{\mathrm{B}}^{\mathrm{eq}}}
であり,とりあえず例の右辺は熱平衡状態で等しくなる物理量であるといえる.
ここからは平衡状態の孤立系とそれぞれ平衡状態の系A,Bのエントロピーの関数形は同じS(\bullet,\ \bullet)であるとする.これは物理学的には平衡状態の孤立系で系A,Bの間に体積の無視できる透熱壁がある場合でも,それを取り除いても自発的変化が起こらない場合を考えるということである.さてエントロピーの最大原理より
S(E,\ X)\geqslant S_{\mathrm{AB}}(E_{\mathrm{A}},\ X_{\mathrm{A}})
である.ただし等号は元から孤立系が平衡状態であった場合である.ここで
\lambda\in(0,\ 1),\\
E_{\mathrm{A}}=\lambda E_1,\ E_{\mathrm{B}}=\left\{1-\lambda\right\}E_2,\\
X_{\mathrm{A}}=\lambda X_1,\ X_{\mathrm{B}}=\left\{1-\lambda\right\}X_2
を満たす量E_1E_2X_1X_2を考える.すると
S_{\mathrm{AB}}=S(\lambda E_1,\ \lambda X_1)+S(\left\{1-\lambda\right\}E_2,\ \left\{1-\lambda\right\}X_2)\\
=\lambda S(E_1,\ X_1)+\left\{1-\lambda\right\}S(E_2,\ X_2)\\
E=\lambda E_1+\left\{1-\lambda\right\}E_2,\\
X=\lambda X_1+\left\{1-\lambda\right\}X_2
であるため
\therefore S(\lambda E_1+\left\{1-\lambda\right\}E_2,\ \lambda X_1+\left\{1-\lambda\right\}X_2)\geq \lambda S(E_1,\ X_1)+\left\{1-\lambda\right\}S(E_2,\ X_2)
エントロピーはエネルギーの広義上凸関数であることがわかる.よって
\displaystyle\left(\frac{\partial^2S}{\partial E^2}\right)_{X}\leqslant0
が成り立つ.またエントロピーは要請よりエネルギーの狭義単調増加関数であるため
\displaystyle\left(\frac{\partial S}{\partial E}\right)_{X}\gt0
が成り立つ.よって例の右辺は正の実数を終域とするエネルギーの広義単調減少関数であるといえる.孤立系の平衡状態とはエネルギーだけ系Aは+\varepsilon>0,系Bは-\varepsilon異なる状態からの自発的変化を考える.孤立系の平衡状態になると系Aから系Bに\varepsilonだけエネルギーが移動したと考えられる.例の右辺はエネルギーの広義単調減少関数であるため
\displaystyle\left(\frac{\partial S_A}{\partial E_A}\right)_{X_A}\lt\displaystyle\left(\frac{\partial S_B}{\partial E_B}\right)_{X_B}
が成り立つ.ここで広義温度という物理量を熱的接触によりエネルギーが流出する側が高く(高温),流入する側が低い(低温),物理量であると定める.また温度はそれのみで例の右辺が決まる物理量であると定める.ある広義温度Bに対し
f(B)=\displaystyle\left(\frac{\partial S}{\partial E}\right)_{X}
という関数fを考えると,例の右辺の性質より
B_\mathrm{A}\gt B_\mathrm{B}\to f(B_\mathrm{A})\lt f(B_\mathrm{B}),\\
f(B)>0
が成り立つ.よって関数fは正の実数を終域とする広義温度の狭義単調減少関数である.今,この関数fを決めると具体的な温度が決まる.これはfは狭義単調減少関数であり逆関数が存在するため,例の右辺の狭義単調減少関数f^{-1}を決めるのと同値である.f
f(B):=\frac{1}{B}
とすると,これは通常の温度である.他の簡単な狭義単調減少関数は
f(B):=-B
である.この温度はfの終域より負に値をとる.通常の温度Tとの関係は
B=-\displaystyle\frac{1}{T}
である.この温度はエントロピー表示の熱力学や,統計力学に便利である.日常的に使用するには気持ちが悪いのでCelsius温度のように定数を加えることで下駄を履かせて
b/^\circ\mathrm{D}=B/\mathrm{D}+C=-\displaystyle\frac{1}{T/\tilde{\mathrm{K}}}+C
としたものを考えるといいかもしれない.ただし\tilde{\mathrm{K}}は何かしらの絶対温度の単位であり,\mathrm{D}^\circ\mathrm{D}はその逆数である.このようにしてエントロピーの存在と性質を認める立場なら,温度はエントロピーのエネルギー偏微分の狭義単調減少関数であればどのように定義してもいいのである.

物理学徒のための常用単位系2

\def\tr#1{\widetilde{\mathrm{#1}}}\def\mr#1{\mathrm{#1}}\def\s{\mathrm{s}}\def\x{\mathrm{x}}\def\u{\mathrm{u}}\def\dec#1{10^{#1}\ }前回(物理学徒のための常用単位系 - うべの時空代数)とは異なり温度の逆数の負の単位を適切なスケールに調節し,温度は通常の温度の逆数の負(新しい温度の定義 - うべの時空代数)を使うようにした.

記号 sux cheks SI
時間 \s \dec{0}\s 1\ \s
長さ \x \dec{-10}c\s \approx2.998\ \mr{cm}
質量 \u \dec{50}c^{-2}h\s^{-1} \approx0.7372\ \mr{kg}
電圧 \tr{V} \dec{15}he^{-1}\s^{-1} \approx4.136\ \mr{V}
温度 \tr{D} \dec{-15}h^{-1}k\s \approx2.084\times\dec{-5}/\mr{K}
周波数 \mathrm{Hz} \s^{-1} \dec{0}\s^{-1} 1\ \s^{-1}
\tr{N} \u\x\s^{-2} \dec{40}c^{-1}h\s^{-2} \approx0.02210\ \mr{N}
エネルギー \tr{J} \u\x^2\s^{-2}=\tr{N}\x \dec{30}h\s^{-1} \approx0.0006626\ \mr{J}
仕事率 \tr{W} \u\x^2\s^{-3}=\tr{J}/\s \dec{30}h\s^{-2} \approx0.0006626\ \mr{W}
圧力 \tr{Pa} \u\x^{-1}\s^{-2}=\tr{N}/\x^2 \dec{60}c^{-3}h\s^{-4} \approx24.59\ \mr{Pa}
電荷 \tr{C} \u\x^2\s^{-2}\tr{V}^{-1}=\tr{J}/\tr{V} \dec{15}e \approx0.0001602\ \mr{C}
電流 \tr{A} \u\x^2\s^{-3}\tr{V}^{-1}=\tr{C}/\tr{s} \dec{15}e\s^{-1} \approx0.0001602\ \mr{A}
電気抵抗 \tr{\Omega} \u^{-1}\x^{-2}\s^3\tr{V}^2=\tr{V}/\tr{A} \dec{0}he^{-2} \approx25810\ \mr{\Omega}
コンダクタンス \tr{S} \u\x^2\s^{-3}\tr{V}^{-2}=\tr{A}/\tr{V} \dec{0}h^{-1}e^2 \approx0.00003874\ \mr{S}
キャパシタンス \tr{F} \u\x^2\s^{-2}\tr{V}^{-2}=\tr{C}/\tr{V} \dec{0}h^{-1}e^2\s \approx0.00003874\ \mr{F}
インダクタンス \tr{H} \u^{-1}\x^{-2}\s^4\tr{V}^2=\tr{Wb}/\tr{A} \dec{0}he^{-2}\s \approx25810\ \mr{H}
磁束 \tr{Wb} \tr{V}\s \dec{15}he^{-1} \approx4.136\ \mr{Wb}
電子ボルト e\tr{V} \mr{f}\tr{J} \dec{15}h\s^{-1} \approx4.136\ \mr{eV}
相対温度 ^\circ\mr{D}b/^\circ\mr{D}=B/\tr{D}+175.7 0\ ^\circ\mr{C}\stackrel{\approx}{\rightarrow}0.00008884\ ^\circ\mr{D}
面積\x^2 \dec{-20}c^2\mr{s}^2 \approx0.0008988\ \mr{m}^2
体積\x^3 \dec{-30}c^3\mr{s}^3 \approx0.00002694\ \mr{m}^3
速度\x/\s \dec{-10}c \approx0.02998\ \mr{m}/\s
加速度\x/\s^2 \dec{-10}c\s^{-1} \approx0.02998\ \mr{m}/\s^2
運動量\tr{N}\s \dec{40}c^{-1}h\s^{-1} \approx0.02210\ \mr{N}\s
角運動量\tr{N}\x\s \dec{30}h \approx0.0006626\ \mr{N}\mr{m}\s
電場\tr{V}/\x \dec{25}c^{-1}he^{-1}\s^{-2} \approx138.0\ \mr{V}/\mr{m}
磁場\tr{A}/\x \dec{25}c^{-1}e\s^{-2} \approx0.005344\ \mr{A}/\mr{m}
電束密度\tr{C}/\x^2 \dec{35}c^{-2}e\s^{-2} \approx0.1783\ \mr{C}/\mr{m}^2
磁束密度\tr{Wb}/\x^2 \dec{35}c^{-2}he^{-1}\s^{-2} \approx4602\ \mr{Wb}/\mr{m}^2
密度\u/\x^3 \dec{80}c^{-5}h\s^{-4} \approx27360\ \mr{kg}/\mr{m}^3
誘電率\tr{F}/\x \dec{10}c^{-1}h^{-1}e^2 \approx0.001292\ \mr{F}/\mr{m}
透磁率\tr{H}/\x \dec{10}c^{-1}he^{-2} \approx861000\ \mr{H}/\mr{m}
電気抵抗率\tr{\Omega}\x \dec{-10}che^{-2}\s \approx773.8\ \mr{\Omega}\mr{m}
電気伝導率\tr{S}/\x \dec{10}c^{-1}h^{-1}e^2\s^{-1} \approx0.001292\ \mr{S}/\mr{m}
比熱容量\tr{J}\tr{D}/\u \dec{-35}c^2h^{-1}k\s \approx0.00000001873\ \mr{J}/\mr{kg}\cdot\mr{K}
光速 c \dec{10}\x/\s 299792458\ \mr{m}/\s
Planck定数 h \dec{-30}\tr{J}\s=\dec{-15}e\tr{V}\s 6.62607015\times\dec{-34}\mr{J}\s
電荷 e \dec{-15}\tr{C} 1.602176634\times\dec{-19}\mr{C}
Boltzmann定数 k \dec{-15}\tr{J}\tr{D}=1\ e\tr{V}\tr{D} 1.380649\times\dec{-23}\mr{J}\mr{K}^{-1}
真空の誘電率 \varepsilon_0 (2\alpha)^{-1}\dec{-10}\tr{F}/\x (2\alpha)^{-1}\ c^{-1}h^{-1}e^2 8.8541878128(13)\times\dec{-12}\mr{F}/\mr{m}
真空の透磁率 \mu_0 2\alpha\dec{-10}\tr{H}/\x 2\alpha\ c^{-1}he^{-2} 1.25663706212(19)\times\dec{-6}\mr{H}/\mr{m}
真空のインピーダンス Z_0 2\alpha\ \tr{\Omega} 2\alpha\ he^{-2} 376.730313668(57)\ \mr{\Omega}
Josephson定数 K_\mathrm{J} 2\times\dec{15}\tr{Hz}\tr{V}^{-1} 2\ h^{-1}e 483597.8484\ldots\times\dec{9}\mr{Hz}\mr{V}^{-1}
von Klitzing定数 R_\mathrm{K} 1\ \tr{\Omega} he^{-2} 25812.80745\ldots\ \mr{\Omega}

物理学徒のための常用単位系

\def\tr#1{\widetilde{\mathrm{#1}}}\def\mr#1{\mathrm{#1}}\def\s{\mathrm{s}}\def\x{\mathrm{x}}\def\u{\mathrm{u}}\def\dec#1{10^{#1}\ }この単位系の利点は光速,Plank定数,素電荷,Boltzmann定数が10の冪乗で表されることである.これは,真空の誘電率や真空の透磁率が微細構造定数を含む簡単な値で表される,ジュールと電子ボルトの変換が容易になるといった利点を生む.この単位系の記号は長さの単位\x,質量の単位\uを除きSI単位系のものに\tilde{}を付けて表される.時間の単位はSI単位系と同じ\sを用いる.この単位系をsux単位系と称す.表はsux単位での組立,4定数(光速,Plank定数,素電荷,Boltzmann定数)と\sでの値,SI単位系での値である.

記号 sux cheks SI
時間 \s \dec{0}\s 1\ \s
長さ \x \dec{-10}c\s \approx2.998\ \mr{cm}
質量 \u \dec{50}c^{-2}h\s^{-1} \approx0.7372\ \mr{kg}
電圧 \tr{V} \dec{15}he^{-1}\s^{-1} \approx4.136\ \mr{V}
絶対温度 \tr{K} \dec{10}hk^{-1}\s^{-1} \approx0.4799\ \mr{K}
周波数 \mathrm{Hz} \s^{-1} \dec{0}\s^{-1} 1\ \s^{-1}
\tr{N} \u\x\s^{-2} \dec{40}c^{-1}h\s^{-2} \approx0.02210\ \mr{N}
エネルギー \tr{J} \u\x^2\s^{-2}=\tr{N}\x \dec{30}h\s^{-1} \approx0.0006626\ \mr{J}
仕事率 \tr{W} \u\x^2\s^{-3}=\tr{J}/\s \dec{30}h\s^{-2} \approx0.0006626\ \mr{W}
圧力 \tr{Pa} \u\x^{-1}\s^{-2}=\tr{N}/\x^2 \dec{60}c^{-3}h\s^{-4} \approx24.59\ \mr{Pa}
電荷 \tr{C} \u\x^2\s^{-2}\tr{V}^{-1}=\tr{J}/\tr{V} \dec{15}e \approx0.0001602\ \mr{C}
電流 \tr{A} \u\x^2\s^{-3}\tr{V}^{-1}=\tr{C}/\tr{s} \dec{15}e\s^{-1} \approx0.0001602\ \mr{A}
電気抵抗 \tr{\Omega} \u^{-1}\x^{-2}\s^3\tr{V}^2=\tr{V}/\tr{A} \dec{0}he^{-2} \approx25810\ \mr{\Omega}
コンダクタンス \tr{S} \u\x^2\s^{-3}\tr{V}^{-2}=\tr{A}/\tr{V} \dec{0}h^{-1}e^2 \approx0.00003874\ \mr{S}
キャパシタンス \tr{F} \u\x^2\s^{-2}\tr{V}^{-2}=\tr{C}/\tr{V} \dec{0}h^{-1}e^2\s \approx0.00003874\ \mr{F}
インダクタンス \tr{H} \u^{-1}\x^{-2}\s^4\tr{V}^2=\tr{Wb}/\tr{A} \dec{0}he^{-2}\s \approx25810\ \mr{H}
磁束 \tr{Wb} \tr{V}\s \dec{15}he^{-1} \approx4.136\ \mr{Wb}
電子ボルト e\tr{V} \mr{f}\tr{J} \dec{15}h\s^{-1} \approx4.136\ \mr{eV}
相対温度 ^\circ\tr{C}T/^\circ\tr{C}=\Theta/\tr{K}-569.17 T'/^\circ\mr{C}\approx0.4799T/^\circ\tr{C}+0.0085
面積\x^2 \dec{-20}c^2\mr{s}^2 \approx0.0008988\ \mr{m}^2
体積\x^3 \dec{-30}c^3\mr{s}^3 \approx0.00002694\ \mr{m}^3
速度\x/\s \dec{-10}c \approx0.02998\ \mr{m}/\s
加速度\x/\s^2 \dec{-10}c\s^{-1} \approx0.02998\ \mr{m}/\s^2
運動量\tr{N}\s \dec{40}c^{-1}h\s^{-1} \approx0.02210\ \mr{N}\s
角運動量\tr{N}\x\s \dec{30}h \approx0.0006626\ \mr{N}\mr{m}\s
電場\tr{V}/\x \dec{25}c^{-1}he^{-1}\s^{-2} \approx138.0\ \mr{V}/\mr{m}
磁場\tr{A}/\x \dec{25}c^{-1}e\s^{-2} \approx0.005344\ \mr{A}/\mr{m}
電束密度\tr{C}/\x^2 \dec{35}c^{-2}e\s^{-2} \approx0.1783\ \mr{C}/\mr{m}^2
磁束密度\tr{Wb}/\x^2 \dec{35}c^{-2}he^{-1}\s^{-2} \approx4602\ \mr{Wb}/\mr{m}^2
密度\u/\x^3 \dec{80}c^{-5}h\s^{-4} \approx27360\ \mr{kg}/\mr{m}^3
誘電率\tr{F}/\x \dec{10}c^{-1}h^{-1}e^2 \approx0.001292\ \mr{F}/\mr{m}
透磁率\tr{H}/\x \dec{10}c^{-1}he^{-2} \approx861000\ \mr{H}/\mr{m}
電気抵抗率\tr{\Omega}\x \dec{-10}che^{-2}\s \approx773.8\ \mr{\Omega}\mr{m}
電気伝導率\tr{S}/\x \dec{10}c^{-1}h^{-1}e^2\s^{-1} \approx0.001292\ \mr{S}/\mr{m}
比熱容量\tr{J}/\u\tr{K} \dec{-30}c^2h^{-1}k\s \approx0.001873\ \mr{J}/\mr{kg}\cdot\mr{K}
光速 c \dec{10}\x/\s 299792458\ \mr{m}/\s
Planck定数 h \dec{-30}\tr{J}\s 6.62607015\times\dec{-34}\mr{J}\s
電荷 e \dec{-15}\tr{C} 1.602176634\times\dec{-19}\mr{C}
Boltzmann定数 k \dec{-20}\tr{J}\tr{K}^{-1} 1.380649\times\dec{-23}\mr{J}\mr{K}^{-1}
真空の誘電率 \varepsilon_0 (2\alpha)^{-1}\dec{-10}\tr{F}/\x (2\alpha)^{-1}\ c^{-1}h^{-1}e^2 8.8541878128(13)\times\dec{-12}\mr{F}/\mr{m}
真空の透磁率 \mu_0 2\alpha\dec{-10}\tr{H}/\x 2\alpha\ c^{-1}he^{-2} 1.25663706212(19)\times\dec{-6}\mr{H}/\mr{m}
真空のインピーダンス Z_0 2\alpha\ \tr{\Omega} 2\alpha\ he^{-2} 376.730313668(57)\ \mr{\Omega}
Josephson定数 K_\mathrm{J} 2\times\dec{15}\tr{Hz}\tr{V}^{-1} 2\ h^{-1}e 483597.8484\ldots\times\dec{9}\mr{Hz}\mr{V}^{-1}
von Klitzing定数 R_\mathrm{K} 1\ \tr{\Omega} he^{-2} 25812.80745\ldots\ \mr{\Omega}

幾何代数微分と共変解析力学

\def\ou#1#2#3{\overset{#2}{\underset{#3}{#1}}}\def\os#1#2{\overset{#2}{#1}}\def\diff{\mathrm{d}}\def\D{\mathrm{D}}\def\B{\mathrm{B}}\def\abs#1{\lvert#1\rvert} d次元実線型空間とその上の非退化な計量gの二次空間(V,\ g)の幾何代数(d次元非退化実Clifford代数)\mathrm{GA}(V,\ g)を考える.\mathrm{GA}(V,\ g)i次斉次元の集合を\mathrm{GA}^{i}(V,\ g)\mathrm{GA}(V,\ g)の元からi次の斉次な部分全体を抜き出す写像
\begin{align}
\mathrm{hg}_i\colon&\mathrm{GA}(V,\ g)\to\mathrm{GA}^{i}(V,\ g)\\
&A\mapsto A\mbox{の}i\mbox{次の斉次な部分全体}
\end{align}
とする.斉次元多変数実数値関数
\begin{align}
f\colon&\displaystyle\prod_{n=1}^{N}\mathrm{GA}^{i_n}(V,\ g)\to\mathbb{R}\\
&(\alpha_n)_{n\in\left\{1,\ \ldots,\ N\right\}}\mapsto f(\alpha)
\end{align}
と斉次元多変数斉次元値関数
f'_n\colon\displaystyle\prod_{n=1}^{N}\mathrm{GA}^{i_n}(V,\ g)\to\mathrm{GA}^{i_n}(V,\ g)
を考え,全ての引数の斉次な任意の変分
\alpha_n\to\alpha_n+\delta\alpha_n\in\mathrm{GA}^{i_n}(V,\ g)
に対して
\begin{align}
\delta f(\alpha)=&f(\alpha+\delta\alpha)-f(\alpha)\\
=&\mathrm{hg}_0\left(\displaystyle\sum_{i=1}^{N}\delta\alpha_nf'_n(\alpha)\right)
\end{align}
を満たす斉次元多変数斉次元値関数組(f'_n)_{n\in\left\{1,\ \ldots,\ N\right\}}が1つに決まるときf\alpha微分可能であるといい,f'_nf\alpha_nに関する偏導関数偏微分といい
\displaystyle\frac{\partial f}{\partial\alpha_n}:=f'_n
と書く.幾何代数は一般的に非可換であるが\mathrm{hg}_0の中では2つの同次数斉次元の積は交換してもいいため
\begin{align}
\delta f(\alpha)=\mathrm{hg}_0\left(\displaystyle\sum_{i=1}^{N}f'_n(\alpha)\delta\alpha_n\right)
\end{align}
としても同値である.
 簡単な例としては
\begin{align}
f\colon&\mathrm{GA}^{i}(V,\ g)\to\mathbb{R}\\
&\alpha\mapsto\mathrm{hg}_0\left(\alpha^2\right)
\end{align}
という関数は
\delta f(\alpha)=\mathrm{hg}_0\left((\alpha+\delta\alpha)^2-\alpha^2\right)\\
=\mathrm{hg}_0\left(\delta\alpha2\alpha\right)
であるため
\displaystyle\frac{\partial f}{\partial\alpha}(\alpha)=2\alpha
であり
\begin{align}
g\colon&\mathrm{GA}^{i}(V,\ g)^2\to\mathbb{R}\\
&(\alpha,\ \beta)\mapsto\mathrm{hg}_0\left(\alpha\beta\right)
\end{align}
という関数は
\delta g(\alpha,\ \beta)=\mathrm{hg}_0\left(\{\alpha+\delta\alpha\}\{\beta+\delta\beta\}-\alpha\beta\right)\\
=\mathrm{hg}_0\left(\delta\alpha\beta+\delta\beta\alpha\right)
であるため
\displaystyle\frac{\partial g}{\partial\alpha}(\alpha,\ \beta)=\beta,\ \frac{\partial g}{\partial\beta}(\alpha,\ \beta)=\alpha
である.
 この幾何代数微分解析力学に用いることができ,共変性が明らかな定式化に役立つ.その前に本記事で用いる記号や公式を纏めておく.
\DDirac作用素\displaystyle\os{g}{\mu\nu}i\left(\frac{\partial}{\partial\os{x}{\nu}}\right)\frac{\partial}{\partial\os{x}{\mu}}=\os{\gamma}{\mu}\frac{\partial}{\partial\os{x}{\mu}}
\D\wedgeDirac作用素のうち次数を1上げる部分.
\D\veeDirac作用素のうち次数を1下げる部分.形式的には\D-\D\wedgeと書ける.
\mathrm{B}:右から左に作用するDirac作用素.同様に\wedge\mathrm{B}\vee\mathrm{B}などとする.
\abs{\varpi}:体積形式.\abs{\displaystyle\bigwedge_{i=1}^{d}\diff\os{x}{i}\ou{\gamma}{}{i}}=\sqrt{\abs{\det[g]}}\diff^{d}x
\alpha\in\mathrm{GA}^{i}(V,\ g)\beta\in\mathrm{GA}^{i+1}(V,\ g)に対し
\mathrm{hg}_0(\D\vee\left\{\alpha\beta\right\})=\mathrm{hg}_0(\left\{\D\wedge\alpha\right\}\beta+\alpha\left\{\beta\vee\mathrm{B}\right\})
というLeibniz則が成り立つ.また詳しく考察,証明していないが恐らく成り立つであろう,\alpha_i\in\mathrm{GA}^{i}(V,\ g)に対し
\displaystyle\int_{\mathcal{M}}\abs{\varpi_4}\D\vee\alpha_1\stackrel{?}{=}\displaystyle\int_{\partial\mathcal{M}}\mathrm{hg}_0(\varpi_3\star\alpha_1)
という公式を用いる.幾何代数を用いてStokesの定理を記述する方法は模索中である.被積分部分がスカラーであればいいので
\displaystyle\int\mathrm{hg}_0(\varpi_{n}A),\ \displaystyle\int\abs{\varpi_{n}}\mathrm{hg}_0(A)
という積分が考えられ,Stokesの定理としたいのは
\displaystyle\int\mathrm{hg}_0(\varpi_{n}\D\vee\alpha_{n+1}),\ \displaystyle\int\mathrm{hg}_0(\varpi_{n}\D\wedge\alpha_{n-1}),\ \displaystyle\int\abs{\varpi_{n}}\D\vee\alpha_1
といったものである.何かいい案があれば教えてください.
 斉次元場\alpha\in\mathrm{GA}^{i}(V,\ g)の作用
S[\alpha]=\frac{1}{c_0}\displaystyle\int_{\mathcal{M}}\abs{\varpi}L(\alpha,\ \D\wedge\alpha)\\
=\frac{1}{c_0}\displaystyle\int_{\mathcal{M}}\abs{\varpi}\mathrm{hg}_0\left(\mathcal{L}(\alpha,\ \D\wedge\alpha)\right)
を考える.L微分可能ならば,\delta\alpha|_{\partial\mathcal{M}}=0の下で作用の変分を計算すると作用原理より
\delta S[\alpha]=\frac{1}{c_0}\displaystyle\int_{\mathcal{M}}\abs{\varpi}\mathrm{hg}_0\left(\delta\alpha\frac{\partial L}{\partial\alpha}+\delta\{\D\wedge\alpha\}\frac{\partial L}{\partial(\D\wedge\alpha)}\right)\\
=\frac{1}{c_0}\displaystyle\int_{\mathcal{M}}\abs{\varpi}\mathrm{hg}_0\left(\delta\alpha\frac{\partial L}{\partial\alpha}+\{\D\wedge\delta\alpha\}\frac{\partial L}{\partial(\D\wedge\alpha)}\right)\\
=\frac{1}{c_0}\displaystyle\int_{\mathcal{M}}\abs{\varpi}\mathrm{hg}_0\left(\delta\alpha\frac{\partial L}{\partial\alpha}+\D\vee\left\{\delta\alpha\frac{\partial L}{\partial(\D\wedge\alpha)}\right\}-\delta\alpha\left\{\frac{\partial L}{\partial(\D\wedge\alpha)}\vee\B\right\}\right)\\
=\frac{1}{c_0}\displaystyle\int_{\mathcal{M}}\abs{\varpi}\mathrm{hg}_0\left(\delta\alpha\left(\frac{\partial L}{\partial\alpha}-\frac{\partial L}{\partial(\D\wedge\alpha)}\vee\B\right)\right)=0\\
\displaystyle\therefore\frac{\partial L}{\partial\alpha}-\frac{\partial L}{\partial(\D\wedge\alpha)}\vee\B=0
と共変定式化されたEuler-Lagrange方程式が得られる.

Hamilton形式をWeyl代数で

\def\ou#1#2#3{\overset{#2}{\underset{#3}{#1}}}\def\os#1#2{\overset{#2}{#1}}\def\diff{\mathrm{d}}\def\biff{\mathrm{b}}\def\D{\mathrm{D}}\def\B{\mathrm{B}}\def\p{\mathrm{p}}\def\pu#1{\underset{#1}{\mathrm{p}}}\def\p{\mathrm{p}}\def\qu#1{\underset{#1}{\mathrm{q}}}\def\G#1#2{\overset{#1}{\underset{#2}{\Gamma}}}\def\abs#1{\lvert#1\rvert}\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}\def\bbra#1{\mathinner{\left\langle\!\left\langle{#1}\right|\right.}}
\def\kket#1{\mathinner{\left.\left|{#1}\right\rangle\!\right\rangle}}
\def\bbrakket#1#2{\mathinner{\left\langle\!\left\langle{#1}\middle|#2\right\rangle\!\right\rangle}} こんにちは.うべです.発見があったので137億年ぶりにはてなブログを書きます.
正準方程式は一般化座標・一般化運動量,あるいはもっと一般的に正準変換されて正準共役量
(q^1,\ \ldots,\ q^N,\ p^1,\ \ldots,\ p^N)=(\xi^1,\ \ldots,\ \xi^{2N})
に対し行列を使って
\boldsymbol{\xi}:=\begin{bmatrix}
\xi^1\\
\vdots\\
\xi^{2N}
\end{bmatrix}\\
\boldsymbol{\omega}:=\begin{bmatrix}
\boldsymbol{O}_N&\boldsymbol{I}_N\\
 -\boldsymbol{I}_N&\boldsymbol{O}_N
\end{bmatrix}\\
\boldsymbol{\partial}:=\begin{bmatrix}
\frac{\partial}{\partial\xi^1}\\
\vdots\\
\frac{\partial}{\partial\xi^{2N}}
\end{bmatrix}=\begin{bmatrix}
\partial_1\\
\vdots\\
\partial_{2N}
\end{bmatrix}\\
\dot{\boldsymbol{\xi}}=\boldsymbol{\omega}\boldsymbol{\partial}H
と書ける.またPoisson括弧は相空間上関数f,\ gに対し
\left\{f,\ g\right\}=\left(\boldsymbol{\partial}f\right)^\top\boldsymbol{\omega}\left(\boldsymbol{\partial}g\right)
と書ける.これらはシンプレクティック形式によるHamilton形式をDarboux基底での行列表現で書き換えたものである.相空間上の一般の基底での座標\left(\xi'^i\right)_{i=1,\ \ldots,\ 2N}では
\boldsymbol{A}:=\begin{bmatrix}
\frac{\partial\xi'^1}{\partial\xi^1}&\cdots&\frac{\partial\xi'^{2N}}{\partial\xi^1}\\
\vdots&\ddots&\vdots\\
\frac{\partial\xi'^1}{\partial\xi^{2N}}&\cdots&\frac{\partial\xi'^{2N}}{\partial\xi^{2N}}
\end{bmatrix}\\
\boldsymbol{A}^{-1}:=\begin{bmatrix}
\frac{\partial\xi^1}{\partial\xi'^1}&\cdots&\frac{\partial\xi^{2N}}{\partial\xi'^1}\\
\vdots&\ddots&\vdots\\
\frac{\partial\xi^1}{\partial\xi'^{2N}}&\cdots&\frac{\partial\xi^{2N}}{\partial\xi'^{2N}}
\end{bmatrix}
によって
\boldsymbol{\omega}'=\boldsymbol{A}^\top\boldsymbol{\omega}\boldsymbol{A}
と変換される.この合同な変換のうち\boldsymbol{\omega}が不変なものを物理では正準変化といい,数学ではシンプレクティック同相写像という.
今日では擬Riemann幾何学もシンプレクティック幾何学も可微分多様体上で展開される幾何学微分形式と方向微分(接ベクトル)を用いて記述される.しかしこれは私自身のマインドのお話であるが,双線型形式を備えた可微分多様体はその双線型形式についての商代数で記述する方が自然だと思う.つまり擬Riemann多様体は非退化対称双線型形式なので(非退化実)Clifford代数,シンプレクティック多様体は非退化反対称双線型形式なのでWeyl代数によって記述されるべきだと考える.というわけで今回はHamilton形式をWeyl代数で記述してみる.ここでは微分記号を
f\pu{i}:=\frac{f\p}{\os{\xi}{i}\p}=\frac{\partial f}{\partial \os{\xi}{i}}
とする.
 2n次元シンプレクティック多様体上のある点近傍を考え,局所座標系\left(\os{\xi}{1},\ \ldots,\ \os{\xi}{2n}\right)を与える.局所座標の偏微分による基底に対しシンプレクティック形式の成分を
\ou{\omega}{}{ij}:=\omega\left(\pu{i},\ \pu{j}\right)
と定める.この接空間のWeyl代数,つまりテンソル代数の,接空間の元a,\ bに対して
a\otimes b-b\otimes a-\omega(a,\ b)
の形の元が生成するイデアルによる商代数を考える.この商によってテンソル積に継承される積を並置で表し,偏微分の基底に対応する元は\ou{\beta}{}{i},それ以外の接空間の元やシンプレクティック形式の文字は接空間のものを使う.すると接空間の元(に対応するWeyl代数の元)a,\ bに対し
ab=ba+\omega(a,\ b)
が成り立つことが書ける.ここで交換子
\left[a,\ b\right]:=ab-ba
を定める.a,\ bが接空間の元ならば
\left[a,\ b\right]=\omega(a,\ b)
が成り立つ.またシンプレクティック形式の成分の逆\ou{\omega}{ij}{}
\ou{\omega}{ij}{}\ou{\omega}{}{jk}=\ou{\omega}{}{kj}\ou{\omega}{ji}{}=\ou{\delta}{i}{k}
と定め,双対基底
\ou{\beta}{i}{}:=\ou{\omega}{ij}{}\ou{\beta}{}{j}
を定める.これは
\left[\ou{\beta}{i}{},\ \ou{\beta}{}{j}\right]=\ou{\delta}{i}{j}\\
\left[\ou{\beta}{}{i},\ \ou{\beta}{j}{}\right]=-\ou{\delta}{j}{i}\\
\left[\ou{\beta}{i}{},\ \ou{\beta}{j}{}\right]=-\ou{\omega}{ij}{}
を満たす.そしてWeyl代数におけるDirac作用素
\D:=\pu{i}\ou{\beta}{i}{}=\pu{i}\ou{\omega}{ij}{}\ou{\beta}{}{j}
と定める.ちなみに接空間の基底として局所座標の偏微分を選んだので接空間は方向微分の集合であるが,それに対応する商代数の基底は,商代数は接空間のテンソル代数の集合の集合であり,その元は接空間のテンソル代数の「集合」であるため,基底には微分的な構造は継承されない.
 これを用いてHamilton形式はかなり自然に記述できる.ここでは場はよく分かっていないので粒子(運動のパラメータ:\lambda,正準変数:\os{\xi}{i}(\lambda))のものを考える.まずHamiltonベクトル場はハミルトニアンH(\os{\xi}{i}(\lambda),\ \lambda)に対しH\Dと書けて,正準方程式は相空間上の速度V:=\frac{\mathrm{d}\os{\xi}{i}}{\mathrm{d}\lambda}\ou{\beta}{}{i}に対し
V=H\D
と書ける.またPoisson括弧は相空間上の可微分関数f,\ gに対し
\left\{f,\ g\right\}=\left[f\D,\ g\D\right]
と書ける.
 実用性は知らん.

時空代数のクラス

#pragma once
/*st.h*/
#include <stdio.h>
#include <math.h>

class st {
public:
	double est[4][4] = { 0.0 };

	static const st gamma0;
	static const st gamma1;
	static const st gamma2;
	static const st gamma3;

	st operator+(const st& e2)const;
	st operator-(const st& e2)const;
	st operator*(const st& e2)const;
	st operator/(const st& e2)const;

	st operator+(double s)const;
	st operator-(double s)const;
	st operator*(double s)const;
	st operator/(double s)const;

	//st operator+(double s, const st& e2);
	//st operator-(double s, const st& e2);
	//st operator/(double s, const st& e2);
	//st operator*(double s, const st& e2);

	st operator+()const;
	st operator-()const;

	st& operator+=(const st& e2);
	st& operator-=(const st& e2);
	st& operator*=(const st& e2);
	st& operator/=(const st& e2);

	st& operator =(double s);
	st& operator+=(double s);
	st& operator-=(double s);
	st& operator*=(double s);
	st& operator/=(double s);

	double DETST()const;
	st IST()const;

	static st WST(const st& e1, const st& e2);
	static st VST(const st& e1, const st& e2);
	static st CST(const st& e1, const st& e2);
	static st AST(const st& e1, const st& e2);

	st WST(const st& e2)const;
	st VST(const st& e2)const;
	st CST(const st& e2)const;
	st AST(const st& e2)const;

	st ATST(const st& T)const;
	st PTST(const st& T)const;
	st RST(double u[4])const;
	st BST(double u[4])const;
	st MST(double m[4])const;
};

const st st::gamma0 = { 0.0,0.0,0.0,0.0,1.0 };
const st st::gamma1 = { 0.0,0.0,0.0,0.0,0.0,1.0 };
const st st::gamma2 = { 0.0,0.0,0.0,0.0,0.0,0.0,1.0 };
const st st::gamma3 = { 0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0 };

st st::operator+(const st& e2)const {
	st e3;
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			e3.est[i][j] = est[i][j] + e2.est[i][j];
		}
	}
	return e3;
}

st st::operator-(const st& e2)const {
	st e3;
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			e3.est[i][j] = est[i][j] - e2.est[i][j];
		}
	}
	return e3;
}

st st::operator*(const st& e2)const {
	st e3;
	e3.est[0][0] = est[0][0] * e2.est[0][0] - est[2][0] * e2.est[2][0] - est[1][0] * e2.est[1][0] + est[1][1] * e2.est[1][1] + est[1][2] * e2.est[1][2] + est[1][3] * e2.est[1][3] - est[3][0] * e2.est[3][0] + est[3][1] * e2.est[3][1] + est[3][2] * e2.est[3][2] + est[3][3] * e2.est[3][3] + est[0][1] * e2.est[0][1] + est[0][2] * e2.est[0][2] + est[0][3] * e2.est[0][3] - est[2][1] * e2.est[2][1] - est[2][2] * e2.est[2][2] - est[2][3] * e2.est[2][3];
	e3.est[1][0] = est[0][0] * e2.est[1][0] + est[1][0] * e2.est[0][0] - est[2][0] * e2.est[3][0] + est[3][0] * e2.est[2][0] - est[1][1] * e2.est[0][1] - est[1][2] * e2.est[0][2] - est[1][3] * e2.est[0][3] + est[0][1] * e2.est[1][1] + est[0][2] * e2.est[1][2] + est[0][3] * e2.est[1][3] - est[3][1] * e2.est[2][1] - est[3][2] * e2.est[2][2] - est[3][3] * e2.est[2][3] - est[2][1] * e2.est[3][1] - est[2][2] * e2.est[3][2] - est[2][3] * e2.est[3][3];
	e3.est[1][1] = est[0][0] * e2.est[1][1] + est[1][1] * e2.est[0][0] - est[2][0] * e2.est[3][1] + est[3][1] * e2.est[2][0] - est[1][0] * e2.est[0][1] - est[1][2] * e2.est[2][3] + est[1][3] * e2.est[2][2] + est[0][1] * e2.est[1][0] - est[2][2] * e2.est[1][3] + est[2][3] * e2.est[1][2] - est[3][0] * e2.est[2][1] + est[3][2] * e2.est[0][3] - est[3][3] * e2.est[0][2] - est[2][1] * e2.est[3][0] - est[0][2] * e2.est[3][3] + est[0][3] * e2.est[3][2];
	e3.est[1][2] = est[0][0] * e2.est[1][2] + est[1][2] * e2.est[0][0] - est[2][0] * e2.est[3][2] + est[3][2] * e2.est[2][0] - est[1][0] * e2.est[0][2] - est[1][3] * e2.est[2][1] + est[1][1] * e2.est[2][3] + est[0][2] * e2.est[1][0] - est[2][3] * e2.est[1][1] + est[2][1] * e2.est[1][3] - est[3][0] * e2.est[2][2] + est[3][3] * e2.est[0][1] - est[3][1] * e2.est[0][3] - est[2][2] * e2.est[3][0] - est[0][3] * e2.est[3][1] + est[0][1] * e2.est[3][3];
	e3.est[1][3] = est[0][0] * e2.est[1][3] + est[1][3] * e2.est[0][0] - est[2][0] * e2.est[3][3] + est[3][3] * e2.est[2][0] - est[1][0] * e2.est[0][3] - est[1][1] * e2.est[2][2] + est[1][2] * e2.est[2][1] + est[0][3] * e2.est[1][0] - est[2][1] * e2.est[1][2] + est[2][2] * e2.est[1][1] - est[3][0] * e2.est[2][3] + est[3][1] * e2.est[0][2] - est[3][2] * e2.est[0][1] - est[2][3] * e2.est[3][0] - est[0][1] * e2.est[3][2] + est[0][2] * e2.est[3][1];
	e3.est[0][1] = est[0][0] * e2.est[0][1] + est[0][1] * e2.est[0][0] - est[2][0] * e2.est[2][1] - est[2][1] * e2.est[2][0] + est[1][0] * e2.est[1][1] - est[1][1] * e2.est[1][0] + est[3][0] * e2.est[3][1] - est[3][1] * e2.est[3][0] + est[1][2] * e2.est[3][3] - est[1][3] * e2.est[3][2] - est[3][2] * e2.est[1][3] + est[3][3] * e2.est[1][2] - est[0][2] * e2.est[2][3] + est[0][3] * e2.est[2][2] - est[2][2] * e2.est[0][3] + est[2][3] * e2.est[0][2];
	e3.est[0][2] = est[0][0] * e2.est[0][2] + est[0][2] * e2.est[0][0] - est[2][0] * e2.est[2][2] - est[2][2] * e2.est[2][0] + est[1][0] * e2.est[1][2] - est[1][2] * e2.est[1][0] + est[3][0] * e2.est[3][2] - est[3][2] * e2.est[3][0] + est[1][3] * e2.est[3][1] - est[1][1] * e2.est[3][3] - est[3][3] * e2.est[1][1] + est[3][1] * e2.est[1][3] - est[0][3] * e2.est[2][1] + est[0][1] * e2.est[2][3] - est[2][3] * e2.est[0][1] + est[2][1] * e2.est[0][3];
	e3.est[0][3] = est[0][0] * e2.est[0][3] + est[0][3] * e2.est[0][0] - est[2][0] * e2.est[2][3] - est[2][3] * e2.est[2][0] + est[1][0] * e2.est[1][3] - est[1][3] * e2.est[1][0] + est[3][0] * e2.est[3][3] - est[3][3] * e2.est[3][0] + est[1][1] * e2.est[3][2] - est[1][2] * e2.est[3][1] - est[3][1] * e2.est[1][2] + est[3][2] * e2.est[1][1] - est[0][1] * e2.est[2][2] + est[0][2] * e2.est[2][1] - est[2][1] * e2.est[0][2] + est[2][2] * e2.est[0][1];
	e3.est[2][1] = est[0][0] * e2.est[2][1] + est[2][1] * e2.est[0][0] + est[2][0] * e2.est[0][1] + est[0][1] * e2.est[2][0] + est[1][2] * e2.est[1][3] - est[1][3] * e2.est[1][2] + est[3][2] * e2.est[3][3] - est[3][3] * e2.est[3][2] - est[1][0] * e2.est[3][1] + est[1][1] * e2.est[3][0] + est[3][0] * e2.est[1][1] - est[3][1] * e2.est[1][0] + est[0][2] * e2.est[0][3] - est[0][3] * e2.est[0][2] - est[2][2] * e2.est[2][3] + est[2][3] * e2.est[2][2];
	e3.est[2][2] = est[0][0] * e2.est[2][2] + est[2][2] * e2.est[0][0] + est[2][0] * e2.est[0][2] + est[0][2] * e2.est[2][0] + est[1][3] * e2.est[1][1] - est[1][1] * e2.est[1][3] + est[3][3] * e2.est[3][1] - est[3][1] * e2.est[3][3] - est[1][0] * e2.est[3][2] + est[1][2] * e2.est[3][0] + est[3][0] * e2.est[1][2] - est[3][2] * e2.est[1][0] + est[0][3] * e2.est[0][1] - est[0][1] * e2.est[0][3] - est[2][3] * e2.est[2][1] + est[2][1] * e2.est[2][3];
	e3.est[2][3] = est[0][0] * e2.est[2][3] + est[2][3] * e2.est[0][0] + est[2][0] * e2.est[0][3] + est[0][3] * e2.est[2][0] + est[1][1] * e2.est[1][2] - est[1][2] * e2.est[1][1] + est[3][1] * e2.est[3][2] - est[3][2] * e2.est[3][1] - est[1][0] * e2.est[3][3] + est[1][3] * e2.est[3][0] + est[3][0] * e2.est[1][3] - est[3][3] * e2.est[1][0] + est[0][1] * e2.est[0][2] - est[0][2] * e2.est[0][1] - est[2][1] * e2.est[2][2] + est[2][2] * e2.est[2][1];
	e3.est[3][0] = est[0][0] * e2.est[3][0] + est[3][0] * e2.est[0][0] + est[2][0] * e2.est[1][0] - est[1][0] * e2.est[2][0] + est[1][1] * e2.est[2][1] + est[1][2] * e2.est[2][2] + est[1][3] * e2.est[2][3] + est[2][1] * e2.est[1][1] + est[2][2] * e2.est[1][2] + est[2][3] * e2.est[1][3] - est[3][1] * e2.est[0][1] - est[3][2] * e2.est[0][2] - est[3][3] * e2.est[0][3] + est[0][1] * e2.est[3][1] + est[0][2] * e2.est[3][2] + est[0][3] * e2.est[3][3];
	e3.est[3][1] = est[0][0] * e2.est[3][1] + est[3][1] * e2.est[0][0] + est[2][0] * e2.est[1][1] - est[1][1] * e2.est[2][0] + est[1][0] * e2.est[2][1] - est[1][2] * e2.est[0][3] + est[1][3] * e2.est[0][2] + est[2][1] * e2.est[1][0] + est[0][2] * e2.est[1][3] - est[0][3] * e2.est[1][2] - est[3][0] * e2.est[0][1] - est[3][2] * e2.est[2][3] + est[3][3] * e2.est[2][2] + est[0][1] * e2.est[3][0] - est[2][2] * e2.est[3][3] + est[2][3] * e2.est[3][2];
	e3.est[3][2] = est[0][0] * e2.est[3][2] + est[3][2] * e2.est[0][0] + est[2][0] * e2.est[1][2] - est[1][2] * e2.est[2][0] + est[1][0] * e2.est[2][2] - est[1][3] * e2.est[0][1] + est[1][1] * e2.est[0][3] + est[2][2] * e2.est[1][0] + est[0][3] * e2.est[1][1] - est[0][1] * e2.est[1][3] - est[3][0] * e2.est[0][2] - est[3][3] * e2.est[2][1] + est[3][1] * e2.est[2][3] + est[0][2] * e2.est[3][0] - est[2][3] * e2.est[3][1] + est[2][1] * e2.est[3][3];
	e3.est[3][3] = est[0][0] * e2.est[3][3] + est[3][3] * e2.est[0][0] + est[2][0] * e2.est[1][3] - est[1][3] * e2.est[2][0] + est[1][0] * e2.est[2][3] - est[1][1] * e2.est[0][2] + est[1][2] * e2.est[0][1] + est[2][3] * e2.est[1][0] + est[0][1] * e2.est[1][2] - est[0][2] * e2.est[1][1] - est[3][0] * e2.est[0][3] - est[3][1] * e2.est[2][2] + est[3][2] * e2.est[2][1] + est[0][3] * e2.est[3][0] - est[2][1] * e2.est[3][2] + est[2][2] * e2.est[3][1];
	e3.est[2][0] = est[0][0] * e2.est[2][0] + est[2][0] * e2.est[0][0] + est[1][0] * e2.est[3][0] - est[1][1] * e2.est[3][1] - est[1][2] * e2.est[3][2] - est[1][3] * e2.est[3][3] - est[3][0] * e2.est[1][0] + est[3][1] * e2.est[1][1] + est[3][2] * e2.est[1][2] + est[3][3] * e2.est[1][3] + est[0][1] * e2.est[2][1] + est[0][2] * e2.est[2][2] + est[0][3] * e2.est[2][3] + est[2][1] * e2.est[0][1] + est[2][2] * e2.est[0][2] + est[2][3] * e2.est[0][3];
	return e3;
}

st st::operator/(const st& e2)const {
	return *this * e2.IST();
}

st st::operator+(double s)const {
	st e3 = *this;
	e3.est[0][0] += s;
	return e3;
}

st st::operator-(double s)const {
	st e3 = *this;
	e3.est[0][0] -= s;
	return e3;
}

st st::operator*(double s)const {
	st e3;
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			e3.est[i][j] = est[i][j] * s;
		}
	}
	return e3;
}

st st::operator/(double s)const {
	st e3;
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			e3.est[i][j] = est[i][j] / s;
		}
	}
	return e3;
}

st operator+(double s, const st& e2) {
	st e3 = e2;
	e3.est[0][0] += s;
	return e3;
}

st operator-(double s, const st& e2) {
	st e3 = -e2;
	e3.est[0][0] += s;
	return e3;
}

st operator*(double s, const st& e2) {
	st e3;
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			e3.est[i][j] = s * e2.est[i][j];
		}
	}
	return e3;
}

st operator/(double s, const st& e2) {
	return s * e2.IST();
}

st st::operator+()const {
	return *this;
}

st st::operator-()const {
	st e2;
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			e2.est[i][j] = -est[i][j];
		}
	}
	return e2;
}

st& st::operator+=(const st& e2) {
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			est[i][j] += e2.est[i][j];
		}
	}
	return *this;
}

st& st::operator-=(const st& e2) {
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			est[i][j] -= e2.est[i][j];
		}
	}
	return *this;
}

st& st::operator*=(const st& e2) {
	*this = *this * e2;
	return *this;
}

st& st::operator/=(const st& e2) {
	*this = *this / e2;
	return *this;
}

st& st::operator =(double s) {
	st e = { s };
	*this = e;
	return *this;
}

st& st::operator+=(double s) {
	est[0][0] += s;
	return *this;
}

st& st::operator-=(double s) {
	est[0][0] -= s;
	return *this;
}

st& st::operator*=(double s) {
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			est[i][j] *= s;
		}
	}
	return *this;
}

st& st::operator/=(double s) {
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			est[i][j] = est[i][j] / s;
		}
	}
	return *this;
}

double st::DETST()const {
	st e2 = *this;
	e2.est[0][0] *= -1;
	e2.est[3][0] *= -1;
	e2.est[3][1] *= -1;
	e2.est[3][2] *= -1;
	e2.est[3][3] *= -1;
	e2.est[2][0] *= -1;
	st e3 = *this * e2;
	e3.est[0][0] *= -1;
	return (*this * e2 * e3).est[0][0];
}

st st::IST()const {
	const double EPS = pow(24.0, -24.0);
	double det = DETST();
	if (fabs(det) > EPS) {
		st e = { 1 / det }, e2 = *this;
		e2.est[0][0] *= -1;
		e2.est[3][0] *= -1;
		e2.est[3][1] *= -1;
		e2.est[3][2] *= -1;
		e2.est[3][3] *= -1;
		e2.est[2][0] *= -1;
		st e3 = *this * e2;
		e3.est[0][0] *= -1;
		return e2 * e3 * e;
	}
	printf("\a");
	return *this;
}

st st::WST(const st& e1, const st& e2) {
	st e3;
	e3.est[0][0] = e1.est[0][0] * e2.est[0][0];
	e3.est[1][0] = e1.est[0][0] * e2.est[1][0] + e1.est[1][0] * e2.est[0][0];
	e3.est[1][1] = e1.est[0][0] * e2.est[1][1] + e1.est[1][1] * e2.est[0][0];
	e3.est[1][2] = e1.est[0][0] * e2.est[1][2] + e1.est[1][2] * e2.est[0][0];
	e3.est[1][3] = e1.est[0][0] * e2.est[1][3] + e1.est[1][3] * e2.est[0][0];
	e3.est[0][1] = e1.est[0][0] * e2.est[0][1] + e1.est[0][1] * e2.est[0][0] + e1.est[1][0] * e2.est[1][1] - e1.est[1][1] * e2.est[1][0];
	e3.est[0][2] = e1.est[0][0] * e2.est[0][2] + e1.est[0][2] * e2.est[0][0] + e1.est[1][0] * e2.est[1][2] - e1.est[1][2] * e2.est[1][0];
	e3.est[0][3] = e1.est[0][0] * e2.est[0][3] + e1.est[0][3] * e2.est[0][0] + e1.est[1][0] * e2.est[1][3] - e1.est[1][3] * e2.est[1][0];
	e3.est[2][1] = e1.est[0][0] * e2.est[2][1] + e1.est[2][1] * e2.est[0][0] + e1.est[1][2] * e2.est[1][3] - e1.est[1][3] * e2.est[1][2];
	e3.est[2][2] = e1.est[0][0] * e2.est[2][2] + e1.est[2][2] * e2.est[0][0] + e1.est[1][3] * e2.est[1][1] - e1.est[1][1] * e2.est[1][3];
	e3.est[2][3] = e1.est[0][0] * e2.est[2][3] + e1.est[2][3] * e2.est[0][0] + e1.est[1][1] * e2.est[1][2] - e1.est[1][2] * e2.est[1][1];
	e3.est[3][0] = e1.est[0][0] * e2.est[3][0] + e1.est[3][0] * e2.est[0][0] + e1.est[1][1] * e2.est[2][1] + e1.est[1][2] * e2.est[2][2] + e1.est[1][3] * e2.est[2][3] + e1.est[2][1] * e2.est[1][1] + e1.est[2][2] * e2.est[1][2] + e1.est[2][3] * e2.est[1][3];
	e3.est[3][1] = e1.est[0][0] * e2.est[3][1] + e1.est[3][1] * e2.est[0][0] + e1.est[1][0] * e2.est[2][1] - e1.est[1][2] * e2.est[0][3] + e1.est[1][3] * e2.est[0][2] + e1.est[2][1] * e2.est[1][0] + e1.est[0][2] * e2.est[1][3] - e1.est[0][3] * e2.est[1][2];
	e3.est[3][2] = e1.est[0][0] * e2.est[3][2] + e1.est[3][2] * e2.est[0][0] + e1.est[1][0] * e2.est[2][2] - e1.est[1][3] * e2.est[0][1] + e1.est[1][1] * e2.est[0][3] + e1.est[2][2] * e2.est[1][0] + e1.est[0][3] * e2.est[1][1] - e1.est[0][1] * e2.est[1][3];
	e3.est[3][3] = e1.est[0][0] * e2.est[3][3] + e1.est[3][3] * e2.est[0][0] + e1.est[1][0] * e2.est[2][3] - e1.est[1][1] * e2.est[0][2] + e1.est[1][2] * e2.est[0][1] + e1.est[2][3] * e2.est[1][0] + e1.est[0][1] * e2.est[1][2] - e1.est[0][2] * e2.est[1][1];
	e3.est[2][0] = e1.est[0][0] * e2.est[2][0] + e1.est[2][0] * e2.est[0][0] + e1.est[1][0] * e2.est[3][0] - e1.est[1][1] * e2.est[3][1] - e1.est[1][2] * e2.est[3][2] - e1.est[1][3] * e2.est[3][3] - e1.est[3][0] * e2.est[1][0] + e1.est[3][1] * e2.est[1][1] + e1.est[3][2] * e2.est[1][2] + e1.est[3][3] * e2.est[1][3] + e1.est[0][1] * e2.est[2][1] + e1.est[0][2] * e2.est[2][2] + e1.est[0][3] * e2.est[2][3] + e1.est[2][1] * e2.est[0][1] + e1.est[2][2] * e2.est[0][2] + e1.est[2][3] * e2.est[0][3];
	return e3;
}

st st::VST(const st& e1, const st& e2) { return e1 * e2 - WST(e1, e2); }
st st::CST(const st& e1, const st& e2) { return (e1 * e2 + e2 * e1) / 2.0; }
st st::AST(const st& e1, const st& e2) { return (e1 * e2 - e2 * e1) / 2.0; }

st st::WST(const st& e2)const { return WST(*this, e2); }
st st::VST(const st& e2)const { return VST(*this, e2); }
st st::CST(const st& e2)const { return VST(*this, e2); }
st st::AST(const st& e2)const { return AST(*this, e2); }

st st::ATST(const st& T)const {
	const double EPS = pow(24.0, -24.0);
	if (fabs(T.DETST()) > EPS) {
		return T.IST() * *this * T;
	}
	printf("\a");
	return *this;
}

st st::PTST(const st& T)const {
	const double EPS = pow(24.0, -24.0);
	if (fabs(T.DETST()) > EPS) {
		return T * *this * T.IST();
	}
	printf("\a");
	return *this;
}

st st::RST(double u[4])const {
	st T;
	T.est[0][0] = cos(u[0] / 2.0);
	T.est[2][1] = sin(u[0] / 2.0) * u[1] / sqrt(u[1] * u[1] + u[2] * u[2] + u[3] * u[3]);
	T.est[2][2] = sin(u[0] / 2.0) * u[2] / sqrt(u[1] * u[1] + u[2] * u[2] + u[3] * u[3]);
	T.est[2][3] = sin(u[0] / 2.0) * u[3] / sqrt(u[1] * u[1] + u[2] * u[2] + u[3] * u[3]);
	return ATST(T);
}

st st::BST(double u[4])const {
	st T;
	T.est[0][0] = cosh(u[0] / 2.0);
	T.est[0][1] = sinh(u[0] / 2.0) * u[1] / sqrt(u[1] * u[1] + u[2] * u[2] + u[3] * u[3]);
	T.est[0][2] = sinh(u[0] / 2.0) * u[2] / sqrt(u[1] * u[1] + u[2] * u[2] + u[3] * u[3]);
	T.est[0][3] = sinh(u[0] / 2.0) * u[3] / sqrt(u[1] * u[1] + u[2] * u[2] + u[3] * u[3]);
	return ATST(T);
}

st st::MST(double m[4])const {
	st M;
	M.est[1][0] = m[0];
	M.est[1][1] = m[1];
	M.est[1][2] = m[2];
	M.est[1][3] = m[3];
	return -ATST(M);
}

めも

物理数学

教科書

特に読んでない

演習書

後藤数学(院試)

力学

教科書

特に読んでない

演習書

後藤力学(編入 院試)

連続体力学

教科書

佐野連続体力学
流体力学(趣味)

演習書

特にやっていない

解析力学

教科書

解析力学
近藤解析力学
山本解析力学I II(趣味)

演習書

特にやっていない

電磁気学

教科書

太田電磁気学の基礎I(編入) II(趣味)
砂川理論電磁気
北野マクスウェル方程式

演習書

後藤電磁気(編入 院試)

相対論

教科書

シュッツ相対論I II
内山一般相対性理論(趣味)
Dirac一般相対性理論

演習書

Teukolsky相対性理論・重力理論(和訳)

量子力学

教科書

谷村量子
堀田量子
井田量子(趣味)
清水量子(趣味)

演習書

猪木河合I II(院試)

熱力学・統計力学

教科書

前野熱力学
田崎熱力学(趣味)
清水熱力学の基礎I II(趣味)
太田熱の理論(趣味)
田崎統計力学I II
清水統計(趣味)

演習書

久保統計(院試)

量子場理論

教科書

坂本場の量子論I II
Weinberg場の量子論1 2 3 4
久後ゲージI II(趣味)
Peskin(趣味)

演習書

柏場の量子論
柏くりこみ群

その他

中嶋松尾一般ゲージ理論と共変解析力学
中原幾何トポI II
スピン幾何学
計量微分幾何学
谷村幾何学から物理学へ