{ "cells": [ { "cell_type": "markdown", "id": "71d40661", "metadata": {}, "source": [ "# 埋め込みトーラス$T^2$のリーマン曲率テンソル\n", "\n", "管半径$a$、大半径$b$の環状トーラスを次のように埋め込みます。\n", "\n", "$$\n", "X(\\theta,\\phi)=\\bigl((b+a\\cos\\theta)\\cos\\phi,\n", "(b+a\\cos\\theta)\\sin\\phi,a\\sin\\theta\\bigr),\\qquad b>a>0.\n", "$$\n", "\n", "内在的に平坦な商空間としてのトーラスとは異なり、この埋め込み\n", "トーラスの曲率は場所によって符号が変わります。ここでは接続、\n", "リーマンテンソル、リッチテンソル、スカラー曲率を計算します。\n" ] }, { "cell_type": "markdown", "id": "8b3592df", "metadata": {}, "source": [ "## 座標と計量\n", "\n", "座標ベクトルは互いに直交し、その長さの2乗は$a^2$と\n", "$(b+a\\cos\\theta)^2$です。したがって、\n", "\n", "$$\n", "g=\\begin{pmatrix}a^2&0\\\\0&(b+a\\cos\\theta)^2\\end{pmatrix}.\n", "$$\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "95c32f2b", "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", "\n", "def e_i_j : Matrix MathValue := ∂/∂ X_j x~i\n", "\n", "def g_i_j : Matrix MathValue :=\n", " generateTensor (\\[u, v] -> V.* e_u_# e_v_#) [2, 2]\n", "\n", "def g~i~j : Matrix MathValue := M.inverse g_#_#\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "4b8cc8f5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} \\cos(φ) (\\cos(θ) a + b) \\\\ \\sin(φ) (\\cos(θ) a + b) \\\\ \\sin(θ) a\\\\ \\end{pmatrix}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "f275c364", "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": "code", "execution_count": 4, "id": "ba4e727c", "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": "62ffcc8b", "metadata": {}, "source": [ "## レヴィ・チヴィタ接続\n", "\n", "次の式を用い、第1添字を$g^{ij}$で上げます。\n", "$\\Gamma_{ijk}=\\tfrac12(\\partial_jg_{ik}+\\partial_kg_{ij}-\\partial_ig_{jk})$\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "4228de9b", "metadata": {}, "outputs": [], "source": [ "def Γ_i_j_k : Tensor MathValue :=\n", " (1 / 2) * (∂/∂ 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" ] }, { "cell_type": "code", "execution_count": 6, "id": "f4c35e9a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} 0 & 0 \\\\ 0 & \\sin(θ) (\\cos(θ) a + b) a^{-1} \\\\ \\end{pmatrix}_{\\#\\#}^{\\;\\;}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Γ~1_#_#\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "ce671ad7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} 0 & -\\sin(θ) (\\cos(θ) a + b)^{-1} a \\\\ -\\sin(θ) (\\cos(θ) a + b)^{-1} a & 0 \\\\ \\end{pmatrix}_{\\#\\#}^{\\;\\;}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Γ~2_#_#\n" ] }, { "cell_type": "markdown", "id": "bfea5de7", "metadata": {}, "source": [ "## リーマンテンソル\n", "\n", "末尾の2つの添字は反対称です。第1添字を下げると、$R_{ijkl}$で\n", "よく知られた添字対の対称性も明らかになります。\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "0a547618", "metadata": {}, "outputs": [], "source": [ "def R~i_j_k_l : Tensor MathValue := withSymbols [m]\n", " ∂/∂ Γ~i_j_l x~k - ∂/∂ Γ~i_j_k x~l\n", " + Γ~m_j_l . Γ~i_m_k - Γ~m_j_k . Γ~i_m_l\n", "\n", "def R_i_j_k_l : Tensor MathValue := withSymbols [m]\n", " g_i_m . R~m_j_k_l\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "16dc0741", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} 0 & \\cos(θ) (\\cos(θ) a + b) a^{-1} \\\\ -\\cos(θ) (\\cos(θ) a + b)^{-1} a & 0 \\\\ \\end{pmatrix}_{\\;\\#}^{\\#\\;}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "R~#_#_1_2\n" ] }, { "cell_type": "code", "execution_count": 10, "id": "7cfb8edc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\cos(θ) (\\cos(θ) a + b) a$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "R_1_2_1_2\n" ] }, { "cell_type": "markdown", "id": "afa384c7", "metadata": {}, "source": [ "## リッチ曲率・スカラー曲率・ガウス曲率\n", "\n", "2次元では、スカラー曲率はガウス曲率の2倍、すなわち\n", "$\\mathcal R=2K$です。このトーラスでは、\n", "\n", "$$\n", "K(\\theta)=\\frac{\\cos\\theta}{a(b+a\\cos\\theta)}.\n", "$$\n" ] }, { "cell_type": "code", "execution_count": 11, "id": "c62da1ed", "metadata": {}, "outputs": [], "source": [ "def Ric_i_j : Matrix MathValue := withSymbols [m]\n", " sum (contract R~m_i_m_j)\n", "\n", "def scalarCurvature : MathValue := withSymbols [i, j]\n", " g~i~j . Ric_i_j\n", "\n", "def gaussianCurvature : MathValue := scalarCurvature / 2\n" ] }, { "cell_type": "code", "execution_count": 12, "id": "846b78da", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\begin{pmatrix} \\cos(θ) (\\cos(θ) a + b)^{-1} a & 0 \\\\ 0 & \\cos(θ) (\\cos(θ) a + b) a^{-1} \\\\ \\end{pmatrix}_{\\#\\#}^{\\;\\;}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Ric_#_#\n" ] }, { "cell_type": "code", "execution_count": 13, "id": "a128cfed", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$2 \\cos(θ) (\\cos(θ) a + b)^{-1} a^{-1}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "scalarCurvature\n" ] }, { "cell_type": "code", "execution_count": 14, "id": "5779b1bc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\cos(θ) (\\cos(θ) a + b)^{-1} a^{-1}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gaussianCurvature\n" ] }, { "cell_type": "markdown", "id": "9b9496b2", "metadata": {}, "source": [ "## 幾何学的な意味\n", "\n", "トーラスの外側($\\cos\\theta>0$)では曲率が正、内側\n", "($\\cos\\theta<0$)では負となり、上端と下端の円周上では曲率が0で\n", "放物的になります。\n", "ガウス–ボンネ積分では正負の寄与が打ち消し合い、\n", "$\\chi(T^2)=0$と整合します。\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 }