{ "cells": [ { "cell_type": "markdown", "id": "5b0101eb", "metadata": {}, "source": [ "# 2次元トーラスのオイラー形式\n", "\n", "トーラスにはガウス曲率が正の領域と負の領域がありますが、その総和は\n", "相殺されます。\n", "\n", "$$\\int_{T^2}e(TT^2)=\\chi(T^2)=0.$$\n", "\n", "このNotebookでは、埋め込まれたトーラスから局所的なオイラー形式を計算し、\n", "この相殺を明示します。\n" ] }, { "cell_type": "markdown", "id": "bb3dad5f", "metadata": {}, "source": [ "## 埋め込まれたトーラスと計量\n", "\n", "$a$ を管の半径、$b$ を管の中心から対称軸までの距離とします。\n", "$a\\cos\\theta+b$ を囲むopaque quote(不透明引用)により、行列計算の途中でも、\n", "この式をひとまとまりのコンパクトな記号式として保持します。\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "441f6f87", "metadata": {}, "outputs": [], "source": [ "declare symbol θ, φ, a, b : MathValue\n", "\n", "def x : Vector MathValue := [| θ, φ |]\n", "def X : Vector MathValue :=\n", " [| `(a * cos θ + b) * cos φ\n", " , `(a * cos θ + b) * sin φ\n", " , a * sin θ |]\n", "\n", "def e_i_j : Matrix MathValue := ∂/∂ X_j x~i\n", "def g_i_j : Matrix MathValue :=\n", " generateTensor (\\[u, v] -> V.* e_u_# e_v_#) [2, 2]\n", "def g~i~j : Matrix MathValue := M.inverse g_#_#\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "008a9076", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} a^{2} & 0 \\\\ 0 & (\\cos(θ) a + b)^{2} \\\\ \\end{pmatrix}_{\\#\\#}^{\\;\\;}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "g_#_#\n" ] }, { "cell_type": "markdown", "id": "0a8ae65f", "metadata": {}, "source": [ "## 正規直交枠での接続\n", "\n", "多脚場(vielbein)によって座標のスケール因子を取り除きます。球面の場合と同様に、\n", "枠を変換するときには非斉次項 $A^{-1}dA$ が不可欠です。\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "1d78635e", "metadata": {}, "outputs": [], "source": [ "def Γ_i_j_k : Tensor MathValue :=\n", " (1 / 2) *\n", " (∂/∂ g_i_k x~j + ∂/∂ g_i_j x~k - ∂/∂ g_j_k x~i)\n", "\n", "def Γ~i_j_k : Tensor MathValue := withSymbols [m]\n", " g~i~m . Γ_m_j_k\n", "\n", "def A : Matrix MathValue :=\n", " [| [| 1 / a, 0 |]\n", " , [| 0, 1 / `(a * cos θ + b) |] |]\n", "\n", "def d (t : Tensor MathValue) : Tensor MathValue :=\n", " !(flip ∂/∂) x t\n", "\n", "def ω0~i_j : Matrix MathValue := Γ~i_j_#\n", "def ω~i_j : Tensor MathValue := withSymbols [u, v]\n", " (M.inverse A)~i_u . ω0~u_v . A~v_j\n", " + (M.inverse A)~i_u . d A~u_j\n" ] }, { "cell_type": "markdown", "id": "2e214987", "metadata": {}, "source": [ "ゼロでない接続係数はトーラス上で符号を変え、それに伴って曲率の符号も\n", "変化します。\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "4b78f197", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\sin(θ)$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ω~1_2_2\n" ] }, { "cell_type": "markdown", "id": "f92fa3c1", "metadata": {}, "source": [ "## 曲率とオイラー形式\n", "\n", "カルタンの方程式を適用した後、2つの形式添字を明示的に反対称化し、\n", "階数2のパフィアン(Pfaffian)を取ります。\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "d808dc93", "metadata": {}, "outputs": [], "source": [ "def Ω~i_j : Tensor MathValue := withSymbols [k]\n", " antisymmetrize (d ω~i_j + ω~i_k ∧ ω~k_j)\n", "\n", "def eulerForm : Tensor MathValue :=\n", " (1 / (4 * π)) * withSymbols [t1, t2]\n", " (Ω~1_2_t1_t2 - Ω~2_1_t1_t2)\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "88b639ca", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} 0 & \\frac{1}{4} \\cos(θ) π^{-1} \\\\ \\frac{-1}{4} \\cos(θ) π^{-1} & 0 \\\\ \\end{pmatrix}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "eulerForm\n" ] }, { "cell_type": "markdown", "id": "a1005146", "metadata": {}, "source": [ "上三角側のテンソル成分は $\\cos\\theta/(4\\pi)$ です。その反対称な相方も\n", "含めると、向き付き密度\n", "$\\cos\\theta\\,d\\theta\\wedge d\\phi/(2\\pi)$ が得られます。子午線方向を\n", "一周する積分はゼロになります。\n", "\n", "$$\\int_0^{2\\pi}\\cos\\theta\\,d\\theta=0.$$\n", "\n", "したがって、外側の正の曲率と内側の負の曲率が相殺され、\n", "$\\chi(T^2)=0$ が得られます。この結果は $a$ と $b$ に依存しません。\n" ] } ], "metadata": { "kernelspec": { "display_name": "Egison", "language": "egison", "name": "egison" }, "language_info": { "codemirror_mode": "egison", "file_extension": ".egi", "mimetype": "text/x-egison", "name": "egison" } }, "nbformat": 4, "nbformat_minor": 5 }