{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "%display latex\n", "Parallelism().set(nproc=8)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "This notebook was written under the supervision of Éric Gourgoulhon \\(LUTH\\) as part of my physics internship in July 2023.\n", "\n", "**Author** : Nicolas Seroux\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# Espace\\-temps anti\\-de Sitter et cylindre d'Einstein\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Nous donnons ici quelques propriétés géométriques des espaces\\-temps anti\\-de Sitter $\\mathrm{AdS}_{n+1}$ et des espaces\\-temps d'Einstein $\\mathrm{Ein}_{n+1}$. On essaiera d'énoncer la théorie dans le cas général $n\\geq2$, et on illustrera cette théorie par les calculs explicites dans les cas $n=2$ et $n=3$. \n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Cylindre d'Einstein\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Pour, pour $n\\geq2$, on appelle **espace\\-temps d'Einstein universel en dimension** $n+1$ la variété $\\widetilde{\\mathrm{Ein}}_{n+1}$ définie comme un produit $\\mathbb{R}\\times\\mathbb{S}_n$ muni de la métrique :\n", "\n", "$$\n", "g_{\\widetilde{\\mathrm{Ein}}_{n+1}} = -\\mathrm{d}\\tau+\\mathrm{d}\\Omega_n^2,\n", "$$\n", "\n", "où $\\mathrm{d}\\Omega_n^2$ est la métrique usuelle sur $\\mathbb{S}_n$.\n", "\n", "L'exemple classique dans le cas $n=3$ est le **cylindre d'Einstein** $\\widetilde{\\mathrm{Ein}}_{3+1}\\approx\\mathbb{R}\\times\\mathbb{S}_3$, dont la métrique est donnée dans des coordonnées naturelles $(\\tau,\\chi,\\theta,\\varphi)$ par :\n", "\n", "\n", "$$\n", "g_{\\widetilde{\\mathrm{Ein}}_{3+1}} = -\\mathrm{d}\\tau^2+\\mathrm{d}\\chi^2 + \\sin^2\\chi\\left(\\mathrm{d}\\theta^2+\\sin^2\\theta\\, \\mathrm{d}\\varphi^2\\right).\n", "$$\n", "\n", "Pour $n=2$, on choisit de manière analogue des coordonnées $(\\tau, \\theta,\\varphi)$ pour lesquelles :\n", "\n", "\n", "$$\n", "g_{\\widetilde{\\mathrm{Ein}}_{2+1}} = -\\mathrm{d}\\tau^2+\\mathrm{d}\\theta^2+\\sin^2\\theta \\,\\mathrm{d}\\varphi^2.\n", "$$\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Définition de la variété d'espace\\-temps et des coordonnées adaptées :\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "Ein_U_3 = Manifold(3, 'Ein_U_3', latex_name=r'\\widetilde{\\mathrm{Ein}}_{2+1}',\n", " structure='Lorentzian', metric_latex_name=r'g_{\\widetilde{\\mathrm{Ein}}_{2+1}}')\n", "X_Ein_U_3. = Ein_U_3.chart(r'tau:\\tau th:(0,pi):\\theta ph:(0,2*pi):\\varphi:periodic')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "Ein_U_4 = Manifold(4, 'Ein_U_4', latex_name=r'\\widetilde{\\mathrm{Ein}}_{3+1}',\n", " structure='Lorentzian', metric_latex_name=r'g_{\\widetilde{\\mathrm{Ein}}_{3+1}}')\n", "X_Ein_U_4. = Ein_U_4.chart(r'tau:\\tau chi:(0,pi):\\chi th:(0,pi):\\theta ph:(0,2*pi):\\varphi:periodic')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Définition de la métrique :\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g_{\\widetilde{\\mathrm{Ein}}_{2+1}} = -\\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau}+\\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle g_{\\widetilde{\\mathrm{Ein}}_{2+1}} = -\\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau}+\\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "g = -dtau⊗dtau + dth⊗dth + sin(th)^2 dph⊗dph" ] }, "execution_count": 5, "metadata": { }, "output_type": "execute_result" } ], "source": [ "g_Ein_U_3 = Ein_U_3.metric()\n", "\n", "g_Ein_U_3[0,0] = -1\n", "g_Ein_U_3[1,1] = 1\n", "g_Ein_U_3[2,2] = sin(th)^2\n", "\n", "g_Ein_U_3.display()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g_{\\widetilde{\\mathrm{Ein}}_{3+1}} = -\\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau}+\\mathrm{d} {\\chi}\\otimes \\mathrm{d} {\\chi} + \\sin\\left({\\chi}\\right)^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\sin\\left({\\chi}\\right)^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle g_{\\widetilde{\\mathrm{Ein}}_{3+1}} = -\\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau}+\\mathrm{d} {\\chi}\\otimes \\mathrm{d} {\\chi} + \\sin\\left({\\chi}\\right)^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\sin\\left({\\chi}\\right)^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "g = -dtau⊗dtau + dchi⊗dchi + sin(chi)^2 dth⊗dth + sin(chi)^2*sin(th)^2 dph⊗dph" ] }, "execution_count": 6, "metadata": { }, "output_type": "execute_result" } ], "source": [ "g_Ein_U_4 = Ein_U_4.metric()\n", "\n", "g_Ein_U_4[0,0] = -1\n", "g_Ein_U_4[1,1] = 1\n", "g_Ein_U_4[2,2] = sin(chi)^2\n", "g_Ein_U_4[3,3] = sin(chi)^2*sin(th)^2\n", "\n", "g_Ein_U_4.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "---\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On peut désormais calculer les tenseurs d'Einstein associés aux métriques $g_{\\widetilde{\\mathrm{Ein}}_{2+1}}$ et $g_{\\widetilde{\\mathrm{Ein}}_{3+1}}$. Pour $n=2$ :\n", "\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle G_{\\mathrm{Ein}_{2+1}} = \\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau}\\)" ], "text/latex": [ "$\\displaystyle G_{\\mathrm{Ein}_{2+1}} = \\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau}$" ], "text/plain": [ "G = dtau⊗dtau" ] }, "execution_count": 7, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Ric_Ein_U_3 = g_Ein_U_3.ricci()\n", "R_Ein_U_3 = g_Ein_U_3.ricci_scalar()\n", "\n", "G_Ein_U_3 = Ric_Ein_U_3 - 1/2*R_Ein_U_3*g_Ein_U_3\n", "G_Ein_U_3.set_name('G', latex_name=r'G_{\\mathrm{Ein}_{2+1}}')\n", "G_Ein_U_3.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On voit donc que le cylindre d'Einstein en dimension $2+1$ est une solution des équations d'Einstein en présence d'un fluide parfait sans pression de densité $\\frac{1}{8\\pi}$ suivant des orbites de $\\partial_\\tau$, dont le tenseur énergie\\-impulsion est donné par :\n", "\n", "$$\n", "T=\\frac{1}{8\\pi}\\,\\mathrm{d}\\tau\\otimes\\mathrm{d}\\tau.\n", "$$\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Pour $n=3$ :\n", "\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle G_{\\mathrm{Ein}_{3+1}} = 3 \\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau} -\\mathrm{d} {\\chi}\\otimes \\mathrm{d} {\\chi} -\\sin\\left({\\chi}\\right)^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} -\\sin\\left({\\chi}\\right)^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle G_{\\mathrm{Ein}_{3+1}} = 3 \\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau} -\\mathrm{d} {\\chi}\\otimes \\mathrm{d} {\\chi} -\\sin\\left({\\chi}\\right)^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} -\\sin\\left({\\chi}\\right)^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "G = 3 dtau⊗dtau - dchi⊗dchi - sin(chi)^2 dth⊗dth - sin(chi)^2*sin(th)^2 dph⊗dph" ] }, "execution_count": 8, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Ric_Ein_U_4 = g_Ein_U_4.ricci()\n", "R_Ein_U_4 = g_Ein_U_4.ricci_scalar()\n", "\n", "G_Ein_U_4 = Ric_Ein_U_4-1/2*R_Ein_U_4*g_Ein_U_4\n", "G_Ein_U_4.set_name('G', latex_name=r'G_{\\mathrm{Ein}_{3+1}}')\n", "G_Ein_U_4.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On voit donc que :\n", "\n", "$$\n", "G_{\\mathrm{Ein}_{3+1}}=2\\,\\mathrm{d}\\tau\\otimes\\mathrm{d}\\tau-g_{\\mathrm{Ein}_{3+1}}\n", "$$\n", "\n", "ce qui montre que le cylindre d'Einstein en dimension $3+1$ est une solution des équations d'Einstein avec constante cosmologique $\\Lambda=1$ en présence d'un fluide parfait sans pression de densité $\\rho=\\frac{1}{4\\pi}$ suivant des orbites de $\\partial_\\tau$, dont le tenseur énergie\\-impulsion est donné par :\n", "\n", "$$\n", "T=\\frac{1}{4\\pi}\\,\\mathrm{d}\\tau\\otimes\\mathrm{d}\\tau.\n", "$$\n", "\n", "On peut également voir le cylindre d'Einstein en dimension $3+1$ comme une solution des équations d'Einstein avec une constante cosmologique $\\Lambda$ quelconque et un fluide parfait de densité $\\rho=\\frac{3-\\Lambda}{8\\pi}$ et de pression $p=\\frac{\\Lambda-1}{8\\pi}$ sont le tenseur énergie impulsion est donné par :\n", "\n", "$$\n", "T=(\\rho+p)\\,\\mathrm{d}\\tau\\otimes\\mathrm{d}\\tau+p\\,g_{\\widetilde{\\mathrm{Ein}}_{3+1}}=\\frac{1}{4\\pi}\\mathrm{d\\tau}\\otimes\\mathrm{d}\\tau+\\frac{\\Lambda-1}{8\\pi}g_{\\widetilde{\\mathrm{Ein}}_{3+1}}.\n", "$$\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "En particulier, l'espace\\-temps d'Einstein en dimension $3+1$ a une courbure scalaire constante :\n", "\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\mathrm{r}\\left(g_{\\widetilde{\\mathrm{Ein}}_{3+1}}\\right):& \\widetilde{\\mathrm{Ein}}_{3+1} & \\longrightarrow & \\mathbb{R} \\\\ & \\left({\\tau}, {\\chi}, {\\theta}, {\\varphi}\\right) & \\longmapsto & 6 \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\mathrm{r}\\left(g_{\\widetilde{\\mathrm{Ein}}_{3+1}}\\right):& \\widetilde{\\mathrm{Ein}}_{3+1} & \\longrightarrow & \\mathbb{R} \\\\ & \\left({\\tau}, {\\chi}, {\\theta}, {\\varphi}\\right) & \\longmapsto & 6 \\end{array}$" ], "text/plain": [ "r(g): Ein_U_4 → ℝ\n", " (tau, chi, th, ph) ↦ 6" ] }, "execution_count": 9, "metadata": { }, "output_type": "execute_result" } ], "source": [ "R_Ein_U_4.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "En général, pour $n\\geq2$, on a :\n", "\n", "$$\n", "\\mathrm{Ric}_{\\mathrm{Ein}_{n+1}}=(n-1)g_{\\mathrm{Ein}_{n+1}}+(n-1)\\,\\mathrm{d}\\tau\\otimes\\mathrm{d}\\tau,\n", "$$\n", "\n", "ce qui implique que la courbure scalaire est donnée par $R_{\\mathrm{Ein}_{n+1}}=(n-1)(n+1)-(n-1)=n(n-1)$, et donc : \n", "$$\n", "G_{\\mathrm{Ein}_{n+1}}=-(n-1)\\frac{n-2}{2}g_{\\mathrm{Ein}_{n+1}}+(n-1)\\,\\mathrm{d}\\tau\\otimes\\mathrm{d}\\tau,\n", "$$\n", "ce qui signifie que le cylindre d'Einstein de dimension $n+1$ est une solution des équations d'Einstein avec constante cosmologique $\\Lambda$ et un fluide parfait de densité $\\rho$ et de pression $p$ avec :\n", "$$p=\\frac{1}{8\\pi}\\left(\\Lambda-\\frac{(n-1)(n-2)}{2}\\right),$$\n", "$$\\rho=\\frac{1}{8\\pi}\\left(\\frac{n(n-1)}{2}-\\Lambda\\right).$$\n", "En particulier, si l'on impose une condition d'énergie forte, qui se traduit par $\\rho\\geq0$, $p+\\rho\\geq0$, on obtient une borne sur la constante cosmologique :\n", "$$\\Lambda\\leq\\frac{n(n-1)}{2}.$$\n", "\n", "Alternativement, on peut supposer que l'espace\\-temps d'Einstein est solution des équations d'Einstein pour une matière sans pression \\- hypothèse raisonnable pour une situation cosmologique \\- ce qui fixe alors la valeur de la constante cosmologique $\\Lambda$ et de la densité $\\rho$ :\n", "\n", "\n", "$$\n", "\\Lambda=\\frac{(n-1)(n-2)}{2},\n", "$$\n", "\n", "\n", "$$\n", "\\rho=\\frac{n-1}{8\\pi}.\n", "$$\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "---\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Pour tout $n\\geq2$, $\\widetilde{\\mathrm{Ein}}_{n+1}$ est simplement connexe. L'espace\\-temps d'Einstein universel est en fait le recouvrement universel de l'_espace\\-temps d'Einstein_$\\mathrm{Ein}_{n+1}\\approx\\mathbb{S}_1\\times\\mathbb{S}_n$. La forme de la métrique de $\\mathrm{Ein}_{n+1}$ est similaire à celle de $\\widetilde{\\mathrm{Ein}}_{n+1}$ :\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g_{\\mathrm{Ein}_{2+1}} = -\\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau}+\\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle g_{\\mathrm{Ein}_{2+1}} = -\\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau}+\\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "g = -dtau⊗dtau + dth⊗dth + sin(th)^2 dph⊗dph" ] }, "execution_count": 10, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Ein_3 = Manifold(3, 'Ein_3', latex_name=r'\\mathrm{Ein}_{2+1}', structure='Lorentzian',\n", " metric_latex_name=r'g_{\\mathrm{Ein}_{2+1}}')\n", "X_Ein_3. = Ein_3.chart(r'tau:(0,2*pi):\\tau:periodic th:(0,pi):\\theta ph:(0,2*pi):\\varphi:periodic')\n", "\n", "g_Ein_3 = Ein_3.metric()\n", "\n", "g_Ein_3[0,0] = -1\n", "g_Ein_3[1,1] = 1\n", "g_Ein_3[2,2] = sin(th)^2\n", "\n", "g_Ein_3.display()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g_{\\mathrm{Ein}_{3+1}} = -\\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau}+\\mathrm{d} {\\chi}\\otimes \\mathrm{d} {\\chi} + \\sin\\left({\\chi}\\right)^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\sin\\left({\\chi}\\right)^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle g_{\\mathrm{Ein}_{3+1}} = -\\mathrm{d} {\\tau}\\otimes \\mathrm{d} {\\tau}+\\mathrm{d} {\\chi}\\otimes \\mathrm{d} {\\chi} + \\sin\\left({\\chi}\\right)^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\sin\\left({\\chi}\\right)^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "g = -dtau⊗dtau + dchi⊗dchi + sin(chi)^2 dth⊗dth + sin(chi)^2*sin(th)^2 dph⊗dph" ] }, "execution_count": 11, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Ein_4 = Manifold(4, 'Ein_4', latex_name=r'\\mathrm{Ein}_{3+1}', structure='Lorentzian',\n", " metric_latex_name=r'g_{\\mathrm{Ein}_{3+1}}')\n", "X_Ein_4. = Ein_4.chart(r'tau:(0,2*pi):\\tau:periodic chi:(0,pi):\\chi th:(0,pi):\\theta ph:(0,2*pi):\\varphi:periodic')\n", "\n", "g_Ein_4 = Ein_4.metric()\n", "\n", "g_Ein_4[0,0] = -1\n", "g_Ein_4[1,1] = 1\n", "g_Ein_4[2,2] = sin(chi)^2\n", "g_Ein_4[3,3] = sin(chi)^2*sin(th)^2\n", "\n", "g_Ein_4.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On dispose d'une projection naturelle $\\pi_{\\mathrm{Ein}_{n+1}}:\\widetilde{\\mathrm{Ein}}_{n+1}\\longrightarrow\\mathrm{Ein}_{n+1}$, qui est de plus une isométrie. On aurait également pu partir de $\\mathrm{Ein}_{n+1}$ et _définir_ la métrique sur le recouvrement universel $\\widetilde{\\mathrm{Ein}}_{n+1}$ comme un tiré\\-en\\-arrière par $\\pi_{\\mathrm{Ein}_{n+1}}$. \n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\pi_{\\mathrm{Ein}_{2+1}}:& \\widetilde{\\mathrm{Ein}}_{2+1} & \\longrightarrow & \\mathrm{Ein}_{2+1} \\\\ & \\left({\\tau}, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left({\\tau}, {\\theta}, {\\varphi}\\right) = \\left({\\tau}, {\\theta}, {\\varphi}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\pi_{\\mathrm{Ein}_{2+1}}:& \\widetilde{\\mathrm{Ein}}_{2+1} & \\longrightarrow & \\mathrm{Ein}_{2+1} \\\\ & \\left({\\tau}, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left({\\tau}, {\\theta}, {\\varphi}\\right) = \\left({\\tau}, {\\theta}, {\\varphi}\\right) \\end{array}$" ], "text/plain": [ "pi_Ein_3: Ein_U_3 → Ein_3\n", " (tau, th, ph) ↦ (tau, th, ph) = (tau, th, ph)" ] }, "execution_count": 12, "metadata": { }, "output_type": "execute_result" } ], "source": [ "pi_Ein_3 = Ein_U_3.diff_map(Ein_3, [tau, th, ph], name='pi_Ein_3', latex_name=r'\\pi_{\\mathrm{Ein}_{2+1}}')\n", "pi_Ein_3.display()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\pi_{\\mathrm{Ein}_{3+1}}:& \\widetilde{\\mathrm{Ein}}_{3+1} & \\longrightarrow & \\mathrm{Ein}_{3+1} \\\\ & \\left({\\tau}, {\\chi}, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left({\\tau}, {\\chi}, {\\theta}, {\\varphi}\\right) = \\left({\\tau}, {\\chi}, {\\theta}, {\\varphi}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\pi_{\\mathrm{Ein}_{3+1}}:& \\widetilde{\\mathrm{Ein}}_{3+1} & \\longrightarrow & \\mathrm{Ein}_{3+1} \\\\ & \\left({\\tau}, {\\chi}, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left({\\tau}, {\\chi}, {\\theta}, {\\varphi}\\right) = \\left({\\tau}, {\\chi}, {\\theta}, {\\varphi}\\right) \\end{array}$" ], "text/plain": [ "pi_Ein_4: Ein_U_4 → Ein_4\n", " (tau, chi, th, ph) ↦ (tau, chi, th, ph) = (tau, chi, th, ph)" ] }, "execution_count": 13, "metadata": { }, "output_type": "execute_result" } ], "source": [ "pi_Ein_4 = Ein_U_4.diff_map(Ein_4, [tau, chi, th, ph], name='pi_Ein_4', latex_name=r'\\pi_{\\mathrm{Ein}_{3+1}}')\n", "pi_Ein_4.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Espace\\-temps anti\\-de Sitter\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Espace pseudo\\-minkowskien $\\mathbb{R}^{2+n}$\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On définit l'espace\\-temps pseudo\\-minkowskien $\\mathbb{R}^{2+n}$ en munissant $\\mathbb{R}^{n+2}$ de coordonnées globales $(u,v,x^1, \\cdots,x^n)$ et d'une métrique pseudo\\-riemannienne plate.\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "R22 = Manifold(4, 'R22', r'\\mathbb{R}^{2+2}', structure='pseudo-Riemannian', signature=0,\n", " metric_name='eta_22', metric_latex_name=r'\\eta_{2+2}')\n", "\n", "X_R22_Cart. = R22.chart()\n", "\n", "X_R22_Sph. = R22.chart(r'u v r:(0,+oo) ph:(0,2*pi):\\varphi:periodic')\n", "\n", "trans_R22_Sph_to_Cart = X_R22_Sph.transition_map(X_R22_Cart, [u, v, r*cos(ph), r*sin(ph)], restrictions2=(x^2+y^2!=0))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "R23 = Manifold(5, 'R23', r'\\mathbb{R}^{2+3}', structure='pseudo-Riemannian', signature=1,\n", " metric_name='eta_23', metric_latex_name=r'\\eta_{2+3}')\n", "\n", "X_R23_Cart. = R23.chart()\n", "\n", "X_R23_Sph. = R23.chart(r'u v r:(0,+oo) th:(0,pi):\\theta ph:(0,2*pi):\\varphi:periodic')\n", "\n", "trans_R23_Sph_to_Cart = X_R23_Sph.transition_map(X_R23_Cart, [u, v, r*cos(ph)*sin(th), r*sin(ph)*sin(th), r*cos(th)],\n", " restrictions2=(x^2+y^2+z^2!=0))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "La forme de la métrique mime la métrique de Minkowski, à ceci près qu'on ajoute une seconde direction temporelle :\n", "\n", "\n", "$$\n", "\\eta_{2+n}=-\\mathrm{d}u\\otimes\\mathrm{d}u-\\mathrm{d}v\\otimes\\mathrm{d}v+\\mathrm{d}x^1\\otimes\\mathrm{d}x^1+\\cdots+\\mathrm{d}x^n\\otimes\\mathrm{d}x^n.\n", "$$\n", "\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\eta_{2+2} = -\\mathrm{d} u\\otimes \\mathrm{d} u-\\mathrm{d} v\\otimes \\mathrm{d} v+\\mathrm{d} x\\otimes \\mathrm{d} x+\\mathrm{d} y\\otimes \\mathrm{d} y\\)" ], "text/latex": [ "$\\displaystyle \\eta_{2+2} = -\\mathrm{d} u\\otimes \\mathrm{d} u-\\mathrm{d} v\\otimes \\mathrm{d} v+\\mathrm{d} x\\otimes \\mathrm{d} x+\\mathrm{d} y\\otimes \\mathrm{d} y$" ], "text/plain": [ "eta_22 = -du⊗du - dv⊗dv + dx⊗dx + dy⊗dy" ] }, "execution_count": 16, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eta_22 = R22.metric()\n", "\n", "eta_22[0,0], eta_22[1,1], eta_22[2,2], eta_22[3,3] = -1, -1, 1, 1\n", "\n", "eta_22.display()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\eta_{2+3} = -\\mathrm{d} u\\otimes \\mathrm{d} u-\\mathrm{d} v\\otimes \\mathrm{d} v+\\mathrm{d} x\\otimes \\mathrm{d} x+\\mathrm{d} y\\otimes \\mathrm{d} y+\\mathrm{d} z\\otimes \\mathrm{d} z\\)" ], "text/latex": [ "$\\displaystyle \\eta_{2+3} = -\\mathrm{d} u\\otimes \\mathrm{d} u-\\mathrm{d} v\\otimes \\mathrm{d} v+\\mathrm{d} x\\otimes \\mathrm{d} x+\\mathrm{d} y\\otimes \\mathrm{d} y+\\mathrm{d} z\\otimes \\mathrm{d} z$" ], "text/plain": [ "eta_23 = -du⊗du - dv⊗dv + dx⊗dx + dy⊗dy + dz⊗dz" ] }, "execution_count": 17, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eta_23 = R23.metric()\n", "\n", "eta_23[0,0], eta_23[1,1], eta_23[2,2], eta_23[3,3], eta_23[4,4] = -1, -1, 1, 1, 1\n", "\n", "eta_23.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Cette métrique permet de définir une forme quadratique $Q_{2+n}$ sur $\\mathbb{R}^{2+n}$ dont l'expression est naturellement :\n", "\n", "\n", "$$\n", "Q_{2+n}(u,v,x^1, \\cdots,x^n)=-u^2-v^2+\\sum\\limits_{i=1}^n(x^i)^2\n", "$$\n", "\n" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} Q_{2+2}:& \\mathbb{R}^{2+2} & \\longrightarrow & \\Bold{R} \\\\ & \\left(u, v, x, y\\right) & \\longmapsto & t = -u^{2} - v^{2} + x^{2} + y^{2} \\\\ & \\left(u, v, r, {\\varphi}\\right) & \\longmapsto & t = r^{2} - u^{2} - v^{2} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} Q_{2+2}:& \\mathbb{R}^{2+2} & \\longrightarrow & \\Bold{R} \\\\ & \\left(u, v, x, y\\right) & \\longmapsto & t = -u^{2} - v^{2} + x^{2} + y^{2} \\\\ & \\left(u, v, r, {\\varphi}\\right) & \\longmapsto & t = r^{2} - u^{2} - v^{2} \\end{array}$" ], "text/plain": [ "Q_22: R22 → ℝ\n", " (u, v, x, y) ↦ t = -u^2 - v^2 + x^2 + y^2\n", " (u, v, r, ph) ↦ t = r^2 - u^2 - v^2" ] }, "execution_count": 18, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Q_22 = R22.diff_map(manifolds.RealLine(), [x^2+y^2-u^2-v^2], name='Q_22', latex_name=r'Q_{2+2}')\n", "Q_22.display()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} Q_{2+3}:& \\mathbb{R}^{2+3} & \\longrightarrow & \\Bold{R} \\\\ & \\left(u, v, x, y, z\\right) & \\longmapsto & t = -u^{2} - v^{2} + x^{2} + y^{2} + z^{2} \\\\ & \\left(u, v, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & t = r^{2} - u^{2} - v^{2} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} Q_{2+3}:& \\mathbb{R}^{2+3} & \\longrightarrow & \\Bold{R} \\\\ & \\left(u, v, x, y, z\\right) & \\longmapsto & t = -u^{2} - v^{2} + x^{2} + y^{2} + z^{2} \\\\ & \\left(u, v, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & t = r^{2} - u^{2} - v^{2} \\end{array}$" ], "text/plain": [ "Q_23: R23 → ℝ\n", " (u, v, x, y, z) ↦ t = -u^2 - v^2 + x^2 + y^2 + z^2\n", " (u, v, r, th, ph) ↦ t = r^2 - u^2 - v^2" ] }, "execution_count": 19, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Q_23 = R23.diff_map(manifolds.RealLine(), [x^2+y^2+z^2-u^2-v^2], name='Q_23', latex_name=r'Q_{2+3}')\n", "Q_23.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On introduit aussi des formes quadratiques pour la norme usuelle de $\\mathbb{R}^{n+2}$ :\n" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} Q_{4}:& \\mathbb{R}^{2+2} & \\longrightarrow & \\Bold{R} \\\\ & \\left(u, v, x, y\\right) & \\longmapsto & t = u^{2} + v^{2} + x^{2} + y^{2} \\\\ & \\left(u, v, r, {\\varphi}\\right) & \\longmapsto & t = r^{2} + u^{2} + v^{2} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} Q_{4}:& \\mathbb{R}^{2+2} & \\longrightarrow & \\Bold{R} \\\\ & \\left(u, v, x, y\\right) & \\longmapsto & t = u^{2} + v^{2} + x^{2} + y^{2} \\\\ & \\left(u, v, r, {\\varphi}\\right) & \\longmapsto & t = r^{2} + u^{2} + v^{2} \\end{array}$" ], "text/plain": [ "Q_4: R22 → ℝ\n", " (u, v, x, y) ↦ t = u^2 + v^2 + x^2 + y^2\n", " (u, v, r, ph) ↦ t = r^2 + u^2 + v^2" ] }, "execution_count": 20, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Q_4 = R22.diff_map(manifolds.RealLine(), [x^2+y^2+u^2+v^2], name='Q_4', latex_name=r'Q_{4}')\n", "Q_4.display()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} Q_{5}:& \\mathbb{R}^{2+3} & \\longrightarrow & \\Bold{R} \\\\ & \\left(u, v, x, y, z\\right) & \\longmapsto & t = u^{2} + v^{2} + x^{2} + y^{2} + z^{2} \\\\ & \\left(u, v, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & t = r^{2} + u^{2} + v^{2} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} Q_{5}:& \\mathbb{R}^{2+3} & \\longrightarrow & \\Bold{R} \\\\ & \\left(u, v, x, y, z\\right) & \\longmapsto & t = u^{2} + v^{2} + x^{2} + y^{2} + z^{2} \\\\ & \\left(u, v, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & t = r^{2} + u^{2} + v^{2} \\end{array}$" ], "text/plain": [ "Q_5: R23 → ℝ\n", " (u, v, x, y, z) ↦ t = u^2 + v^2 + x^2 + y^2 + z^2\n", " (u, v, r, th, ph) ↦ t = r^2 + u^2 + v^2" ] }, "execution_count": 21, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Q_5 = R23.diff_map(manifolds.RealLine(), [x^2+y^2+z^2+u^2+v^2], name='Q_5', latex_name=r'Q_{5}')\n", "Q_5.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Espace\\-temps anti\\-de Sitter\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "L'espace\\-temps anti\\-de Sitter $\\mathrm{AdS}_{n+1}$ est usuellement défini comme une sous\\-variété de $\\mathbb{R}^{2+n}$. Plus précisément, $\\mathrm{AdS}_{n+1}$ est l'ensemble des points $x\\in\\mathbb{R}^{2+n}$ tels que $Q_{2+n}(x)=-\\ell^2$, où $\\ell$ est un paramètre qu'on peut supposer positif :\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "l = var('l', latex_name=r'\\ell')\n", "assume(l>0)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Dans tout les calculs et illustrations, on prendra $\\ell=1$. \n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On choisit plutôt de définir $\\mathrm{AdS}_{n+1}$ comme une variété lorentzienne abstraite difféomorphe à $\\mathbb{S}_1\\times\\mathbb{R}^n$ que l'on munit de coordonnées sphériques sur le facteur $\\mathbb{R}^n$. On a donc des coordonnées $(t,r,\\cdots,\\theta,\\varphi)$. On voit donc que $\\mathrm{AdS}_{n+1}\\approx\\mathbb{S}_1\\times\\mathbb{R}^n$ n'est pas simplement connexe, et on introduit aussi son revêtement universel $\\widetilde{\\mathrm{AdS}}_{n+1}\\approx\\mathbb{R}^{n+1}$.\n", "\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "AdS_3 = Manifold(3, 'AdS_3', latex_name=r'\\mathrm{AdS}_{2+1}', structure='Lorentzian',\n", " metric_latex_name=r'g_{\\mathrm{AdS}_{2+1}}')\n", "AdS_U_3 = Manifold(3, 'AdS_U_3', latex_name=r'\\widetilde{\\mathrm{AdS}}_{2+1}', structure='Lorentzian')" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "AdS_4 = Manifold(4, 'AdS_4', latex_name=r'\\mathrm{AdS}_{3+1}', structure='Lorentzian',\n", " metric_latex_name=r'g_{\\mathrm{AdS}_{3+1}}')\n", "AdS_U_4 = Manifold(4, 'AdS_U_4', latex_name=r'\\widetilde{\\mathrm{AdS}}_{3+1}', structure='Lorentzian')" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "X_AdS_3. = AdS_3.chart(r't:(-pi,pi) r:(0,+oo) ph:(0,2*pi):\\varphi:periodic')\n", "X_AdS_U_3. = AdS_U_3.chart(r't r:(0,+oo) ph:\\varphi')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "X_AdS_4. = AdS_4.chart(r't:(-pi,pi) r:(0,+oo) th:(0,pi):\\theta ph:(0,2*pi):\\varphi:periodic')\n", "X_AdS_U_4. = AdS_U_4.chart(r't r:(0,+oo) th:(0,pi):\\theta ph:\\varphi')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Le recouvrement universel est donné par la projection évidente $\\pi_{\\mathrm{AdS}_{n+1}}:\\widetilde{\\mathrm{AdS}}_{n+1}\\longrightarrow\\mathrm{AdS}_{n+1}$.\n", "\n" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\pi_{\\mathrm{AdS}_{2+1}}:& \\widetilde{\\mathrm{AdS}}_{2+1} & \\longrightarrow & \\mathrm{AdS}_{2+1} \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & \\left(t, r, {\\varphi}\\right) = \\left(t, r, {\\varphi}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\pi_{\\mathrm{AdS}_{2+1}}:& \\widetilde{\\mathrm{AdS}}_{2+1} & \\longrightarrow & \\mathrm{AdS}_{2+1} \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & \\left(t, r, {\\varphi}\\right) = \\left(t, r, {\\varphi}\\right) \\end{array}$" ], "text/plain": [ "pi_AdS_3: AdS_U_3 → AdS_3\n", " (t, r, ph) ↦ (t, r, ph) = (t, r, ph)" ] }, "execution_count": 27, "metadata": { }, "output_type": "execute_result" } ], "source": [ "pi_AdS_3 = AdS_U_3.diff_map(AdS_3, [t,r,ph], name='pi_AdS_3',\n", " latex_name=r'\\pi_{\\mathrm{AdS}_{2+1}}')\n", "pi_AdS_3.display()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\pi_{\\mathrm{AdS}_{3+1}}:& \\widetilde{\\mathrm{AdS}}_{3+1} & \\longrightarrow & \\mathrm{AdS}_{3+1} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(t, r, {\\theta}, {\\varphi}\\right) = \\left(t, r, {\\theta}, {\\varphi}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\pi_{\\mathrm{AdS}_{3+1}}:& \\widetilde{\\mathrm{AdS}}_{3+1} & \\longrightarrow & \\mathrm{AdS}_{3+1} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(t, r, {\\theta}, {\\varphi}\\right) = \\left(t, r, {\\theta}, {\\varphi}\\right) \\end{array}$" ], "text/plain": [ "pi_AdS_4: AdS_U_4 → AdS_4\n", " (t, r, th, ph) ↦ (t, r, th, ph) = (t, r, th, ph)" ] }, "execution_count": 28, "metadata": { }, "output_type": "execute_result" } ], "source": [ "pi_AdS_4 = AdS_U_4.diff_map(AdS_4, [t,r,th,ph], name='pi_AdS_4',\n", " latex_name=r'\\pi_{\\mathrm{AdS}_{3+1}}')\n", "pi_AdS_4.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "La variété abstraite $\\mathrm{AdS}_{n+1}$ se plonge dans $\\mathbb{R}^{2+n}$ selon :\n", "\n", "$$\n", "\\Phi_{\\mathrm{AdS}_{n+1}}:(t,r,\\cdots,\\varphi)\\mapsto (u,v,r,\\cdots,\\varphi)=(\\sqrt{\\ell^2+r^2}\\cos(\\frac{t}{\\ell}),\\sqrt{\\ell^2+r^2}\\sin(\\frac{t}{\\ell}),r,\\cdots,\\varphi)\n", "$$\n", "\n", "où $\\mathbb{R}^{2+n}\\approx\\mathbb{R}^2\\times\\mathbb{R}^n$ est muni de coordonnées sphériques sur $\\mathbb{R}^n$. \n", "\n" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathrm{AdS}_{2+1}}:& \\mathrm{AdS}_{2+1} & \\longrightarrow & \\mathbb{R}^{2+2} \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & \\left(u, v, x, y\\right) = \\left(\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right), \\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right), r \\cos\\left({\\varphi}\\right), r \\sin\\left({\\varphi}\\right)\\right) \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & \\left(u, v, r, {\\varphi}\\right) = \\left(\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right), \\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right), r, {\\varphi}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathrm{AdS}_{2+1}}:& \\mathrm{AdS}_{2+1} & \\longrightarrow & \\mathbb{R}^{2+2} \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & \\left(u, v, x, y\\right) = \\left(\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right), \\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right), r \\cos\\left({\\varphi}\\right), r \\sin\\left({\\varphi}\\right)\\right) \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & \\left(u, v, r, {\\varphi}\\right) = \\left(\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right), \\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right), r, {\\varphi}\\right) \\end{array}$" ], "text/plain": [ "Phi_AdS_3: AdS_3 → R22\n", " (t, r, ph) ↦ (u, v, x, y) = (sqrt(l^2 + r^2)*cos(t/l), sqrt(l^2 + r^2)*sin(t/l), r*cos(ph), r*sin(ph))\n", " (t, r, ph) ↦ (u, v, r, ph) = (sqrt(l^2 + r^2)*cos(t/l), sqrt(l^2 + r^2)*sin(t/l), r, ph)" ] }, "execution_count": 29, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Phi_AdS_3 = AdS_3.diff_map(R22, {(X_AdS_3, X_R22_Sph) :\n", " [sqrt(r^2+l^2)*cos(t/l), sqrt(r^2+l^2)*sin(t/l), r, ph]},\n", " name='Phi_AdS_3', latex_name=r'\\Phi_{\\mathrm{AdS}_{2+1}}')\n", "Phi_AdS_3.display()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathrm{AdS}_{3+1}}:& \\mathrm{AdS}_{3+1} & \\longrightarrow & \\mathbb{R}^{2+3} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(u, v, x, y, z\\right) = \\left(\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right), \\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right), r \\cos\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right), r \\sin\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right), r \\cos\\left({\\theta}\\right)\\right) \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(u, v, r, {\\theta}, {\\varphi}\\right) = \\left(\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right), \\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right), r, {\\theta}, {\\varphi}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathrm{AdS}_{3+1}}:& \\mathrm{AdS}_{3+1} & \\longrightarrow & \\mathbb{R}^{2+3} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(u, v, x, y, z\\right) = \\left(\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right), \\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right), r \\cos\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right), r \\sin\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right), r \\cos\\left({\\theta}\\right)\\right) \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(u, v, r, {\\theta}, {\\varphi}\\right) = \\left(\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right), \\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right), r, {\\theta}, {\\varphi}\\right) \\end{array}$" ], "text/plain": [ "Phi_AdS_4: AdS_4 → R23\n", " (t, r, th, ph) ↦ (u, v, x, y, z) = (sqrt(l^2 + r^2)*cos(t/l), sqrt(l^2 + r^2)*sin(t/l), r*cos(ph)*sin(th), r*sin(ph)*sin(th), r*cos(th))\n", " (t, r, th, ph) ↦ (u, v, r, th, ph) = (sqrt(l^2 + r^2)*cos(t/l), sqrt(l^2 + r^2)*sin(t/l), r, th, ph)" ] }, "execution_count": 30, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Phi_AdS_4 = AdS_4.diff_map(R23, {(X_AdS_4, X_R23_Sph) :\n", " [sqrt(r^2+l^2)*cos(t/l), sqrt(r^2+l^2)*sin(t/l), r,th, ph]},\n", " name='Phi_AdS_4', latex_name=r'\\Phi_{\\mathrm{AdS}_{3+1}}')\n", "Phi_AdS_4.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On vérifie que $\\Phi_{\\mathrm{AdS}_{n+1}}$ envoie $\\mathrm{AdS}_{n+1}$ dans l'ensemble des points vérifiant $Q_{2+n}(x)=-\\ell^2$.\n" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} & \\mathrm{AdS}_{2+1} & \\longrightarrow & \\Bold{R} \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & t = -{\\ell}^{2} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} & \\mathrm{AdS}_{2+1} & \\longrightarrow & \\Bold{R} \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & t = -{\\ell}^{2} \\end{array}$" ], "text/plain": [ "AdS_3 → ℝ\n", " (t, r, ph) ↦ t = -l^2" ] }, "execution_count": 31, "metadata": { }, "output_type": "execute_result" } ], "source": [ "(Q_22*Phi_AdS_3).display()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} & \\mathrm{AdS}_{3+1} & \\longrightarrow & \\Bold{R} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & t = -{\\ell}^{2} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} & \\mathrm{AdS}_{3+1} & \\longrightarrow & \\Bold{R} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & t = -{\\ell}^{2} \\end{array}$" ], "text/plain": [ "AdS_4 → ℝ\n", " (t, r, th, ph) ↦ t = -l^2" ] }, "execution_count": 32, "metadata": { }, "output_type": "execute_result" } ], "source": [ "(Q_23*Phi_AdS_4).display()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": "\n\n", "text/plain": [ "Graphics3d Object" ] }, "execution_count": 33, "metadata": { }, "output_type": "execute_result" } ], "source": [ "graph_AdS = X_AdS_3.plot(X_R22_Cart, mapping=Phi_AdS_3, ambient_coords=(x,u,v), fixed_coords={ph:0}, \n", " ranges={t:(-pi,pi), r:(0,2)}, number_values=9, \n", " color={t:'grey', r:'grey'}, thickness=1, parameters={l:1}, \n", " label_axes=False)\n", "\n", "graph_AdS += X_AdS_3.plot(X_R22_Cart, mapping=Phi_AdS_3, ambient_coords=(x,u,v), fixed_coords={ph:pi}, \n", " ranges={t:(-pi,pi), r:(0,2)}, number_values=9, \n", " color={t:'grey', r:'grey'}, thickness=1, parameters={l:1}, \n", " label_axes=False)\n", "\n", "Phi_AdS_3_u_0, Phi_AdS_3_u_pi = Phi_AdS_3.coord_functions()[0](t,r,0).subs({l:1}), Phi_AdS_3.coord_functions()[0](t,r,pi).subs({l:1})\n", "Phi_AdS_3_v_0, Phi_AdS_3_v_pi = Phi_AdS_3.coord_functions()[1](t,r,0).subs({l:1}), Phi_AdS_3.coord_functions()[1](t,r,pi).subs({l:1})\n", "Phi_AdS_3_x_0, Phi_AdS_3_x_pi = Phi_AdS_3.coord_functions()[2](t,r,0).subs({l:1}), Phi_AdS_3.coord_functions()[2](t,r,pi).subs({l:1})\n", "\n", "graph_hyperboloid = parametric_plot3d([Phi_AdS_3_x_0, Phi_AdS_3_u_0, Phi_AdS_3_v_0],\n", " (t,-pi,pi), (r,0,2), color=(.8,.8,0.9))\n", "graph_hyperboloid += parametric_plot3d([Phi_AdS_3_x_pi, Phi_AdS_3_u_pi, Phi_AdS_3_v_pi],\n", " (t,-pi,pi), (r,0,2), color=(.8,.8,0.9))\n", "\n", "graph_AdS += graph_hyperboloid\n", "\n", "show(graph_AdS, aspect_ratio=1, axes_labels=['x','u','v'])" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "---\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "La métrique $g_{\\mathrm{AdS}_{n+1}}$ de $\\mathrm{AdS}_{n+1}$ est définie par tiré\\-en\\-arrière de la métrique plate $\\eta_{2+n}$ de $\\mathbb{R}^{2+n}$ :\n", "\n", "\n", "$$\n", "g_{\\mathrm{AdS}_{n+1}}:=\\Phi_{\\mathrm{AdS}_{n+1}}^*\\eta_{2+n}\n", "$$\n", "\n" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g_{\\mathrm{AdS}_{2+1}} = \\left( -\\frac{{\\ell}^{2} + r^{2}}{{\\ell}^{2}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( \\frac{{\\ell}^{2}}{{\\ell}^{2} + r^{2}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + r^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle g_{\\mathrm{AdS}_{2+1}} = \\left( -\\frac{{\\ell}^{2} + r^{2}}{{\\ell}^{2}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( \\frac{{\\ell}^{2}}{{\\ell}^{2} + r^{2}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + r^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "g = -(l^2 + r^2)/l^2 dt⊗dt + l^2/(l^2 + r^2) dr⊗dr + r^2 dph⊗dph" ] }, "execution_count": 34, "metadata": { }, "output_type": "execute_result" } ], "source": [ "g_AdS_3 = AdS_3.metric()\n", "g_AdS_3.set(Phi_AdS_3.pullback(eta_22))\n", "g_AdS_3.display()" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g_{\\mathrm{AdS}_{3+1}} = \\left( -\\frac{{\\ell}^{2} + r^{2}}{{\\ell}^{2}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( \\frac{{\\ell}^{2}}{{\\ell}^{2} + r^{2}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + r^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + r^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle g_{\\mathrm{AdS}_{3+1}} = \\left( -\\frac{{\\ell}^{2} + r^{2}}{{\\ell}^{2}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( \\frac{{\\ell}^{2}}{{\\ell}^{2} + r^{2}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + r^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + r^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "g = -(l^2 + r^2)/l^2 dt⊗dt + l^2/(l^2 + r^2) dr⊗dr + r^2 dth⊗dth + r^2*sin(th)^2 dph⊗dph" ] }, "execution_count": 35, "metadata": { }, "output_type": "execute_result" } ], "source": [ "g_AdS_4 = AdS_4.metric()\n", "g_AdS_4.set(Phi_AdS_4.pullback(eta_23))\n", "g_AdS_4.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Modèles de Beltrami\\-Klein\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "#### Définitions\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Pour l'espace hyperbolique $\\mathbb{H}_n$, on appelle **modèle de Beltrami\\-Klein**, ou **modèle projectif**, la représentation de $\\mathbb{H}_n$ par projection sur une boule $\\mathbb{B}_n$. On donne une représentation similaire de $\\mathrm{AdS}_{n+1}$ par projection sur la sphère unité $\\mathbb{S}_{n+1}$ de $\\mathbb{R}^{n+2}$. \n", "\n", "Pour tout $x=(u,v,x_1,\\cdots, x_{n})\\in\\mathrm{AdS}_{n+1}$, on note $p(x)$ la projection de $x$ sur $\\mathbb{S}_{n+1}$, i.e. :\n", "\n", "$$\n", "p(u,v,x_1,\\cdots,x_n)=\\frac{(u,v,x_1,\\cdots,x_n)}{u^2+v^2+x_1^2+\\cdots+x_n^2}.\n", "$$\n", "\n", "Cette application fournit un plongement de $\\mathrm{AdS}_{n+1}$ sur l'ouvert $\\mathbb{AdS}_{n+1}$ de $\\mathbb{S}_{n+1}$ des points vérifiant $x_1^2+\\cdots+x_n^2-u^2-v^2<0$. \n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On munit $\\mathbb{S}_{n+1}$ de coordonnées issues de la projection stéréographique selon le vecteur $e_n$. Cela revient à munir $\\mathbb{S}_{n+1}$ de coordonnées $(U,V,X^1,\\cdots,X^{n-1})$, et de définir une injection dans $\\mathbb{R}^{2+n}$ par :\n", "\n", "$$\n", "\\Phi_{\\mathbb{S}_{n+1}}:(U,V,X^1,\\cdots,X^{n-1})\\mapsto(\\frac{2U}{R^2+1},\\frac{2V}{R^2+1}, \\frac{2X^1}{R^2+1},\\cdots,\\frac{2X^{n-1}}{R^2+1},\\frac{R^2-1}{R^2+1})\n", "$$\n", "\n", "où $R^2:=U^2+V^2+(X^1)^2+\\cdots+(X^{n-1})^2$.\n" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathbb{S}_3}:& \\mathbb{S}_{3} & \\longrightarrow & \\mathbb{R}^{2+2} \\\\ & \\left(U, V, X\\right) & \\longmapsto & \\left(u, v, x, y\\right) = \\left(\\frac{2 \\, U}{U^{2} + V^{2} + X^{2} + 1}, \\frac{2 \\, V}{U^{2} + V^{2} + X^{2} + 1}, \\frac{2 \\, X}{U^{2} + V^{2} + X^{2} + 1}, \\frac{U^{2} + V^{2} + X^{2} - 1}{U^{2} + V^{2} + X^{2} + 1}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathbb{S}_3}:& \\mathbb{S}_{3} & \\longrightarrow & \\mathbb{R}^{2+2} \\\\ & \\left(U, V, X\\right) & \\longmapsto & \\left(u, v, x, y\\right) = \\left(\\frac{2 \\, U}{U^{2} + V^{2} + X^{2} + 1}, \\frac{2 \\, V}{U^{2} + V^{2} + X^{2} + 1}, \\frac{2 \\, X}{U^{2} + V^{2} + X^{2} + 1}, \\frac{U^{2} + V^{2} + X^{2} - 1}{U^{2} + V^{2} + X^{2} + 1}\\right) \\end{array}$" ], "text/plain": [ "Phi_S_3: S_3 → R22\n", " (U, V, X) ↦ (u, v, x, y) = (2*U/(U^2 + V^2 + X^2 + 1), 2*V/(U^2 + V^2 + X^2 + 1), 2*X/(U^2 + V^2 + X^2 + 1), (U^2 + V^2 + X^2 - 1)/(U^2 + V^2 + X^2 + 1))" ] }, "execution_count": 36, "metadata": { }, "output_type": "execute_result" } ], "source": [ "S_3 = Manifold(3, 'S_3', latex_name=r'\\mathbb{S}_{3}', structure='Lorentzian',\n", " metric_latex_name=r'g_{\\mathbb{S}_{3}}')\n", "\n", "X_S_3. = S_3.chart()\n", "\n", "Phi_S_3 = S_3.diff_map(R22, [2*U/(1+U^2+V^2+X^2), 2*V/(1+U^2+V^2+X^2), 2*X/(1+U^2+V^2+X^2),\n", " (-1+U^2+V^2+X^2)/(1+U^2+V^2+X^2)],\n", " name='Phi_S_3', latex_name=r'\\Phi_{\\mathbb{S}_3}')\n", "Phi_S_3.display()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathbb{S}_4}:& \\mathbb{S}_{4} & \\longrightarrow & \\mathbb{R}^{2+3} \\\\ & \\left(U, V, X, Y\\right) & \\longmapsto & \\left(u, v, x, y, z\\right) = \\left(\\frac{2 \\, U}{U^{2} + V^{2} + X^{2} + Y^{2} + 1}, \\frac{2 \\, V}{U^{2} + V^{2} + X^{2} + Y^{2} + 1}, \\frac{2 \\, X}{U^{2} + V^{2} + X^{2} + Y^{2} + 1}, \\frac{2 \\, Y}{U^{2} + V^{2} + X^{2} + Y^{2} + 1}, \\frac{U^{2} + V^{2} + X^{2} + Y^{2} - 1}{U^{2} + V^{2} + X^{2} + Y^{2} + 1}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathbb{S}_4}:& \\mathbb{S}_{4} & \\longrightarrow & \\mathbb{R}^{2+3} \\\\ & \\left(U, V, X, Y\\right) & \\longmapsto & \\left(u, v, x, y, z\\right) = \\left(\\frac{2 \\, U}{U^{2} + V^{2} + X^{2} + Y^{2} + 1}, \\frac{2 \\, V}{U^{2} + V^{2} + X^{2} + Y^{2} + 1}, \\frac{2 \\, X}{U^{2} + V^{2} + X^{2} + Y^{2} + 1}, \\frac{2 \\, Y}{U^{2} + V^{2} + X^{2} + Y^{2} + 1}, \\frac{U^{2} + V^{2} + X^{2} + Y^{2} - 1}{U^{2} + V^{2} + X^{2} + Y^{2} + 1}\\right) \\end{array}$" ], "text/plain": [ "Phi_S_4: S_4 → R23\n", " (U, V, X, Y) ↦ (u, v, x, y, z) = (2*U/(U^2 + V^2 + X^2 + Y^2 + 1), 2*V/(U^2 + V^2 + X^2 + Y^2 + 1), 2*X/(U^2 + V^2 + X^2 + Y^2 + 1), 2*Y/(U^2 + V^2 + X^2 + Y^2 + 1), (U^2 + V^2 + X^2 + Y^2 - 1)/(U^2 + V^2 + X^2 + Y^2 + 1))" ] }, "execution_count": 37, "metadata": { }, "output_type": "execute_result" } ], "source": [ "S_4 = Manifold(4, 'S_4', latex_name=r'\\mathbb{S}_{4}', structure='Lorentzian',\n", " metric_latex_name=r'g_{\\mathbb{S}_{4}}')\n", "\n", "X_S_4. = S_4.chart()\n", "\n", "Phi_S_4 = S_4.diff_map(R23, [2*U/(1+U^2+V^2+X^2+Y^2), 2*V/(1+U^2+V^2+X^2+Y^2), 2*X/(1+U^2+V^2+X^2+Y^2),\n", " 2*Y/(1+U^2+V^2+X^2+Y^2), (-1+U^2+V^2+X^2+Y^2)/(1+U^2+V^2+X^2+Y^2)],\n", " name='Phi_S_4', latex_name=r'\\Phi_{\\mathbb{S}_4}')\n", "Phi_S_4.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Ce plongement dans $\\mathbb{R}^{2+n}$ admet un inverse à gauche, dont l'expression est donnée par la formule usuelle de la projection stéréographique :\n", "\n", "\n", "$$\n", "\\Phi_{\\mathrm{S}_{n+1}}^{-1}:(u,v,x^1,\\cdots,x^n)\\mapsto(\\frac{u}{1-x^n},\\frac{v}{1-x^n},\\frac{x^1}{1-x^n},\\cdots,\\frac{x^{n-1}}{1-x^n})\n", "$$\n", "\n" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathbb{S}_3}^{-1}:& \\mathbb{R}^{2+2} & \\longrightarrow & \\mathbb{S}_{3} \\\\ & \\left(u, v, x, y\\right) & \\longmapsto & \\left(U, V, X\\right) = \\left(-\\frac{u}{y - 1}, -\\frac{v}{y - 1}, -\\frac{x}{y - 1}\\right) \\\\ & \\left(u, v, r, {\\varphi}\\right) & \\longmapsto & \\left(U, V, X\\right) = \\left(-\\frac{u}{r \\sin\\left({\\varphi}\\right) - 1}, -\\frac{v}{r \\sin\\left({\\varphi}\\right) - 1}, -\\frac{r \\cos\\left({\\varphi}\\right)}{r \\sin\\left({\\varphi}\\right) - 1}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathbb{S}_3}^{-1}:& \\mathbb{R}^{2+2} & \\longrightarrow & \\mathbb{S}_{3} \\\\ & \\left(u, v, x, y\\right) & \\longmapsto & \\left(U, V, X\\right) = \\left(-\\frac{u}{y - 1}, -\\frac{v}{y - 1}, -\\frac{x}{y - 1}\\right) \\\\ & \\left(u, v, r, {\\varphi}\\right) & \\longmapsto & \\left(U, V, X\\right) = \\left(-\\frac{u}{r \\sin\\left({\\varphi}\\right) - 1}, -\\frac{v}{r \\sin\\left({\\varphi}\\right) - 1}, -\\frac{r \\cos\\left({\\varphi}\\right)}{r \\sin\\left({\\varphi}\\right) - 1}\\right) \\end{array}$" ], "text/plain": [ "Phi_S_3_inv: R22 → S_3\n", " (u, v, x, y) ↦ (U, V, X) = (-u/(y - 1), -v/(y - 1), -x/(y - 1))\n", " (u, v, r, ph) ↦ (U, V, X) = (-u/(r*sin(ph) - 1), -v/(r*sin(ph) - 1), -r*cos(ph)/(r*sin(ph) - 1))" ] }, "execution_count": 38, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Phi_S_3_inv = R22.diff_map(S_3, [u/(1-y), v/(1-y), x/(1-y)], name='Phi_S_3_inv',\n", " latex_name=r'\\Phi_{\\mathbb{S}_3}^{-1}')\n", "Phi_S_3_inv.display()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathbb{S}_4}^{-1}:& \\mathbb{R}^{2+3} & \\longrightarrow & \\mathbb{S}_{4} \\\\ & \\left(u, v, x, y, z\\right) & \\longmapsto & \\left(U, V, X, Y\\right) = \\left(-\\frac{u}{z - 1}, -\\frac{v}{z - 1}, -\\frac{x}{z - 1}, -\\frac{y}{z - 1}\\right) \\\\ & \\left(u, v, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(U, V, X, Y\\right) = \\left(-\\frac{u}{r \\cos\\left({\\theta}\\right) - 1}, -\\frac{v}{r \\cos\\left({\\theta}\\right) - 1}, -\\frac{r \\cos\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right)}{r \\cos\\left({\\theta}\\right) - 1}, -\\frac{r \\sin\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right)}{r \\cos\\left({\\theta}\\right) - 1}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\Phi_{\\mathbb{S}_4}^{-1}:& \\mathbb{R}^{2+3} & \\longrightarrow & \\mathbb{S}_{4} \\\\ & \\left(u, v, x, y, z\\right) & \\longmapsto & \\left(U, V, X, Y\\right) = \\left(-\\frac{u}{z - 1}, -\\frac{v}{z - 1}, -\\frac{x}{z - 1}, -\\frac{y}{z - 1}\\right) \\\\ & \\left(u, v, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(U, V, X, Y\\right) = \\left(-\\frac{u}{r \\cos\\left({\\theta}\\right) - 1}, -\\frac{v}{r \\cos\\left({\\theta}\\right) - 1}, -\\frac{r \\cos\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right)}{r \\cos\\left({\\theta}\\right) - 1}, -\\frac{r \\sin\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right)}{r \\cos\\left({\\theta}\\right) - 1}\\right) \\end{array}$" ], "text/plain": [ "Phi_S_4_inv: R23 → S_4\n", " (u, v, x, y, z) ↦ (U, V, X, Y) = (-u/(z - 1), -v/(z - 1), -x/(z - 1), -y/(z - 1))\n", " (u, v, r, th, ph) ↦ (U, V, X, Y) = (-u/(r*cos(th) - 1), -v/(r*cos(th) - 1), -r*cos(ph)*sin(th)/(r*cos(th) - 1), -r*sin(ph)*sin(th)/(r*cos(th) - 1))" ] }, "execution_count": 39, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Phi_S_4_inv = R23.diff_map(S_4, [u/(1-z), v/(1-z), x/(1-z), y/(1-z)], name='Phi_S_4_inv',\n", " latex_name=r'\\Phi_{\\mathbb{S}_4}^{-1}')\n", "Phi_S_4_inv.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On vérifie que ces fonctions fournissent bien des inverses à gauche :\n" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} & \\mathbb{S}_{3} & \\longrightarrow & \\mathbb{S}_{3} \\\\ & \\left(U, V, X\\right) & \\longmapsto & \\left(U, V, X\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} & \\mathbb{S}_{3} & \\longrightarrow & \\mathbb{S}_{3} \\\\ & \\left(U, V, X\\right) & \\longmapsto & \\left(U, V, X\\right) \\end{array}$" ], "text/plain": [ "S_3 → S_3\n", " (U, V, X) ↦ (U, V, X)" ] }, "execution_count": 40, "metadata": { }, "output_type": "execute_result" } ], "source": [ "(Phi_S_3_inv*Phi_S_3).display()" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 41, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Phi_S_3_inv*Phi_S_3 == S_3.identity_map()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} & \\mathbb{S}_{4} & \\longrightarrow & \\mathbb{S}_{4} \\\\ & \\left(U, V, X, Y\\right) & \\longmapsto & \\left(U, V, X, Y\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} & \\mathbb{S}_{4} & \\longrightarrow & \\mathbb{S}_{4} \\\\ & \\left(U, V, X, Y\\right) & \\longmapsto & \\left(U, V, X, Y\\right) \\end{array}$" ], "text/plain": [ "S_4 → S_4\n", " (U, V, X, Y) ↦ (U, V, X, Y)" ] }, "execution_count": 42, "metadata": { }, "output_type": "execute_result" } ], "source": [ "(Phi_S_4_inv*Phi_S_4).display()" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 43, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Phi_S_4_inv*Phi_S_4 == S_4.identity_map()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "---\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Avec ce plongement de la sphère, la condition $(x^1)^2+\\cdots(x^n)^2-u^2-v^2<0$ qui définit $\\mathbb{AdS}_{n+1}\\subset\\mathbb{S}_{n+1}$ s'écrit :\n", "\n", "$$\n", "4\\sum\\limits_{i=1}^{n-1}(X^i)^2+(U^2+V^2+\\sum\\limits_{i=1}^{n-1}(X^i)^2-1)^2-4U^2-4V^2<0,\n", "$$\n", "\n", "ou encore :\n", "\n", "$$\n", "(1+U^2+V^2+\\sum\\limits_{i=1}^{n-1}(X^i)^2)^2<8(U^2+V^2).\n", "$$\n", "\n" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "AdS_Klein_3 = S_3.open_subset(name='AdS_Klein_3', latex_name=r'\\mathbb{AdS}_{2+1}}',\n", " coord_def={X_S_3 : (1+U^2+V^2+X^2)^2<8*(U^2+V^2)})" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "AdS_Klein_4 = S_4.open_subset(name='AdS_Klein_4', latex_name=r'\\mathbb{AdS}_{3+1}}',\n", " coord_def={X_S_4 : (1+U^2+V^2+X^2+Y^2)^2<8*(U^2+V^2)})" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On peut maintenant définir un difféomorphisme $p_{n+1}$ entre $\\mathrm{AdS}_{n+1}$ et $\\mathbb{AdS}_{n+1}$, en projetant sur $\\mathbb{S}_{n+1}$ l'application de normalisation $\\tilde{p}:\\mathrm{AdS}_{n+1}\\longrightarrow\\mathbb{R}^{2+n}$ . Plus explicitement, $p_{n+1}=\\Phi_{\\mathbb{S}_{n+1}}\\circ\\tilde{p}_{n+1}$ où $\\tilde{p}_{n+1}$ est donnée par :\n", "\n", "\n", "$$\n", "\\tilde{p}_{n+1}(u,v,x_1,\\cdots,x_n)=\\frac{(u,v,x_1,\\cdots,x_n)}{u^2+v^2+x_1^2+\\cdots+x_n^2}.\n", "$$\n", "\n" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} & \\mathrm{AdS}_{2+1} & \\longrightarrow & \\mathbb{R}^{2+2} \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & \\left(u, v, x, y\\right) = \\left(\\frac{\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{\\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{r \\cos\\left({\\varphi}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{r \\sin\\left({\\varphi}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} & \\mathrm{AdS}_{2+1} & \\longrightarrow & \\mathbb{R}^{2+2} \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & \\left(u, v, x, y\\right) = \\left(\\frac{\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{\\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{r \\cos\\left({\\varphi}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{r \\sin\\left({\\varphi}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}\\right) \\end{array}$" ], "text/plain": [ "AdS_3 → R22\n", " (t, r, ph) ↦ (u, v, x, y) = (sqrt(l^2 + r^2)*cos(t/l)/sqrt(l^2 + 2*r^2), sqrt(l^2 + r^2)*sin(t/l)/sqrt(l^2 + 2*r^2), r*cos(ph)/sqrt(l^2 + 2*r^2), r*sin(ph)/sqrt(l^2 + 2*r^2))" ] }, "execution_count": 46, "metadata": { }, "output_type": "execute_result" } ], "source": [ "p_tilde_3 = AdS_3.diff_map(R22,{(X_AdS_3, X_R22_Cart) : \n", " [sqrt(r^2+l^2)*cos(t/l)/sqrt(l^2+2*r^2),\n", " sqrt(r^2+l^2)*sin(t/l)/sqrt(l^2+2*r^2),\n", " r*cos(ph)/sqrt(l^2+2*r^2),\n", " r*sin(ph)/sqrt(l^2+2*r^2)]})\n", "\n", "p_tilde_3.display()" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} & \\mathrm{AdS}_{3+1} & \\longrightarrow & \\mathbb{R}^{2+3} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(u, v, x, y, z\\right) = \\left(\\frac{\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{\\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{r \\cos\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{r \\sin\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{r \\cos\\left({\\theta}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} & \\mathrm{AdS}_{3+1} & \\longrightarrow & \\mathbb{R}^{2+3} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(u, v, x, y, z\\right) = \\left(\\frac{\\sqrt{{\\ell}^{2} + r^{2}} \\cos\\left(\\frac{t}{{\\ell}}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{\\sqrt{{\\ell}^{2} + r^{2}} \\sin\\left(\\frac{t}{{\\ell}}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{r \\cos\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{r \\sin\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}, \\frac{r \\cos\\left({\\theta}\\right)}{\\sqrt{{\\ell}^{2} + 2 \\, r^{2}}}\\right) \\end{array}$" ], "text/plain": [ "AdS_4 → R23\n", " (t, r, th, ph) ↦ (u, v, x, y, z) = (sqrt(l^2 + r^2)*cos(t/l)/sqrt(l^2 + 2*r^2), sqrt(l^2 + r^2)*sin(t/l)/sqrt(l^2 + 2*r^2), r*cos(ph)*sin(th)/sqrt(l^2 + 2*r^2), r*sin(ph)*sin(th)/sqrt(l^2 + 2*r^2), r*cos(th)/sqrt(l^2 + 2*r^2))" ] }, "execution_count": 47, "metadata": { }, "output_type": "execute_result" } ], "source": [ "p_tilde_4 = AdS_4.diff_map(R23,{(X_AdS_4, X_R23_Cart) :\n", " [sqrt(r^2+l^2)*cos(t/l)/sqrt(l^2+2*r^2),\n", " sqrt(r^2+l^2)*sin(t/l)/sqrt(l^2+2*r^2),\n", " r*cos(ph)*sin(th)/sqrt(l^2+2*r^2),\n", " r*sin(ph)*sin(th)/sqrt(l^2+2*r^2),\n", " r*cos(th)/sqrt(l^2+2*r^2)]})\n", "\n", "p_tilde_4.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On vérifie que ces applications envoient bien $\\mathrm{AdS}_{n+1}$ sur $\\mathbb{S}_{n+1}$ :\n" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} & \\mathrm{AdS}_{2+1} & \\longrightarrow & \\Bold{R} \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & t = 1 \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} & \\mathrm{AdS}_{2+1} & \\longrightarrow & \\Bold{R} \\\\ & \\left(t, r, {\\varphi}\\right) & \\longmapsto & t = 1 \\end{array}$" ], "text/plain": [ "AdS_3 → ℝ\n", " (t, r, ph) ↦ t = 1" ] }, "execution_count": 48, "metadata": { }, "output_type": "execute_result" } ], "source": [ "(Q_4*p_tilde_3).display()" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} & \\mathrm{AdS}_{3+1} & \\longrightarrow & \\Bold{R} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & t = 1 \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} & \\mathrm{AdS}_{3+1} & \\longrightarrow & \\Bold{R} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & t = 1 \\end{array}$" ], "text/plain": [ "AdS_4 → ℝ\n", " (t, r, th, ph) ↦ t = 1" ] }, "execution_count": 49, "metadata": { }, "output_type": "execute_result" } ], "source": [ "(Q_5*p_tilde_4).display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Cela autorise la définition $p_{n+1}=\\Phi_{\\mathbb{S}_{n+1}}\\circ\\tilde{p}_{n+1}$.\n" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "p_3 = Phi_S_3_inv*p_tilde_3" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "p_4 = Phi_S_4_inv*p_tilde_4" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "#### Représentation graphique\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On peut représenter graphiquement une section $x=0$ du plongement de $\\mathrm{AdS}_{2+1}$ et $\\mathbb{AdS}_{2+1}$ dans $\\mathbb{R}^{2+2}$. \n" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "graph_AdS_Klein = graph_AdS\n", "\n", "graph_sphere = X_S_3.plot(X_R22_Cart, mapping=Phi_S_3, ambient_coords=(y,u,v),\n", " fixed_coords={X:0}, ranges={U:(-5,5), V:(-5,5)},\n", " number_values=30, color={U:'grey', V:'grey'}, thickness=1,\n", " label_axes=False)\n", "\n", "Phi_S_3_u_0 = Phi_S_3.coord_functions()[0](U,V,0)\n", "Phi_S_3_v_0 = Phi_S_3.coord_functions()[1](U,V,0)\n", "Phi_S_3_y_0 = Phi_S_3.coord_functions()[3](U,V,0)\n", "\n", "graph_sphere += parametric_plot3d([Phi_S_3_y_0, Phi_S_3_u_0, Phi_S_3_v_0],\n", " (U,-5,5), (V,-5,5), color=(.5,.5,0.9))\n", "\n", "graph_AdS_Klein += graph_sphere" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": "\n\n", "text/plain": [ "Graphics3d Object" ] }, "execution_count": 53, "metadata": { }, "output_type": "execute_result" } ], "source": [ "graph_image_Klein = X_AdS_3.plot(X_R22_Cart, mapping=p_tilde_3, ambient_coords=(y,u,v),\n", " fixed_coords={ph:pi/2}, ranges={t:(0,2*pi), r:(0,10)},\n", " number_values=10, color={t:'red', r:'red'}, thickness=1,\n", " parameters={l:1}, label_axes=False)\n", "\n", "graph_image_Klein += X_AdS_3.plot(X_R22_Cart, mapping=p_tilde_3, ambient_coords=(y,u,v),\n", " fixed_coords={ph:-pi/2}, ranges={t:(0,2*pi), r:(0,10)},\n", " number_values=10, color={t:'red', r:'red'}, thickness=1,\n", " parameters={l:1}, label_axes=False)\n", "\n", "p_tilde_3_u_p = p_tilde_3.coord_functions()[0](t,r,pi/2).subs({l:1})\n", "p_tilde_3_v_p = p_tilde_3.coord_functions()[1](t,r,pi/2).subs({l:1})\n", "p_tilde_3_y_p = p_tilde_3.coord_functions()[3](t,r,pi/2).subs({l:1})\n", "\n", "p_tilde_3_u_m = p_tilde_3.coord_functions()[0](t,r,-pi/2).subs({l:1})\n", "p_tilde_3_v_m = p_tilde_3.coord_functions()[1](t,r,-pi/2).subs({l:1})\n", "p_tilde_3_y_m = p_tilde_3.coord_functions()[3](t,r,-pi/2).subs({l:1})\n", "\n", "graph_image_Klein += parametric_plot3d([p_tilde_3_y_p, p_tilde_3_u_p, p_tilde_3_v_p],\n", " (t,-pi,pi), (r,0,10), plot_points=200, color=(.9,.5,0.5))\n", "graph_image_Klein += parametric_plot3d([p_tilde_3_y_m, p_tilde_3_u_m, p_tilde_3_v_m],\n", " (t,-pi,pi), (r,0,10), plot_points=200, color=(.9,.5,0.5))\n", "\n", "graph_AdS_Klein += graph_image_Klein\n", "show(graph_AdS_Klein, aspect_ratio=1, axes_labels=['y','u','v'])" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] } ], "metadata": { "kernelspec": { "argv": [ "sage-10.1", "--python", "-m", "sage.repl.ipython_kernel", "--matplotlib=inline", "-f", "{connection_file}" ], "display_name": "SageMath 10.1", "env": { }, "language": "sagemath", "metadata": { "cocalc": { "description": "Open-source mathematical software system", "priority": 10, "url": "https://www.sagemath.org/" } }, "name": "sage-10.1", "resource_dir": "/ext/jupyter/kernels/sage-10.1" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.1" } }, "nbformat": 4, "nbformat_minor": 4 }