{ "cells": [ { "cell_type": "markdown", "id": "ea913947-e690-4858-a678-4d1068f26b64", "metadata": {}, "source": [ "# Circle $\\mathbb{S}^1$\n", "\n", "This notebook demonstrates some differential geometry capabilities of SageMath on the example of the 1-dimensional sphere, i.e. the circle. The corresponding tools have been developed within\n", "the [SageManifolds](https://sagemanifolds.obspm.fr) project." ] }, { "cell_type": "code", "execution_count": 1, "id": "bec718cd-0b70-4ea7-93b4-eee0876633bf", "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "code", "execution_count": 2, "id": "bedf2ea8-4e36-4e5c-93cd-1669ed66a9de", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-dimensional differentiable manifold S^1\n" ] } ], "source": [ "S1 = Manifold(1, 'S^1', latex_name=r'\\mathbb{S}^1')\n", "print(S1)" ] }, { "cell_type": "code", "execution_count": 3, "id": "5798bd44-1960-41c8-ac74-3566474dc70a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathbb{S}^1\\)" ], "text/latex": [ "$\\displaystyle \\mathbb{S}^1$" ], "text/plain": [ "1-dimensional differentiable manifold S^1" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S1" ] }, { "cell_type": "markdown", "id": "4551a011-c4a4-4027-85de-b06a18ca002a", "metadata": {}, "source": [ "## 2 charts on $\\mathbb{S}^1$" ] }, { "cell_type": "code", "execution_count": 4, "id": "2ea04d4c-9d4f-49a9-864b-af6853030556", "metadata": {}, "outputs": [], "source": [ "A = S1.open_subset('A')\n", "B = S1.open_subset('B')" ] }, { "cell_type": "code", "execution_count": 5, "id": "d3ecd52d-3c38-4c41-a29b-6d26352c577e", "metadata": {}, "outputs": [], "source": [ "S1.declare_union(A, B)" ] }, { "cell_type": "code", "execution_count": 6, "id": "a69ae8d9-f94a-4232-a50d-31960cc69cb0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(A,({\\varphi})\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(A,({\\varphi})\\right)$" ], "text/plain": [ "Chart (A, (ph,))" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CA. = A.chart(r\"ph:(0,2*pi):\\varphi\")\n", "CA" ] }, { "cell_type": "code", "execution_count": 7, "id": "448897c7-f41c-4753-b52d-ddcd6b139912", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle {\\varphi} :\\ \\left( 0 , 2 \\, \\pi \\right)\\)" ], "text/latex": [ "$\\displaystyle {\\varphi} :\\ \\left( 0 , 2 \\, \\pi \\right)$" ], "text/plain": [ "ph: (0, 2*pi)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CA.coord_range()" ] }, { "cell_type": "code", "execution_count": 8, "id": "b9184c2e-14bc-4ceb-92f0-5ae7a0529dcb", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(B,({\\psi})\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(B,({\\psi})\\right)$" ], "text/plain": [ "Chart (B, (ps,))" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CB. = B.chart(r\"ps:(0,2*pi):\\psi\")\n", "CB" ] }, { "cell_type": "code", "execution_count": 9, "id": "f8bf7cc9-55ca-4fd1-8d59-e68a38604e2e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{lcl} {\\psi} & = & -\\pi {\\left(2 \\, H\\left(-\\pi + {\\varphi}\\right) - 1\\right)} + {\\varphi} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{lcl} {\\psi} & = & -\\pi {\\left(2 \\, H\\left(-\\pi + {\\varphi}\\right) - 1\\right)} + {\\varphi} \\end{array}$" ], "text/plain": [ "ps = -pi*(2*heaviside(-pi + ph) - 1) + ph" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CA_to_CB = CA.transition_map(CB, (ph + pi*(1 - 2*heaviside(ph - pi)),),\n", " intersection_name='W',\n", " restrictions1= ph!=pi, \n", " restrictions2= ps!=pi)\n", "CA_to_CB.display()" ] }, { "cell_type": "code", "execution_count": 10, "id": "ef55a6a6-04eb-402b-a2a2-dd5f98859e07", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\pi - 2 \\, \\pi H\\left(-\\pi + {\\varphi}\\right) + {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle \\pi - 2 \\, \\pi H\\left(-\\pi + {\\varphi}\\right) + {\\varphi}$" ], "text/plain": [ "pi - 2*pi*heaviside(-pi + ph) + ph" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CA_to_CB(ph)[0]" ] }, { "cell_type": "code", "execution_count": 11, "id": "ed6b27ef-7cbf-4265-ab60-9788c4bc444d", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 2 graphics primitives" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(CA_to_CB(ph)[0], (ph, 0, pi), \n", " axes_labels=[r'$\\varphi$', r'$\\psi$'], \n", " ticks=[pi/2, pi/2], tick_formatter=[pi, pi], fontsize=14,\n", " frame=True, gridlines=True, axes=False, aspect_ratio=1) \\\n", "+ plot(CA_to_CB(ph)[0], (ph, pi, 2*pi))" ] }, { "cell_type": "code", "execution_count": 12, "id": "654fe6d5-9a1f-40e3-be24-417ebe09c6a2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Check of the inverse coordinate transformation:\n", " ph == 2*pi - 2*pi*heaviside(-pi + ph) - 2*pi*heaviside(-2*pi*heaviside(-pi + ph) + ph) + ph **failed**\n", " ps == 2*pi - 2*pi*heaviside(-pi + ps) - 2*pi*heaviside(-2*pi*heaviside(-pi + ps) + ps) + ps **failed**\n", "NB: a failed report can reflect a mere lack of simplification.\n" ] } ], "source": [ "CA_to_CB.set_inverse(ps + pi*(1 - 2*heaviside(ps - pi)))" ] }, { "cell_type": "code", "execution_count": 13, "id": "8b0c89b5-e134-46ac-8d73-e694828a816b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left[\\left(A,({\\varphi})\\right), \\left(B,({\\psi})\\right), \\left(W,({\\varphi})\\right), \\left(W,({\\psi})\\right)\\right]\\)" ], "text/latex": [ "$\\displaystyle \\left[\\left(A,({\\varphi})\\right), \\left(B,({\\psi})\\right), \\left(W,({\\varphi})\\right), \\left(W,({\\psi})\\right)\\right]$" ], "text/plain": [ "[Chart (A, (ph,)), Chart (B, (ps,)), Chart (W, (ph,)), Chart (W, (ps,))]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S1.atlas()" ] }, { "cell_type": "code", "execution_count": 14, "id": "e69cdb1e-213a-444a-b285-5806fe0ea81a", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(2*pi - 2*pi*heaviside(-pi + ph) - 2*pi*heaviside(-2*pi*heaviside(-pi + ph) + ph) + ph, \n", " (ph, 0, 2*pi))" ] }, { "cell_type": "markdown", "id": "548445d7-fb5c-4892-9689-63b33df63134", "metadata": {}, "source": [ "## Embedding of $\\mathbb{S}^1$ into $\\mathbb{R}^2$" ] }, { "cell_type": "code", "execution_count": 15, "id": "171f5e68-b3ba-4c4a-8d17-2cb4f9c6c1d3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\mathbb{R}^2,(X, Y)\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\mathbb{R}^2,(X, Y)\\right)$" ], "text/plain": [ "Chart (R^2, (X, Y))" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R2. = EuclideanSpace(name='R^2', latex_name=r'\\mathbb{R}^2', metric_name='h')\n", "cartesian = R2.cartesian_coordinates()\n", "cartesian" ] }, { "cell_type": "code", "execution_count": 16, "id": "8fbdc52c-fd04-4a88-8fb3-176f1e8eca17", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\Phi:& \\mathbb{S}^1 & \\longrightarrow & \\mathbb{R}^2 \\\\ \\mbox{on}\\ A : & {\\varphi} & \\longmapsto & \\left(X, Y\\right) = \\left(\\cos\\left({\\varphi}\\right), \\sin\\left({\\varphi}\\right)\\right) \\\\ \\mbox{on}\\ B : & {\\psi} & \\longmapsto & \\left(X, Y\\right) = \\left(-\\cos\\left({\\psi}\\right), -\\sin\\left({\\psi}\\right)\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\Phi:& \\mathbb{S}^1 & \\longrightarrow & \\mathbb{R}^2 \\\\ \\mbox{on}\\ A : & {\\varphi} & \\longmapsto & \\left(X, Y\\right) = \\left(\\cos\\left({\\varphi}\\right), \\sin\\left({\\varphi}\\right)\\right) \\\\ \\mbox{on}\\ B : & {\\psi} & \\longmapsto & \\left(X, Y\\right) = \\left(-\\cos\\left({\\psi}\\right), -\\sin\\left({\\psi}\\right)\\right) \\end{array}$" ], "text/plain": [ "Phi: S^1 → R^2\n", "on A: ph ↦ (X, Y) = (cos(ph), sin(ph))\n", "on B: ps ↦ (X, Y) = (-cos(ps), -sin(ps))" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi = S1.diff_map(R2, {(CA, cartesian): (cos(ph), sin(ph)),\n", " (CB, cartesian): (-cos(ps), -sin(ps))},\n", " name='Phi', latex_name=r'\\Phi')\n", "Phi.display()" ] }, { "cell_type": "code", "execution_count": 17, "id": "b529b823-ec2f-41d0-b357-2c517b7ef55f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle O\\)" ], "text/latex": [ "$\\displaystyle O$" ], "text/plain": [ "Point O on the 1-dimensional differentiable manifold S^1" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "O = S1((pi,), chart=CB, name='O')\n", "O" ] }, { "cell_type": "code", "execution_count": 18, "id": "475c9566-41f7-432e-83a2-df843b8e40f9", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(1, 0\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(1, 0\\right)$" ], "text/plain": [ "(1, 0)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cartesian(Phi(O))" ] }, { "cell_type": "code", "execution_count": 19, "id": "d7eac526-4485-4c40-bd0c-f27a9e47de5d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(-1, 0\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(-1, 0\\right)$" ], "text/plain": [ "(-1, 0)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H = S1((pi,), chart=CA, name='H')\n", "cartesian(Phi(H))" ] }, { "cell_type": "code", "execution_count": 20, "id": "45a5d527-3559-4d3a-8078-0a5e28356cb9", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph_spher = CA.plot(chart=cartesian, mapping=Phi, number_values=11, \n", " color='blue')\n", "graph_spher" ] }, { "cell_type": "markdown", "id": "f1670fca-099c-400c-8b01-843bbb0e6225", "metadata": {}, "source": [ "## The global vector frame" ] }, { "cell_type": "code", "execution_count": 21, "id": "beb708c3-551a-499a-980f-82821052be61", "metadata": {}, "outputs": [], "source": [ "e = S1.vector_frame('e')" ] }, { "cell_type": "code", "execution_count": 22, "id": "4fdc27c9-5931-423a-8efa-6a7a669b034e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle e_{0} = \\frac{\\partial}{\\partial {\\varphi} }\\)" ], "text/latex": [ "$\\displaystyle e_{0} = \\frac{\\partial}{\\partial {\\varphi} }$" ], "text/plain": [ "e_0 = ∂/∂ph" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e.restrict(A)[0][0] = 1\n", "e.restrict(A)[0].display()" ] }, { "cell_type": "code", "execution_count": 23, "id": "73be45f6-240a-41e4-a555-a793c88e096c", "metadata": {}, "outputs": [], "source": [ "A.set_change_of_frame(CA.frame(), e.restrict(A), \n", " A.tangent_identity_field())" ] }, { "cell_type": "code", "execution_count": 24, "id": "b9745ca8-34fb-4559-ac2a-e80caf20b91b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle e_{0} = \\frac{\\partial}{\\partial {\\psi} }\\)" ], "text/latex": [ "$\\displaystyle e_{0} = \\frac{\\partial}{\\partial {\\psi} }$" ], "text/plain": [ "e_0 = ∂/∂ps" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e.restrict(B)[0][0] = 1\n", "e.restrict(B)[0].display()" ] }, { "cell_type": "code", "execution_count": 25, "id": "628fd448-152b-4336-9feb-867d8c75919f", "metadata": {}, "outputs": [], "source": [ "B.set_change_of_frame(CB.frame(), e.restrict(B), \n", " B.tangent_identity_field())" ] }, { "cell_type": "code", "execution_count": 26, "id": "3a58ed8a-f4eb-43f6-b9bf-c65c8b5d300c", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 10 graphics primitives" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph_spher + e[0].plot(cartesian, mapping=Phi)" ] }, { "cell_type": "code", "execution_count": 27, "id": "6f8bf22e-bf60-45ab-97dd-2eb05a4a41d4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S1.is_manifestly_parallelizable()" ] }, { "cell_type": "markdown", "id": "73fcdb66-c242-4d19-9c8d-1aa4ac70d37c", "metadata": {}, "source": [ "## An non-exact 1-form on $\\mathbb{S}^1$" ] }, { "cell_type": "code", "execution_count": 28, "id": "5c439be8-8b2b-467e-b6bb-13c12d9daecb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form f on the 1-dimensional differentiable manifold S^1\n" ] }, { "data": { "text/html": [ "\\(\\displaystyle f = e^{0}\\)" ], "text/latex": [ "$\\displaystyle f = e^{0}$" ], "text/plain": [ "f = e^0" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f = S1.one_form(name='f')\n", "f[0] = 1\n", "print(f)\n", "f.display()" ] }, { "cell_type": "code", "execution_count": 29, "id": "bfec838d-077a-4ab3-a288-ca4192ab5cc8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f == e.coframe()[0]" ] }, { "cell_type": "markdown", "id": "1c130208-8122-4441-b642-4393d0ecf546", "metadata": {}, "source": [ "The 1-form $f$ is closed (as any 1-form on a 1-dimensional manifold) but is not exact:" ] }, { "cell_type": "code", "execution_count": 30, "id": "794219db-ff2f-459c-8604-395172db7999", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle f = \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle f = \\mathrm{d} {\\varphi}$" ], "text/plain": [ "f = dph" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f.restrict(A).display()" ] }, { "cell_type": "code", "execution_count": 31, "id": "76bdb3c6-b3c5-43f3-a220-3bbad420dbef", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle f = \\mathrm{d} {\\psi}\\)" ], "text/latex": [ "$\\displaystyle f = \\mathrm{d} {\\psi}$" ], "text/plain": [ "f = dps" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f.restrict(B).display()" ] }, { "cell_type": "code", "execution_count": 32, "id": "67e3c0c6-615b-4b7b-b286-2e89aca24b40", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{d}f = 0\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{d}f = 0$" ], "text/plain": [ "df = 0" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = diff(f.restrict(A))\n", "df.display()" ] }, { "cell_type": "code", "execution_count": 33, "id": "01f1f03c-b32a-49bf-a55b-aa543fa0e171", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{d}f = 0\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{d}f = 0$" ], "text/plain": [ "df = 0" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(f.restrict(B)).display()" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 9.7.beta2", "language": "sage", "name": "sagemath" }, "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.10.3" } }, "nbformat": 4, "nbformat_minor": 5 }