{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Sphere $\\mathbb{S}^2$\n", "\n", "This notebook demonstrates some differential geometry capabilities of SageMath on the example of the 2-dimensional sphere. The corresponding tools have been developed within\n", "the [SageManifolds](http://sagemanifolds.obspm.fr) project.\n", "\n", "Click [here](https://raw.githubusercontent.com/sagemanifolds/SageManifolds/master/Notebooks/SM_sphere_S2.ipynb) to download the notebook file (ipynb format). To run it, you must start SageMath with the Jupyter interface, via the command `sage -n jupyter`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*NB:* a version of SageMath at least equal to 7.5 is required to run this notebook:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'SageMath version 9.1, Release Date: 2020-05-20'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we set up the notebook to display math formulas using LaTeX formatting:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## $\\mathbb{S}^2$ as a 2-dimensional differentiable manifold\n", "\n", "We start by declaring $\\mathbb{S}^2$ as a differentiable manifold of dimension 2 over $\\mathbb{R}$:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "S2 = Manifold(2, 'S^2', latex_name=r'\\mathbb{S}^2', start_index=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first argument, `2`, is the dimension of the manifold, while the second argument is the symbol used to label the manifold.\n", "\n", "The argument `start_index` sets the index range to be used on the manifold for labelling components w.r.t. a basis or a frame: `start_index=1` corresponds to $\\{1,2\\}$; the default value is `start_index=0` and yields $\\{0,1\\}$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2-dimensional differentiable manifold S^2\n" ] } ], "source": [ "print(S2)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "2-dimensional differentiable manifold S^2" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The manifold is a `Parent` object:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "isinstance(S2, Parent)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

in the category of smooth manifolds over $\\mathbb{R}$:

" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Category of smooth manifolds over Real Field with 53 bits of precision" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S2.category()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Coordinate charts on $\\mathbb{S}^2$\n", "\n", "The sphere cannot be covered by a single chart. At least two charts are necessary, for instance the charts associated with the stereographic projections from the North pole and the South pole respectively. Let us introduce the open subsets covered by these two charts: \n", "$$ U := \\mathbb{S}^2\\setminus\\{N\\}, $$  \n", "$$ V := \\mathbb{S}^2\\setminus\\{S\\}, $$\n", "where $N$ is a point of $\\mathbb{S}^2$, which we shall call the North pole, and $S$ is the point of $U$ of stereographic coordinates $(0,0)$, which we call the South pole:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Open subset U of the 2-dimensional differentiable manifold S^2\n" ] } ], "source": [ "U = S2.open_subset('U') ; print(U)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Open subset V of the 2-dimensional differentiable manifold S^2\n" ] } ], "source": [ "V = S2.open_subset('V') ; print(V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

We declare that $\\mathbb{S}^2 = U \\cup V$:

" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "S2.declare_union(U, V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Then we declare the stereographic chart on $U$, denoting by $(x,y)$ the coordinates resulting from the stereographic projection from the North pole:

" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "stereoN. = U.chart()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The expression `.` in the left-hand side means that the Python variables `x` and `y` are set to the two coordinates of the chart. This allows one to refer subsequently to the coordinates by their names. In the present case, the function `chart()` has no argument, which implies that the coordinate symbols will be `x` and `y` (i.e. exactly the characters appearing in the `<...>` operator) and that each coordinate range is $(-\\infty,+\\infty)$. As we will see below, for other cases, an argument must be passed to `chart()` to specify each coordinate symbol and range, as well as some specific LaTeX symbol." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (U, (x, y))" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoN" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The coordinates can be accessed individually, either by means of their indices in the chart ( following the convention `start_index=1` set in the manifold's definition) or by their names as Python variables:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "x" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoN[1]" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y is stereoN[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Similarly, we introduce on $V$ the coordinates $(x',y')$ corresponding to the stereographic projection from the South pole:

" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "stereoS. = V.chart(\"xp:x' yp:y'\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this case, the string argument passed to `chart` stipulates that the text-only names of the coordinates are xp and yp (same as the Python variables names defined within the `<...>` operator in the left-hand side), while their LaTeX names are $x'$ and $y'$." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (V, (xp, yp))" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

At this stage, the user's atlas on the manifold has two charts:

" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (U, (x, y)), Chart (V, (xp, yp))]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S2.atlas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

We have to specify the transition map between the charts 'stereoN' = $(U,(x,y))$ and 'stereoS' = $(V,(x',y'))$; it is given by the standard inversion formulas:

" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "xp = x/(x^2 + y^2)\n", "yp = y/(x^2 + y^2)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoN_to_S = stereoN.transition_map(stereoS, \n", " (x/(x^2+y^2), y/(x^2+y^2)), \n", " intersection_name='W',\n", " restrictions1= x^2+y^2!=0, \n", " restrictions2= xp^2+yp^2!=0)\n", "stereoN_to_S.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the above declaration, 'W' is the name given to the chart-overlap subset: $W := U\\cap V$, the condition $x^2+y^2 \\not=0$  defines $W$ as a subset of $U$, and the condition $x'^2+y'^2\\not=0$ defines $W$ as a subset of $V$.\n", "\n", "The inverse coordinate transformation is computed by means of the method `inverse()`:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "x = xp/(xp^2 + yp^2)\n", "y = yp/(xp^2 + yp^2)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS_to_N = stereoN_to_S.inverse()\n", "stereoS_to_N.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

In the present case, the situation is of course perfectly symmetric regarding the coordinates $(x,y)$ and $(x',y')$.

\n", "

At this stage, the user's atlas has four charts:

" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (U, (x, y)),\n", " Chart (V, (xp, yp)),\n", " Chart (W, (x, y)),\n", " Chart (W, (xp, yp))]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S2.atlas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us store $W = U\\cap V$ into a Python variable for future use:

" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "W = U.intersection(V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Similarly we store the charts $(W,(x,y))$ (the restriction of  $(U,(x,y))$ to $W$) and $(W,(x',y'))$ (the restriction of $(V,(x',y'))$ to $W$) into Python variables:

" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (W, (x, y))" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoN_W = stereoN.restrict(W)\n", "stereoN_W" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (W, (xp, yp))" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS_W = stereoS.restrict(W)\n", "stereoS_W" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

We may plot the chart $(W, (x',y'))$ in terms of itself, as a grid:

" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdAAAAHWCAYAAADHBNgdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi41LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvSM8oowAAIABJREFUeJzt3Xt0VOW9//FPiFACmQSNUI0KwWJjAAETQCsRoZxj5KYFr5igghVWGa6/VYxV4FQUKFYsVQI00qowgXJsAaFFJCJEXALl4kmpCYlYlIuliNAEksgQsn9/hMkygiR52Dt7Zni/1pq1ZyYzz3y/7AmfPDOzn4mwLMsSAABokCZuFwAAQCgiQAEAMECAAgBggAAFAMAAAQoAgAECFAAAAwQoAAAGCFAAAAwQoAAAGCBAAQAwQIACAGCAAAVcNG3aNHXs2FGnT592uxQADRTBYvKAe9q2bavmzZuruLjY7VIANBAzUMAle/bs0YEDBzRmzBi3SwFggAAFXJKbm6sWLVrosccec7sUAAYIUMAlubm5Sk9PV6tWrdwuBYCBy9wuALgUVVZWatOmTdq8ebPbpQAwxAwUcMG2bdvUpUsXde3a1e1SABgiQAGbHDt2TD/96U81ZMgQ3X///eccmpKZmal7771XkvTRRx9p7NixbpQJwCYcxgLYZOzYsZoyZYq++uorde7cWatXr9bgwYMlSZZlKS4uTt27d9f69etdrhSAHZiBAjYoLCzU1VdfrauuukoffvihJKlNmzY1P9+9e7eOHz+uH//4x26VCMBmBChggy+//FLDhw+XJC1evFgdOnRQz549a37+/vvvSxIBCoQRPoUL2KB3796SpP379+uDDz7Q888/r4iIiJqfv//++4qJiVFKSopbJQKwGTNQwEYrVqyQJN133321rn///ffVu3dvRUZGulEWAAcQoICNtm/frquvvlqJiYk11xUVFenf//43L98CYYYABWz01VdfqV27drWue/fddyVJffv2daMkAA4hQAEbde/eXfv379eZM2ckSX//+981depUXXHFFSyaAIQZPkQE2Ojpp5/WwYMHNWDAAHXo0EHR0dE6ffq0+vfvX+tDRQBCHwspADaxLEtff/21oqKiaq5btWqVhgwZojVr1mjQoEEuVgfAbgQoYJO0tDRt2bJF//rXv9Sy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AIABAhQAAAMEKAAABghQAAAMEKBAHU6ePKmxY8fq2muvVVRUlJKSkrRgwQK3ywLgMhZSAOowadIkbdy4UT6fTwkJCVq/fr3GjBmj+Ph43XPPPW6XB8AlzECBOmzZskWPPvqo+vTpo4SEBI0aNUpdu3bVjh073C4NgIsIUKAOqampWr16tQ4dOiTLsrRx40YVFxcrLS3N7dIAuMj+l3ArKqq3hYW2D92oAvWHch/0YItXRozQcwcPavC11+qyyEhFREToj9OmKbVFC2nXrnNu7/f75ff7ay6X5+dXnykqkqKjG6ts+wXBvrho9BAcArUH8iJERViWZdk6Yk6OlJFh65BAKCuVFCupRFKMy7UAQcXnk9LT3a7CmP0BevSo9M47UkKCFBVl69CNqqJC+uyz0O6DHhqsrKxMx44dq7ncunVr9b7jDs158UXdfvvtNddPnz5dR44c0bx5884Z49sz0NKvvtI1Q4eq5J13FHPllc424CSeT8EhnHpIS5NC+HfC/gAFwkhpaaliY2O1du1a9e/fv+b60aNHa9++fVq/fn29xygpKVFMDHNQIFxwGAtwATExMbrjjjs0efJkRUVFqV27dsrLy9PixYv10ksvuV0eABcxAwXqcPjwYf3iF7/Q+vXrdezYMbVr106jRo3SpEmTFBERUef9mYEC4YkABRxGgALhieNAAQAwQIACAGCAAAUAwADvgQIOsyxLJ06ckMfjqdeHjgCEBgIUAAADvIQLAIABAhQAAAMEKAAABghQAAAMEKAAABggQAEAMECAAgBggAAFAMAAAQoAgAECFAAAA/8f2ufePKm8cVcAAAAASUVORK5CYII=\n", "text/plain": [ "Graphics object consisting of 18 graphics primitives" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS_W.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

More interestingly, let us plot the stereographic chart $(x',y')$ in terms of the stereographic chart $(x,y)$ on the domain $W$ where both systems overlap (we split the plot in four parts to avoid the singularity at $(x',y')=(0,0)$):

" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 72 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graphSN1 = stereoS_W.plot(stereoN, ranges={xp:[-6,-0.02], yp:[-6,-0.02]})\n", "graphSN2 = stereoS_W.plot(stereoN, ranges={xp:[-6,-0.02], yp:[0.02,6]})\n", "graphSN3 = stereoS_W.plot(stereoN, ranges={xp:[0.02,6], yp:[-6,-0.02]})\n", "graphSN4 = stereoS_W.plot(stereoN, ranges={xp:[0.02,6], yp:[0.02,6]})\n", "show(graphSN1+graphSN2+graphSN3+graphSN4,\n", " xmin=-1.5, xmax=1.5, ymin=-1.5, ymax=1.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Spherical coordinates

\n", "

The standard spherical (or polar) coordinates $(\\theta,\\phi)$ are defined on the open domain $A\\subset W \\subset \\mathbb{S}^2$ that is the complement of the \"origin meridian\"; since the latter is the half-circle defined by $y=0$ and $x\\geq 0$, we declare:

" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Open subset A of the 2-dimensional differentiable manifold S^2\n" ] } ], "source": [ "A = W.open_subset('A', coord_def={stereoN_W: (y!=0, x<0), \n", " stereoS_W: (yp!=0, xp<0)})\n", "print(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The restriction of the stereographic chart from the North pole to $A$ is

" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (A, (x, y))" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoN_A = stereoN_W.restrict(A)\n", "stereoN_A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

We then declare the chart $(A,(\\theta,\\phi))$ by specifying the intervals $(0,\\pi)$ and $(0,2\\pi)$ spanned by respectively $\\theta$ and $\\phi$:

" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (A, (th, ph))" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spher. = A.chart(r'th:(0,pi):\\theta ph:(0,2*pi):\\phi') ; spher" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The specification of the spherical coordinates is completed by providing the transition map with the stereographic chart $(A,(x,y))$:

" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "x = -cos(ph)*sin(th)/(cos(th) - 1)\n", "y = -sin(ph)*sin(th)/(cos(th) - 1)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spher_to_stereoN = spher.transition_map(stereoN_A, \n", " (sin(th)*cos(ph)/(1-cos(th)),\n", " sin(th)*sin(ph)/(1-cos(th))))\n", "spher_to_stereoN.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also provide the inverse transition map:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Check of the inverse coordinate transformation:\n", " th == 2*arctan(sqrt(-cos(th) + 1)/sqrt(cos(th) + 1)) **failed**\n", " ph == pi + arctan2(sin(ph)*sin(th)/(cos(th) - 1), cos(ph)*sin(th)/(cos(th) - 1)) **failed**\n", " x == x *passed*\n", " y == y *passed*\n", "NB: a failed report can reflect a mere lack of simplification.\n" ] } ], "source": [ "spher_to_stereoN.set_inverse(2*atan(1/sqrt(x^2+y^2)), atan2(-y,-x)+pi)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The check is passed, modulo some lack of trigonometric simplifications in the first two lines." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "th = 2*arctan(1/sqrt(x^2 + y^2))\n", "ph = pi + arctan2(-y, -x)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spher_to_stereoN.inverse().display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The transition map $(A,(\\theta,\\phi))\\rightarrow (A,(x',y'))$ is obtained by combining the transition maps $(A,(\\theta,\\phi))\\rightarrow (A,(x,y))$ and $(A,(x,y))\\rightarrow (A,(x',y'))$:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "xp = -(cos(ph)*cos(th) - cos(ph))/sin(th)\n", "yp = -(cos(th)*sin(ph) - sin(ph))/sin(th)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoN_to_S_A = stereoN_to_S.restrict(A)\n", "spher_to_stereoS = stereoN_to_S_A * spher_to_stereoN\n", "spher_to_stereoS.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, the transition map $(A,(x',y'))\\rightarrow (A,(\\theta,\\phi))$ is obtained by combining the transition maps $(A,(x',y'))\\rightarrow (A,(x,y))$ and $(A,(x,y))\\rightarrow (A,(\\theta,\\phi))$:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "th = 2*arctan(sqrt(xp^2 + yp^2))\n", "ph = pi - arctan2(yp/(xp^2 + yp^2), -xp/(xp^2 + yp^2))" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS_to_N_A = stereoN_to_S.inverse().restrict(A)\n", "stereoS_to_spher = spher_to_stereoN.inverse() * stereoS_to_N_A \n", "stereoS_to_spher.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The user atlas of $\\mathbb{S}^2$ is now

" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (U, (x, y)),\n", " Chart (V, (xp, yp)),\n", " Chart (W, (x, y)),\n", " Chart (W, (xp, yp)),\n", " Chart (A, (x, y)),\n", " Chart (A, (xp, yp)),\n", " Chart (A, (th, ph))]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S2.atlas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us draw the grid of spherical coordinates $(\\theta,\\phi)$ in terms of stereographic coordinates from the North pole $(x,y)$:

" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 30 graphics primitives" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spher.plot(stereoN, number_values=15, ranges={th: (pi/8,pi)})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Points on $\\mathbb{S}^2$

\n", "

We declare the North pole (resp. the South pole) as the point of coordinates $(0,0)$ in the chart $(V,(x',y'))$ (resp. in the chart $(U,(x,y))$):

" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point N on the 2-dimensional differentiable manifold S^2\n", "Point S on the 2-dimensional differentiable manifold S^2\n" ] } ], "source": [ "N = V.point((0,0), chart=stereoS, name='N') ; print(N)\n", "S = U.point((0,0), chart=stereoN, name='S') ; print(S)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Since points are Sage Element's, the corresponding Parent being the manifold subsets, an equivalent writing of the above declarations is

" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point N on the 2-dimensional differentiable manifold S^2\n", "Point S on the 2-dimensional differentiable manifold S^2\n" ] } ], "source": [ "N = V((0,0), chart=stereoS, name='N') ; print(N)\n", "S = U((0,0), chart=stereoN, name='S') ; print(S)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Moreover, since stereoS in the default chart on $V$ and stereoN is the default one on $U$, their mentions can be omitted, so that the above can be shortened to

" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point N on the 2-dimensional differentiable manifold S^2\n", "Point S on the 2-dimensional differentiable manifold S^2\n" ] } ], "source": [ "N = V((0,0), name='N') ; print(N)\n", "S = U((0,0), name='S') ; print(S)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Open subset V of the 2-dimensional differentiable manifold S^2" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N.parent()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Open subset U of the 2-dimensional differentiable manifold S^2" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S.parent()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

We have of course

" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N in V" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N in S2" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "False" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N in U" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "False" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N in A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us introduce some point at the equator:

" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "E = S2((0,1), chart=stereoN, name='E')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The point $E$ is in the open subset $A$:

" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E in A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

We may then ask for its spherical coordinates $(\\theta,\\phi)$:

" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(1/2*pi, 1/2*pi)" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E.coord(spher)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

which is not possible for the point $N$:

" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Error: the point does not belong to the domain of Chart (A, (th, ph))\n" ] } ], "source": [ "try:\n", " N.coord(spher)\n", "except ValueError as exc:\n", " print('Error: ' + str(exc))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Maps between manifolds: the embedding of $\\mathbb{S}^2$ into $\\mathbb{R}^3$

\n", "

Let us first declare $\\mathbb{R}^3$ as a 3-dimensional manifold covered by a single chart (the so-called Cartesian coordinates):

" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (R^3, (X, Y, Z))" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R3 = Manifold(3, 'R^3', r'\\mathbb{R}^3', start_index=1)\n", "cart. = R3.chart() ; cart" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The embedding of the sphere is defined as a differential map $\\Phi: \\mathbb{S}^2 \\rightarrow \\mathbb{R}^3$:

" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "Phi = S2.diff_map(R3, {(stereoN, cart): \n", " [2*x/(1+x^2+y^2), 2*y/(1+x^2+y^2),\n", " (x^2+y^2-1)/(1+x^2+y^2)],\n", " (stereoS, cart): \n", " [2*xp/(1+xp^2+yp^2), 2*yp/(1+xp^2+yp^2),\n", " (1-xp^2-yp^2)/(1+xp^2+yp^2)]},\n", " name='Phi', latex_name=r'\\Phi')" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi: S^2 --> R^3\n", "on U: (x, y) |--> (X, Y, Z) = (2*x/(x^2 + y^2 + 1), 2*y/(x^2 + y^2 + 1), (x^2 + y^2 - 1)/(x^2 + y^2 + 1))\n", "on V: (xp, yp) |--> (X, Y, Z) = (2*xp/(xp^2 + yp^2 + 1), 2*yp/(xp^2 + yp^2 + 1), -(xp^2 + yp^2 - 1)/(xp^2 + yp^2 + 1))" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi.display()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Set of Morphisms from 2-dimensional differentiable manifold S^2 to 3-dimensional differentiable manifold R^3 in Category of smooth manifolds over Real Field with 53 bits of precision" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi.parent()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Set of Morphisms from 2-dimensional differentiable manifold S^2 to 3-dimensional differentiable manifold R^3 in Category of smooth manifolds over Real Field with 53 bits of precision\n" ] } ], "source": [ "print(Phi.parent())" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi.parent() is Hom(S2, R3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

$\\Phi$ maps points of $\\mathbb{S}^2$ to points of $\\mathbb{R}^3$:

" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point Phi(N) on the 3-dimensional differentiable manifold R^3\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "(0, 0, 1)" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N1 = Phi(N) ; print(N1) ; N1 ; N1.coord()" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point Phi(S) on the 3-dimensional differentiable manifold R^3\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "(0, 0, -1)" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S1 = Phi(S) ; print(S1) ; S1 ; S1.coord()" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point Phi(E) on the 3-dimensional differentiable manifold R^3\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "(0, 1, 0)" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E1 = Phi(E) ; print(E1) ; E1 ; E1.coord()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

$\\Phi$ has been defined in terms of the stereographic charts $(U,(x,y))$ and $(V,(x',y'))$, but we may ask its expression in terms of spherical coordinates. The latter is then computed by means of the transition map $(A,(x,y))\\rightarrow (A,(\\theta,\\phi))$:

" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(2*x/(x^2 + y^2 + 1), 2*y/(x^2 + y^2 + 1), (x^2 + y^2 - 1)/(x^2 + y^2 + 1))" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi.expr(stereoN_A, cart)" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(cos(ph)*sin(th), sin(ph)*sin(th), cos(th))" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi.expr(spher, cart)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi: S^2 --> R^3\n", "on A: (th, ph) |--> (X, Y, Z) = (cos(ph)*sin(th), sin(ph)*sin(th), cos(th))" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi.display(spher, cart)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us use $\\Phi$ to draw the grid of spherical coordinates $(\\theta,\\phi)$ in terms of the Cartesian coordinates $(X,Y,Z)$ of $\\mathbb{R}^3$:

" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph_spher = spher.plot(chart=cart, mapping=Phi, number_values=11, \n", " color='blue', label_axes=False)\n", "graph_spher" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

We may also use the embedding $\\Phi$ to display the stereographic coordinate grid in terms of the Cartesian coordinates in $\\mathbb{R}^3$. First for the stereographic coordinates from the North pole:

" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph_stereoN = stereoN.plot(chart=cart, mapping=Phi, number_values=25, \n", " label_axes=False)\n", "graph_stereoN" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

and then have a view with the stereographic coordinates from the South pole superposed (in green):

" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "