{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 3-sphere: charts, quaternions and Hopf fibration\n", "\n", "This notebook demonstrates some differential geometry capabilities of SageMath on the example of the 3-dimensional sphere, $\\mathbb{S}^3$. The corresponding tools have been developed within the [SageManifolds](https://sagemanifolds.obspm.fr) project (version 1.3, as included in SageMath 8.3).\n", "\n", "Click [here](https://raw.githubusercontent.com/sagemanifolds/SageManifolds/master/Worksheets/v1.3/SM_sphere_S3_Hopf.ipynb) to download the notebook file (ipynb format). To run it, you must start SageMath with the Jupyter notebook, 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 worksheet:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'SageMath version 8.3, Release Date: 2018-08-03'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we set up the notebook to display mathematical objects using LaTeX formatting:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also define a viewer for 3D plots (use `'threejs'` or `'jmol'` for interactive 3D graphics):" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "viewer3D = 'threejs' # must be 'threejs', jmol', 'tachyon' or None (default)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To increase the computational speed, we ask for demanding computations to be parallelly performed on 8 cores:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "Parallelism().set(nproc=8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## $\\mathbb{S}^3$ as a 3-dimensional differentiable manifold\n", "\n", "We start by declaring $\\mathbb{S}^3$ as a differentiable manifold of dimension 3 over $\\mathbb{R}$:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "S3 = Manifold(3, 'S^3', latex_name=r'\\mathbb{S}^3', start_index=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first argument, `3`, is the dimension of the manifold, while the second argument is the symbol used to label the manifold, with the LaTeX output specified by the argument `latex_name`. 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,3\\}$; the default value is `start_index=0`, yielding to $\\{0,1,2\\}$." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3-dimensional differentiable manifold S^3\n" ] } ], "source": [ "print(S3)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "3-dimensional differentiable manifold S^3" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Coordinate charts on $\\mathbb{S}^3$\n", "\n", "The 3-sphere cannot be covered by a single chart. At least two charts are necessary, for instance the charts associated with the stereographic projections from two distinct points, $N$ and $S$ say,\n", "which we may call the *North pole* and the *South pole* respectively. Let us introduce the open subsets covered by these two charts: \n", "$$ U := \\mathbb{S}^3\\setminus\\{N\\} $$ \n", "$$ V := \\mathbb{S}^3\\setminus\\{S\\} $$" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Open subset U of the 3-dimensional differentiable manifold S^3\n" ] } ], "source": [ "U = S3.open_subset('U') ; print(U)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Open subset V of the 3-dimensional differentiable manifold S^3\n" ] } ], "source": [ "V = S3.open_subset('V') ; print(V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We declare that $\\mathbb{S}^3 = U \\cup V$:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "S3.declare_union(U, V)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Then we introduce the stereographic chart on $U$, denoting by $(x,y,z)$ the coordinates resulting from the stereographic projection from the North pole onto the equatorial plane:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (U, (x, y, z))" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoN. = U.chart()\n", "stereoN" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "x: (-oo, +oo); y: (-oo, +oo); z: (-oo, +oo)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoN.coord_range()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, we introduce on $V$ the coordinates $(x',y',z')$ corresponding to the stereographic projection from the South pole onto the equatorial plane:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (V, (xp, yp, zp))" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS. = V.chart(\"xp:x' yp:y' zp:z'\")\n", "stereoS" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "xp: (-oo, +oo); yp: (-oo, +oo); zp: (-oo, +oo)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS.coord_range()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have to specify the **transition map** between the charts `stereoN` = $(U,(x,y,z))$ and `stereoS` = $(V,(x',y',z'))$; it is given by the standard inversion formulas:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "xp = x/(x^2 + y^2 + z^2)\n", "yp = y/(x^2 + y^2 + z^2)\n", "zp = z/(x^2 + y^2 + z^2)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r2 = x^2+y^2+z^2\n", "stereoN_to_S = stereoN.transition_map(stereoS, \n", " (x/r2, y/r2, z/r2), \n", " intersection_name='W',\n", " restrictions1= x^2+y^2+z^2!=0, \n", " restrictions2= xp^2+yp^2+zp^2!=0)\n", "stereoN_to_S.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the above declaration, `'W'` is the name given to the open subset where the two charts overlap: $W := U\\cap V$, the condition $x^2+y^2+z^2\\not=0$ defines $W$ as a subset of $U$, and the condition $x'^2+y'^2+z'^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": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "x = xp/(xp^2 + yp^2 + zp^2)\n", "y = yp/(xp^2 + yp^2 + zp^2)\n", "z = zp/(xp^2 + yp^2 + zp^2)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS_to_N = stereoN_to_S.inverse()\n", "stereoS_to_N.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the situation is of course perfectly symmetric regarding the coordinates $(x,y,z)$ and $(x',y',z')$.\n", "\n", "At this stage, the user's atlas has four charts:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (U, (x, y, z)),\n", " Chart (V, (xp, yp, zp)),\n", " Chart (W, (x, y, z)),\n", " Chart (W, (xp, yp, zp))]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S3.atlas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For future reference, we store $W=U\\cap V$ into a Python variable:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Open subset W of the 3-dimensional differentiable manifold S^3\n" ] } ], "source": [ "W = U.intersection(V)\n", "print(W)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The North and South poles\n", "\n", "$N$ is the point of $V$ of stereographic coordinates $(x',y',z')=(0,0,0)$:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point N on the 3-dimensional differentiable manifold S^3\n" ] } ], "source": [ "N = V((0,0,0), chart=stereoS, name='N')\n", "print(N)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "while $S$ is the point of U of stereographic coordinates $(x,y,z)=(0,0,0)$:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point S on the 3-dimensional differentiable manifold S^3\n" ] } ], "source": [ "S = U((0,0,0), chart=stereoN, name='S')\n", "print(S)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have of course" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([N not in U, N in V, S in U, S not in V])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Embedding of $\\mathbb{S}^3$ into $\\mathbb{R}^4$\n", "\n", "Let us first declare $\\mathbb{R}^4$ as a 4-dimensional manifold covered by a single chart (the so-called **Cartesian coordinates**):" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (R^4, (T, X, Y, Z))" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R4 = Manifold(4, 'R^4', r'\\mathbb{R}^4')\n", "X4. = R4.chart()\n", "X4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The embedding of $\\mathbb{S}^3$ into $\\mathbb{R}^4$ is then defined by the standard formulas relating the stereographic coordinates to the ambient Cartesian ones when considering a **stereographic projection** from the point $(-1,0,0,0)$ to the equatorial plane $T=0$:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi: S^3 --> R^4\n", "on U: (x, y, z) |--> (T, X, Y, Z) = (-(x^2 + y^2 + z^2 - 1)/(x^2 + y^2 + z^2 + 1), 2*x/(x^2 + y^2 + z^2 + 1), 2*y/(x^2 + y^2 + z^2 + 1), 2*z/(x^2 + y^2 + z^2 + 1))\n", "on V: (xp, yp, zp) |--> (T, X, Y, Z) = ((xp^2 + yp^2 + zp^2 - 1)/(xp^2 + yp^2 + zp^2 + 1), 2*xp/(xp^2 + yp^2 + zp^2 + 1), 2*yp/(xp^2 + yp^2 + zp^2 + 1), 2*zp/(xp^2 + yp^2 + zp^2 + 1))" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rp2 = xp^2 + yp^2 + zp^2\n", "Phi = S3.diff_map(R4, {(stereoN, X4): \n", " [(1-r2)/(r2+1), 2*x/(r2+1), \n", " 2*y/(r2+1), 2*z/(r2+1)],\n", " (stereoS, X4):\n", " [(rp2-1)/(rp2+1), 2*xp/(rp2+1), \n", " 2*yp/(rp2+1), 2*zp/(rp2+1)]},\n", " name='Phi', latex_name=r'\\Phi')\n", "Phi.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From this choice of stereographic projection, the \"North\" pole is actually the point of coordinates $(-1,0,0,0)$ in $\\mathbb{R}^4$:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(-1, 0, 0, 0)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X4(Phi(N))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "while the \"South\" pole is the point of coordinates $(1,0,0,0)$:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(1, 0, 0, 0)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X4(Phi(S))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We may use the embedding $\\Phi$ to plot the stereographic coordinate grid in terms of the $\\mathbb{R}^4$'s Cartesian coordinates: " ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph_stereoN = stereoN.plot(chart=X4, mapping=Phi, \n", " ambient_coords=(X,Y,Z),\n", " number_values=9,\n", " color={x: 'red', y: 'green', z: 'gold'},\n", " label_axes=False)\n", "show(graph_stereoN, viewer=viewer3D, online=True, axes_labels=['X', 'Y', 'Z'])" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph_stereoN = stereoN.plot(chart=X4, mapping=Phi, \n", " ambient_coords=(X,Y,T),\n", " number_values=13, plot_points=150,\n", " color={x: 'red', y: 'green', z: 'gold'},\n", " label_axes=False)\n", "pointN = N.plot(chart=X4, mapping=Phi, ambient_coords=(X,Y,T), \n", " color='maroon', label_offset=0.05)\n", "pointS = S.plot(chart=X4, mapping=Phi, ambient_coords=(X,Y,T), \n", " color='maroon', label_offset=0.05)\n", "show(graph_stereoN + pointN + pointS, viewer=viewer3D, online=True,\n", " axes_labels=['X', 'Y', 'T'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hyperspherical coordinates\n", "\n", "The hyperspherical coordinates $(\\chi, \\theta, \\phi)$ generalize the standard spherical coordinates $(\\theta, \\phi)$ on $\\mathbb{S}^2$. They are defined on the open domain $A\\subset W \\subset \\mathbb{S}^3$ that is the complement of the \"origin meridian\"; since the latter is defined by $y=0$ and $x\\geq 0$, we declare:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Open subset A of the 3-dimensional differentiable manifold S^3\n" ] } ], "source": [ "A = W.open_subset('A', coord_def={stereoN.restrict(W): (y!=0, x<0), \n", " stereoS.restrict(W): (yp!=0, xp<0)})\n", "print(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We then declare the chart $(A,(\\chi,\\theta,\\phi))$ by specifying the intervals spanned by the various coordinates:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (A, (ch, th, ph))" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spher. = A.chart(r'ch:(0,pi):\\chi th:(0,pi):\\theta ph:(0,2*pi):\\phi')\n", "spher" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "ch: (0, pi); th: (0, pi); ph: (0, 2*pi)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spher.coord_range()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The specification of the hyperspherical coordinates is completed by providing the transition map to the stereographic chart $(A,(x,y,z))$:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "x = cos(ph)*sin(ch)*sin(th)/(cos(ch) + 1)\n", "y = sin(ch)*sin(ph)*sin(th)/(cos(ch) + 1)\n", "z = cos(th)*sin(ch)/(cos(ch) + 1)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "den = 1 + cos(ch)\n", "spher_to_stereoN = spher.transition_map(stereoN.restrict(A), \n", " (sin(ch)*sin(th)*cos(ph)/den,\n", " sin(ch)*sin(th)*sin(ph)/den,\n", " sin(ch)*cos(th)/den))\n", "spher_to_stereoN.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also provide the inverse transition map, asking to check that the provided formulas are indeed correct (argument `verbose=True`):" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Check of the inverse coordinate transformation:\n", " ch == 2*arctan(sqrt(-cos(ch) + 1)/sqrt(cos(ch) + 1))\n", " th == arctan2(sqrt(-cos(ch) + 1)*sin(th)/sqrt(cos(ch) + 1), cos(th)*sin(ch)/(cos(ch) + 1))\n", " ph == pi - arctan2(sin(ch)*sin(ph)*sin(th)/(cos(ch) + 1), -cos(ph)*sin(ch)*sin(th)/(cos(ch) + 1))\n", " x == x\n", " y == y\n", " z == z\n" ] } ], "source": [ "spher_to_stereoN.set_inverse(2*atan(sqrt(x^2+y^2+z^2)),\n", " atan2(sqrt(x^2+y^2), z),\n", " atan2(-y, -x)+pi,\n", " verbose=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The check is passed, modulo some lack of trigonometric simplifications in the first three lines." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "ch = 2*arctan(sqrt(x^2 + y^2 + z^2))\n", "th = arctan2(sqrt(x^2 + y^2), z)\n", "ph = pi + arctan2(-y, -x)" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spher_to_stereoN.inverse().display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The transition map $(A,(\\chi,\\theta,\\phi))\\rightarrow (A,(x',y',z'))$ is obtained by combining the transition maps $(A,(\\chi,\\theta,\\phi))\\rightarrow (A,(x,y,z))$ and $(A,(x,y,z))\\rightarrow (A,(x',y',z'))$:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "xp = (cos(ch) + 1)*cos(ph)*sin(th)/sin(ch)\n", "yp = (cos(ch) + 1)*sin(ph)*sin(th)/sin(ch)\n", "zp = (cos(ch) + 1)*cos(th)/sin(ch)" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spher_to_stereoS = stereoN_to_S.restrict(A) * spher_to_stereoN\n", "spher_to_stereoS.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, the transition map $(A,(x',y',z'))\\rightarrow (A,(\\chi,\\theta,\\phi))$ is obtained by combining the transition maps $(A,(x',y',z'))\\rightarrow (A,(x,y,z))$ and $(A,(x,y,z))\\rightarrow (A,(\\chi,\\theta,\\phi))$:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "ch = 2*arctan(1/sqrt(xp^2 + yp^2 + zp^2))\n", "th = arctan2(sqrt(xp^2 + yp^2)/(xp^2 + yp^2 + zp^2), zp/(xp^2 + yp^2 + zp^2))\n", "ph = pi - arctan2(yp/(xp^2 + yp^2 + zp^2), -xp/(xp^2 + yp^2 + zp^2))" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS_to_spher = spher_to_stereoN.inverse() * stereoS_to_N.restrict(A)\n", "stereoS_to_spher.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this stage, the user atlas of $\\mathbb{S}^3$ is" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (U, (x, y, z)),\n", " Chart (V, (xp, yp, zp)),\n", " Chart (W, (x, y, z)),\n", " Chart (W, (xp, yp, zp)),\n", " Chart (A, (x, y, z)),\n", " Chart (A, (xp, yp, zp)),\n", " Chart (A, (ch, th, ph))]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S3.atlas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us get the coordinate expression of the restriction of the embedding $\\Phi$ to $A$:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi: S^3 --> R^4\n", "on A: (x, y, z) |--> (T, X, Y, Z) = (-(x^2 + y^2 + z^2 - 1)/(x^2 + y^2 + z^2 + 1), 2*x/(x^2 + y^2 + z^2 + 1), 2*y/(x^2 + y^2 + z^2 + 1), 2*z/(x^2 + y^2 + z^2 + 1))" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi.display(stereoN.restrict(A), X4)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi: S^3 --> R^4\n", "on A: (ch, th, ph) |--> (T, X, Y, Z) = (cos(ch), cos(ph)*sin(ch)*sin(th), sin(ch)*sin(ph)*sin(th), cos(th)*sin(ch))" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi.display(spher, X4)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi: S^3 --> R^4\n", "on U: (x, y, z) |--> (T, X, Y, Z) = (-(x^2 + y^2 + z^2 - 1)/(x^2 + y^2 + z^2 + 1), 2*x/(x^2 + y^2 + z^2 + 1), 2*y/(x^2 + y^2 + z^2 + 1), 2*z/(x^2 + y^2 + z^2 + 1))\n", "on V: (xp, yp, zp) |--> (T, X, Y, Z) = ((xp^2 + yp^2 + zp^2 - 1)/(xp^2 + yp^2 + zp^2 + 1), 2*xp/(xp^2 + yp^2 + zp^2 + 1), 2*yp/(xp^2 + yp^2 + zp^2 + 1), 2*zp/(xp^2 + yp^2 + zp^2 + 1))\n", "on A: (ch, th, ph) |--> (T, X, Y, Z) = (cos(ch), cos(ph)*sin(ch)*sin(th), sin(ch)*sin(ph)*sin(th), cos(th)*sin(ch))" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plots of the hyperspherical coordinate grid\n", "\n", "First let us plot the chart $(A,(\\chi,\\theta,\\phi))$ in terms of the stereographic chart $(U,(x,y,z))$ (notice that the \"point at infinity\" corresponds to $\\chi\\rightarrow \\pi$, hence the $0.9$ truncation in the $\\chi$ range)::" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = spher.plot(stereoN, \n", " number_values=7,\n", " ranges={ch: (0, 0.9*pi)},\n", " color={ch: 'green', th: 'blue', ph: 'red'},\n", " label_axes=False)\n", "show(graph, viewer=viewer3D, online=True, axes_labels=['x', 'y', 'z'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In terms of the stereographic coordinates $(V, (x',y',z'))$ (notice that the \"point at infinity\" corresponds then to $\\chi\\rightarrow 0$):" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = spher.plot(stereoS, \n", " number_values=7,\n", " ranges={ch: (0.1, pi)},\n", " color={ch: 'green', th: 'blue', ph: 'red'},\n", " label_axes=False)\n", "show(graph, viewer=viewer3D, online=True, axes_labels=[\"x'\", \"y'\", \"z'\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course we may use the embeddding $\\Phi$ to get views of the hyperspherical coordinates in terms of the Cartesian coordinates $(T,X,Y,Z)$ of $\\mathbb{R}^4$:" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = spher.plot(X4, mapping=Phi, \n", " ambient_coords=(X,Y,T),\n", " number_values=7,\n", " color={ch: 'green', th: 'blue', ph: 'red'},\n", " label_axes=False)\n", "show(graph, viewer=viewer3D, online=True, axes_labels=['X', 'Y', 'T'])" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = spher.plot(X4, mapping=Phi, \n", " ambient_coords=(X,Y,Z),\n", " number_values=7,\n", " color={ch: 'green', th: 'blue', ph: 'red'},\n", " label_axes=False)\n", "show(graph, viewer=viewer3D, online=True, axes_labels=['X', 'Y', 'Z'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Projection of $\\mathbb{R}^4$ to $\\mathbb{S}^3$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will need some projection operator from (a subset of) $\\mathbb{R}^4$ to $\\mathbb{S}^3$.\n", "Let $\\mathbb{R}^4_N$ be $\\mathbb{R}^4$ minus the hyperplane $T=-1$:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "R4N = R4.open_subset('R4N', latex_name=r'\\mathbb{R}^4_N', \n", " coord_def={X4: T!=-1})\n", "X4N = X4.restrict(R4N)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "P_N: R4N --> U\n", " (T, X, Y, Z) |--> (x, y, z) = (X/(T + 1), Y/(T + 1), Z/(T + 1))" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ProjN = R4N.diff_map(U, {(X4N, stereoN): \n", " [X/(1+T), Y/(1+T), Z/(1+T)]},\n", " name='P_N', latex_name=r'\\Pi_N')\n", "ProjN.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us check that once applied to an embedded point of $U\\subset \\mathbb{S}^3$, this projection reduces to the identity:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "var('a b c', domain='real')\n", "p = S3((a,b,c), chart=stereoN)\n", "ProjN(Phi(p)) == p" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(1/2*sqrt(3), 1/2*cos(b)*sin(a), 1/2*sin(a)*sin(b), 1/2*cos(a))" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = R4((sqrt(3)/2, sin(a)*cos(b)/2, sin(a)*sin(b)/2, cos(a)/2))\n", "X4(q)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "False" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([q in R4N, Phi(ProjN(q)) == q])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Quaternions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We consider the (division) algebra of quaternions $\\mathbb{H}$ as $\\mathbb{R}^4$ endowed with the following (non-commutative) product:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "def qprod(p,q):\n", " if p in R4 and q in R4:\n", " T1, X1, Y1, Z1 = X4(p)\n", " T2, X2, Y2, Z2 = X4(q)\n", " return R4(((T1*T2-X1*X2-Y1*Y2-Z1*Z2).simplify_full(),\n", " (T1*X2+X1*T2+Y1*Z2-Z1*Y2).simplify_full(),\n", " (T1*Y2-X1*Z2+Y1*T2+Z1*X2).simplify_full(),\n", " (T1*Z2+X1*Y2-Y1*X2+Z1*T2).simplify_full()))\n", " if p in S3 and q in S3:\n", " a = qprod(Phi(p),Phi(q))\n", " if X4(a) == (-1,0,0,0):\n", " return N\n", " return ProjN(R4N(a))\n", " raise ValueError(\"Cannot evaluate qprod of {} and {}\".format(p,q))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that we have extended the definition of the quaternionic product to $\\mathbb{S}^3$ via the embedding $\\Phi$. \n", "\n", "### Distinguished quaternions on $\\mathbb{S}^3$\n", "\n", "Let us introduce two special points on $\\mathbb{S}^3$: $\\mathbf{1}$ and $-\\mathbf{1}$." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(1, 0, 0, 0)" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "One = S3((0,0,0), chart=stereoN, name='1', latex_name=r'\\mathbf{1}')\n", "X4(Phi(One))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see from the Cartesian coordinates of $\\Phi(\\mathbf{1})$, the point $\\mathbf{1}$ is actually nothing but the \"South\" pole used to define the stereographic chart $(V,(x',y',z'))$:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "One == S" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(-1, 0, 0, 0)" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "minusOne = S3((0,0,0), chart=stereoS, name='-1', latex_name=r'-\\mathbf{1}')\n", "X4(Phi(minusOne))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The point $\\mathbf{-1}$ is thus nothing but the \"North\" pole used to define the stereographic chart $(U,(x,y,z))$:" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "minusOne == N" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next we introduce points $\\mathbf{i}$, $\\mathbf{j}$ and $\\mathbf{k}$ on $\\mathbb{S}^3$:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 1, 0, 0)" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "I = S3((1,0,0), chart=stereoN, name='i', latex_name=r'\\mathbf{i}')\n", "X4(Phi(I))" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(1, 0, 0)" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS(I)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 0, 1, 0)" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "J = S3((0,1,0), chart=stereoN, name='j', latex_name=r'\\mathbf{j}')\n", "X4(Phi(J))" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 1, 0)" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS(J)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since $\\mathbf{j}$ lies in $A$, contrary to $\\mathbf{i}$, we may ask for its hyperspherical coordinates:" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(1/2*pi, 1/2*pi, 1/2*pi)" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spher(J)" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 0, 0, 1)" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "K = S3((0,0,1), chart=stereoN, name='k', latex_name=r'\\mathbf{k}')\n", "X4(Phi(K))" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 0, 1)" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS(K)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hamilton's fundamental relations\n", "$$ \\mathbf{i} \\mathbf{j} \\mathbf{k} = \\mathbf{-1} $$\n", "$$ \\mathbf{i} \\mathbf{j} = \\mathbf{k},\\quad \\mathbf{j} \\mathbf{k} = \\mathbf{i}, \\quad \\mathbf{k} \\mathbf{i} = \\mathbf{j}$$\n", "are satisfied:" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qprod(I, qprod(J,K)) == minusOne" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([qprod(I,J) == K, qprod(J,K) == I,\n", " qprod(K,I) == J])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These relations imply $\\mathbf{i}^2 = \\mathbf{-1}$, $\\mathbf{j}^2 = \\mathbf{-1}$ and $\\mathbf{k}^2 = \\mathbf{-1}$:" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([qprod(One,One) == One, qprod(I,I) == minusOne,\n", " qprod(J,J) == minusOne, qprod(K,K) == minusOne])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us introduce $\\mathbf{-i}$, $\\mathbf{-j}$ and $\\mathbf{-k}$, as points of $\\mathbb{S}^3$:" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, -1, 0, 0)" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "minusI = qprod(minusOne, I)\n", "X4(Phi(minusI))" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 0, -1, 0)" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "minusJ = qprod(minusOne, J)\n", "X4(Phi(minusJ))" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 0, 0, -1)" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "minusK = qprod(minusOne, K)\n", "X4(Phi(minusK))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Quaternionic conjugation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the comments below (but not in the SageMath code), we shall identify $\\mathbf{1}\\in \\mathbb{S}^3$ with $\\Phi(\\mathbf{1})\\in \\mathbb{R}^4$, $\\mathbf{i}\\in \\mathbb{S}^3$ with $\\Phi(\\mathbf{i})\\in \\mathbb{R}^4$, etc. In particular, we consider $(\\mathbf{1}, \\mathbf{i}, \\mathbf{j},\\mathbf{k})$ as a basis of the quaternion algebra $\\mathbb{H}$. \n", "\n", "The *conjugate* of a quaternion $q = T + X\\mathbf{i} + Y\\mathbf{j} + Z\\mathbf{k}$ is $\\bar{q} = T - X\\mathbf{i} - Y\\mathbf{j} - Z\\mathbf{k}$; hence we define:\n" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "def qconj(p):\n", " if p in R4:\n", " T, X, Y, Z = X4(p)\n", " return R4((T, -X, -Y, -Z))\n", " if p in S3:\n", " a = qconj(Phi(p))\n", " if X4(a) == (-1,0,0,0):\n", " return N\n", " return ProjN(a)\n", " raise ValueError(\"Cannot evaluate qconf of {}\".format(p)) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In particular, we have $\\bar{\\mathbf{1}} = \\mathbf{1}$, $\\bar{\\mathbf{i}} = -\\mathbf{i}$, $\\bar{\\mathbf{j}} = -\\mathbf{j}$ and $\\bar{\\mathbf{k}} = -\\mathbf{k}$:" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([qconj(One) == One, \n", " qconj(I) == minusI,\n", " qconj(J) == minusJ, \n", " qconj(K) == minusK])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The conjugate of an element of $\\mathbb{S}^3$" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(-a, -b, -c)" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assume(a != 0) # to ensure that qconj(p) is not N\n", "p = S3((a,b,c), chart=stereoN)\n", "stereoN(qconj(p))" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(-a, -b, -c)" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = S3((a,b,c), chart=stereoS)\n", "stereoS(qconj(p))" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "forget(a!=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Norm of a quaternion\n", "\n", "The quaternionic norm $\\| q\\| = \\sqrt{q\\bar{q}}$ coincide with the Euclidean norm in $\\mathbb{R}^4$, so that $\\mathbb{S}^3$ can be viewed as the set of unit quaternions; hence we define:" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [], "source": [ "def qnorm(p):\n", " if p in R4:\n", " T, X, Y, Z = X4(p)\n", " return (sqrt(T^2 + X^2 + Y^2 + Z^2)).simplify_full()\n", " if p in S3:\n", " return 1\n", " raise ValueError(\"Cannot evaluate qnorm of {}\".format(p)) " ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "sqrt(a^2 + b^2 + c^2 + d^2)" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "var('d', domain='real')\n", "q = R4((a,b,c,d))\n", "qnorm(q)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us check that $\\| q\\|^2 = q\\bar{q}$:" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R4((qnorm(q)^2,0,0,0)) == qprod(q, qconj(q))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As elements of $\\mathbb{S}^3$, $\\mathbf{1}$, $\\mathbf{i}$, $\\mathbf{j}$ and $\\mathbf{k}$ have all unit norm:" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(qnorm(One), qnorm(I), qnorm(J), qnorm(K)) == (1, 1, 1, 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hopf map" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We shall define the Hopf map by considering first the map \n", "$$ \\begin{array}{cccc}\n", " C: & \\mathbb{R}^4 & \\to & \\mathbb{R}^4\\\\\n", " & p & \\mapsto & p \\mathbf{k} \\bar{p}\n", " \\end{array} $$\n", "The coordinate expression of $C$ is obtained as follows:" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 2*T*Y + 2*X*Z, -2*T*X + 2*Y*Z, T^2 - X^2 - Y^2 + Z^2)" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = R4((T,X,Y,Z)) # a generic point of R^4\n", "coord_Cp = X4( qprod(p, qprod(Phi(K), qconj(p))) )\n", "coord_Cp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Therefore we define $C$ as" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "C: R^4 --> R^4\n", " (T, X, Y, Z) |--> (0, 2*T*Y + 2*X*Z, -2*T*X + 2*Y*Z, T^2 - X^2 - Y^2 + Z^2)" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C = R4.diff_map(R4, coord_Cp, name='C')\n", "C.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The restriction of $C$ to $\\Phi(\\mathbb{S}^3)\\subset \\mathbb{R}^4$ can be viewed as the map \n", "$C\\circ \\Phi: \\mathbb{S}^3 \\to \\mathbb{R}^4$ :" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "S^3 --> R^4\n", "on U: (x, y, z) |--> (T, X, Y, Z) = (0, -4*(y^3 + y*z^2 + (x^2 - 1)*y - 2*x*z)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1), 4*(x^3 + x*y^2 + x*z^2 + 2*y*z - x)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1), (x^4 + y^4 + z^4 + 2*(x^2 - 3)*y^2 + 2*(x^2 + y^2 + 1)*z^2 - 6*x^2 + 1)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1))\n", "on V: (xp, yp, zp) |--> (T, X, Y, Z) = (0, 4*(yp^3 + yp*zp^2 + (xp^2 - 1)*yp + 2*xp*zp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1), -4*(xp^3 + xp*yp^2 + xp*zp^2 - 2*yp*zp - xp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1), (xp^4 + yp^4 + zp^4 + 2*(xp^2 - 3)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 - 6*xp^2 + 1)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1))\n", "on A: (ch, th, ph) |--> (T, X, Y, Z) = (0, 2*(cos(ph)*cos(th)*sin(ch)^2 + cos(ch)*sin(ch)*sin(ph))*sin(th), 2*(cos(th)*sin(ch)^2*sin(ph) - cos(ch)*cos(ph)*sin(ch))*sin(th), -2*sin(ch)^2*sin(th)^2 + 1)" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CS = C * Phi\n", "CS.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On the above coordinate expressions, we note that the codomain of $C\\circ \\Phi$ lies in the hyperplane $T=0$, i.e. in the set $\\operatorname{Im}\\mathbb{H}$ of pure imaginary quaternions.\n", "Moreover, if we consider a generic point $p\\in U\\subset\\mathbb{S}^3$:" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [], "source": [ "p = S3((a,b,c), chart=stereoN)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "we have $\\| C\\circ\\Phi(p) \\| = 1$:" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qnorm(CS(p))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the only point of $\\mathbb{S}^3$ not lying in $U$, i.e. $N = -\\mathbf{1}$, we have as well" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qnorm(CS(N))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hence the codomain of $C \\circ\\Phi$ lies in $\\Phi(\\mathbb{S}^3)$. From the previous result, we conclude that it actually lies in $\\Phi(\\mathbb{S}^3)\\cap \\operatorname{Im}\\mathbb{H}$, which is a 2-sphere: the 2-sphere of unit imaginary quaternions.\n", "\n", "In particular, we have:" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([CS(K) == Phi(K), CS(One) == Phi(K), CS(minusOne) == Phi(K)])" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([CS(I) == Phi(minusK), CS(J) == Phi(minusK),\n", " CS(minusI) == Phi(minusK), CS(minusJ) == Phi(minusK)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On $\\Phi(\\mathbb{S}^3)\\cap \\operatorname{Im}\\mathbb{H}$, the inverse embedding $\\Phi^{-1}$ coincides with \n", "the projector $\\Pi_N$ introduced above since $(\\Phi(\\mathbb{S}^3)\\cap \\operatorname{Im}\\mathbb{H})\\subset \\mathbb{R}^4_N$. Hence the map $H = \\Phi^{-1}\\circ C \\circ \\Phi: \\mathbb{S}^3 \\to \\mathbb{S}^3$ can be obtained as $\\Pi_N\\circ C \\circ \\Phi$:" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [], "source": [ "H = ProjN * CS.restrict(S3, subcodomain=R4N)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that we have used the method `restrict` with the argument `subcodomain=R4N`\n", "to declare that the codomain of $C\\circ\\Phi$ actually lies in $\\mathbb{R}^4_N$, so that the composition with $\\Pi_N$ is well defined. \n", "We have" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "S^3 --> U\n", "on U: (x, y, z) |--> (-4*(y^3 + y*z^2 + (x^2 - 1)*y - 2*x*z)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1), 4*(x^3 + x*y^2 + x*z^2 + 2*y*z - x)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1), (x^4 + y^4 + z^4 + 2*(x^2 - 3)*y^2 + 2*(x^2 + y^2 + 1)*z^2 - 6*x^2 + 1)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1))\n", "on V: (xp, yp, zp) |--> (x, y, z) = (4*(yp^3 + yp*zp^2 + (xp^2 - 1)*yp + 2*xp*zp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1), -4*(xp^3 + xp*yp^2 + xp*zp^2 - 2*yp*zp - xp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1), (xp^4 + yp^4 + zp^4 + 2*(xp^2 - 3)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 - 6*xp^2 + 1)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1))\n", "on A: (ch, th, ph) |--> (x, y, z) = (2*(cos(ph)*cos(th)*sin(ch)^2 + cos(ch)*sin(ch)*sin(ph))*sin(th), 2*(cos(th)*sin(ch)^2*sin(ph) - cos(ch)*cos(ph)*sin(ch))*sin(th), -2*sin(ch)^2*sin(th)^2 + 1)" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Actually since neither $N$ (which has $T=-1$) nor $S$ (which has $T=1$) lie in the codomain of $C\\circ\\Phi$, we may safely declare that the codomain of $H$ is $W = U\\cap V$:" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "S^3 --> W\n", "on U: (x, y, z) |--> (x, y, z) = (-4*(y^3 + y*z^2 + (x^2 - 1)*y - 2*x*z)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1), 4*(x^3 + x*y^2 + x*z^2 + 2*y*z - x)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1), (x^4 + y^4 + z^4 + 2*(x^2 - 3)*y^2 + 2*(x^2 + y^2 + 1)*z^2 - 6*x^2 + 1)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1))\n", "on U: (x, y, z) |--> (xp, yp, zp) = (-4*(y^3 + y*z^2 + (x^2 - 1)*y - 2*x*z)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1), 4*(x^3 + x*y^2 + x*z^2 + 2*y*z - x)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1), (x^4 + y^4 + z^4 + 2*(x^2 - 3)*y^2 + 2*(x^2 + y^2 + 1)*z^2 - 6*x^2 + 1)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1))\n", "on V: (xp, yp, zp) |--> (x, y, z) = (4*(yp^3 + yp*zp^2 + (xp^2 - 1)*yp + 2*xp*zp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1), -4*(xp^3 + xp*yp^2 + xp*zp^2 - 2*yp*zp - xp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1), (xp^4 + yp^4 + zp^4 + 2*(xp^2 - 3)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 - 6*xp^2 + 1)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1))\n", "on V: (xp, yp, zp) |--> (xp, yp, zp) = (4*(yp^3 + yp*zp^2 + (xp^2 - 1)*yp + 2*xp*zp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1), -4*(xp^3 + xp*yp^2 + xp*zp^2 - 2*yp*zp - xp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1), (xp^4 + yp^4 + zp^4 + 2*(xp^2 - 3)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 - 6*xp^2 + 1)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1))\n", "on A: (ch, th, ph) |--> (x, y, z) = (2*(cos(ph)*cos(th)*sin(ch)^2 + cos(ch)*sin(ch)*sin(ph))*sin(th), 2*(cos(th)*sin(ch)^2*sin(ph) - cos(ch)*cos(ph)*sin(ch))*sin(th), -2*sin(ch)^2*sin(th)^2 + 1)\n", "on A: (ch, th, ph) |--> (xp, yp, zp) = (2*(cos(ph)*cos(th)*sin(ch)^2 + cos(ch)*sin(ch)*sin(ph))*sin(th), 2*(cos(th)*sin(ch)^2*sin(ph) - cos(ch)*cos(ph)*sin(ch))*sin(th), -2*sin(ch)^2*sin(th)^2 + 1)" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H = H.restrict(S3, subcodomain=W)\n", "H.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have $H(\\mathbf{k})=H(\\mathbf{1})=H(-\\mathbf{k})=H(-\\mathbf{1})=\\mathbf{k}$:" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([H(K) == K, H(One) == K, H(minusK) == K, \n", " H(minusOne) == K])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and $H(\\mathbf{i})=H(\\mathbf{j})=-\\mathbf{k}$:" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([H(I) == minusK, H(J) == minusK])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us consider the expression of $H$ in stereographic coordinates:" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(-4*(x^2*y + y^3 + y*z^2 - 2*x*z - y)/(x^2 + y^2 + z^2 + 1)^2,\n", " 4*(x^3 + x*y^2 + x*z^2 + 2*y*z - x)/(x^2 + y^2 + z^2 + 1)^2,\n", " (x^4 + 2*x^2*y^2 + y^4 + 2*x^2*z^2 + 2*y^2*z^2 + z^4 - 6*x^2 - 6*y^2 + 2*z^2 + 1)/(x^2 + y^2 + z^2 + 1)^2)" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Hx, Hy, Hz = H.expr(stereoN, stereoN)\n", "(Hx.factor(), Hy.factor(), Hz.factor())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(Hx^2 + Hy^2 + Hz^2).simplify_full()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "which shows that the codomain of $H$ lies in the 2-sphere of equation $x^2+y^2+z^2=1$ in stereographic coordinates. This is not surprising since (i) the equation of the 2-sphere of\n", "unit imaginary quaternions, $\\Phi(\\mathbb{S}^3)\\cap \\operatorname{Im}\\mathbb{H}$, is $T=0$ and $X^2+Y^2+Z^2=1$ and (ii) for \n", "$T=0$, we have $x=X$, $y=Y$ and $z=Z$. \n", "Let us construct this 2-sphere as a manifold by itself, which we call the **base 2-sphere**. This will be the codomain of the Hopf map. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The base 2-sphere (unit imaginary quaternions)" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2-dimensional differentiable manifold S^2\n" ] } ], "source": [ "S2 = Manifold(2, 'S^2', latex_name=r'\\mathbb{S}^2')\n", "print(S2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As for $\\mathbb{S}^3$, we introduce on $\\mathbb{S}^2$ two complementary stereographic coordinate systems:" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [], "source": [ "U2 = S2.open_subset('U_2')\n", "V2 = S2.open_subset('V_2')\n", "S2.declare_union(U2, V2)" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (U_2, (x2, y2))" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoN2. = U2.chart(\"x2:x_2 y2:y_2\")\n", "stereoN2" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (V_2, (xp2, yp2))" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS2. = V2.chart(r\"xp2:{x'}_2 yp2:{y'}_2\")\n", "stereoS2" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "xp2 = x2/(x2^2 + y2^2)\n", "yp2 = y2/(x2^2 + y2^2)" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoN_to_S2 = stereoN2.transition_map(stereoS2, \n", " (x2/(x2^2+y2^2), y2/(x2^2+y2^2)), \n", " intersection_name='W_2',\n", " restrictions1= x2^2+y2^2!=0, \n", " restrictions2= xp2^2+xp2^2!=0)\n", "stereoN_to_S2.display()" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "x2 = xp2/(xp2^2 + yp2^2)\n", "y2 = yp2/(xp2^2 + yp2^2)" ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stereoS_to_N2 = stereoN_to_S2.inverse()\n", "stereoS_to_N2.display()" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [], "source": [ "W2 = U2.intersection(V2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We embed the base 2-sphere $\\mathbb{S}^2$ in $\\mathbb{S}^3$ by considering that the North pole defining the above stereographic coordinates is $\\mathbf{k}$, i.e. the point \n", "$(x,y,z)=(0,0,1)$ in $\\mathbb{S}^3$:" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi2: S^2 --> S^3\n", "on U_2: (x2, y2) |--> (x, y, z) = (2*x2/(x2^2 + y2^2 + 1), 2*y2/(x2^2 + y2^2 + 1), (x2^2 + y2^2 - 1)/(x2^2 + y2^2 + 1))\n", "on V_2: (xp2, yp2) |--> (x, y, z) = (2*xp2/(xp2^2 + yp2^2 + 1), 2*yp2/(xp2^2 + yp2^2 + 1), -(xp2^2 + yp2^2 - 1)/(xp2^2 + yp2^2 + 1))" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi2 = S2.diff_map(S3, {(stereoN2, stereoN): \n", " [2*x2/(1+x2^2+y2^2), \n", " 2*y2/(1+x2^2+y2^2),\n", " (x2^2+y2^2-1)/(1+x2^2+y2^2)],\n", " (stereoS2, stereoN): \n", " [2*xp2/(1+xp2^2+yp2^2), \n", " 2*yp2/(1+xp2^2+yp2^2),\n", " (1-xp2^2-yp2^2)/(1+xp2^2+yp2^2)]},\n", " name='Phi2', latex_name=r'\\Phi_2')\n", "Phi2.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The unit imaginary quaternions $\\mathbf{i}$, $\\mathbf{j}$, $\\mathbf{k}$ and $-\\mathbf{k}$ as elements of the base 2-sphere:" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [], "source": [ "I2 = S2((1,0), chart=stereoN2)\n", "J2 = S2((0,1), chart=stereoN2)\n", "K2 = S2((0,0), chart=stereoS2)\n", "minusK2 = S2((0,0), chart=stereoN2)" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([Phi2(I2) == I, Phi2(J2) == J,\n", " Phi2(K2) == K, Phi2(minusK2) == minusK])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Spherical coordinates on $\\mathbb{S}^2$\n", "\n", "We introduce spherical coordinates $(\\theta_2,\\phi_2)$ on the base 2-sphere in the standard way (cf. the [2-sphere worksheet](http://nbviewer.jupyter.org/github/sagemanifolds/SageManifolds/blob/master/Worksheets/v1.0/SM_sphere_S2.ipynb)):" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [], "source": [ "A2 = W2.open_subset('A_2', \n", " coord_def={stereoN2.restrict(W2): (y2!=0, x2<0), \n", " stereoS2.restrict(W2): (yp2!=0, xp2<0)})\n", "spher2. = A2.chart(r'th2:(0,pi):\\theta_2 ph2:(0,2*pi):\\phi_2')\n", "spher2_to_stereoN2 = spher2.transition_map(stereoN2.restrict(A2), \n", " (sin(th2)*cos(ph2)/(1-cos(th2)),\n", " sin(th2)*sin(ph2)/(1-cos(th2))))\n", "spher2_to_stereoN2.set_inverse(2*atan(1/sqrt(x2^2+y2^2)), \n", " atan2(-y2,-x2)+pi)\n", "spher2_to_stereoS2 = stereoN_to_S2.restrict(A2) * spher2_to_stereoN2\n", "stereoS2_to_spher2 = spher2_to_stereoN2.inverse() * \\\n", " stereoN_to_S2.inverse().restrict(A2)" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (A_2, (x2, y2)), Chart (A_2, (xp2, yp2)), Chart (A_2, (th2, ph2))]" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A2.atlas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Projectors $\\mathbb{S}^3 \\to \\mathbb{S}^2$\n", "\n", "Let $W_{z\\not=1}$ denote the subset of $W\\subset\\mathbb{S}^3$ defined by $z\\not=1$:" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [], "source": [ "Wz1 = W.open_subset('Wz1', latex_name=r'W_{z\\not=1}', \n", " coord_def={stereoN.restrict(W): z!=1})" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([I in Wz1, J in Wz1, minusK in Wz1,\n", " K not in Wz1, One not in Wz1, minusOne not in Wz1])" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "P_2^N: Wz1 --> U_2\n", " (x, y, z) |--> (x2, y2) = (-x/(z - 1), -y/(z - 1))" ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Proj2N = Wz1.diff_map(U2, {(stereoN.restrict(Wz1), stereoN2): \n", " [x/(1-z), y/(1-z)]},\n", " name='P_2^N', latex_name=r'\\Pi_2^N')\n", "Proj2N.display()" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = U2((a,b), chart=stereoN2)\n", "Proj2N(Phi2(p)) == p" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assume(cos(a)!=1, cos(a)!=0)\n", "p = U((sin(a)*cos(b), sin(a)*sin(b), cos(a)), chart=stereoN)\n", "Phi2(Proj2N(p)) == p" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [], "source": [ "forget(cos(a)!=1, cos(a)!=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let $W_{z\\not=-1}$ denote the subset of $W\\subset\\mathbb{S}^3$ defined by $z\\not=-1$:" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [], "source": [ "Wzm1 = W.open_subset('Wzm1', latex_name=r'W_{z\\not=-1}', \n", " coord_def={stereoN.restrict(W): z!=-1})" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([I in Wzm1, J in Wzm1, K in Wzm1,\n", " minusK not in Wzm1, One not in Wzm1, \n", " minusOne not in Wzm1])" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "P_2^S: Wzm1 --> V_2\n", " (x, y, z) |--> (xp2, yp2) = (x/(z + 1), y/(z + 1))" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Proj2S = Wzm1.diff_map(V2, {(stereoN.restrict(Wzm1), stereoS2): \n", " [x/(1+z), y/(1+z)]},\n", " name='P_2^S', latex_name=r'\\Pi_2^S')\n", "Proj2S.display()" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = V2((a,b), chart=stereoS2)\n", "Proj2S(Phi2(p)) == p" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assume(cos(a)!=-1, cos(a)!=0)\n", "p = U((sin(a)*cos(b), sin(a)*sin(b), cos(a)), chart=stereoN)\n", "Phi2(Proj2S(p)) == p" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [], "source": [ "forget(cos(a)!=-1, cos(a)!=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Hopf map\n", "\n", "We are now in position to define the Hopf map as a map $\\mathbb{S}^3 \\to \\mathbb{S}^2$.\n", "To give its coordinate expressions, we have to consider that $\\mathbb{S}^3$ is covered by\n", "two charts, `stereoN` = $(U,(x,y,z))$ and `stereoS` = $(V,(x',y',z'))$, and $\\mathbb{S}^2$ is covered by two charts: \n", "- `stereoN2` = $(U_2,(x_2,y_2))$, the domain of which contains \n", " all points of $\\mathbb{S}^2$ but $\\mathbf{k}$\n", "- `stereoS2` = $(V_2,(x'_2,y'_2))$, the domain of which contains \n", " all points of $\\mathbb{S}^2$ but $-\\mathbf{k}$.\n", "\n", "First we search for all the points $p\\in U$ such that $H(p)\\in U_2$, i.e. such that\n", "$H(p)\\not=\\mathbf{k}$, or equivalently, $z(H(p))\\not= 1$, or again $H(p)\\in W_{z\\not=1}$.\n", "On the chart $(U,(x,y,z))$, the expression of $z(H(p))$ is " ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(x^4 + y^4 + z^4 + 2*(x^2 - 3)*y^2 + 2*(x^2 + y^2 + 1)*z^2 - 6*x^2 + 1)/(x^4 + y^4 + z^4 + 2*(x^2 + 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 + 2*x^2 + 1)" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Hx, Hy, Hz = H.expr(stereoN, stereoN)\n", "Hz" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The condition $z(H(p))\\not=1$ is" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-8*x^2 - 8*y^2 != 0" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Hz.numerator() - Hz.denominator() != 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "which is equivalent to $x^2+y^2 \\not= 0$. We define thus the subdomain\n", "$D_1 = U \\setminus (H^{-1}(\\mathbf{k})\\cap U)$ as" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [], "source": [ "D1 = U.open_subset('D_1', coord_def=({stereoN: x^2+y^2!=0}))\n", "stereoN_D1 = stereoN.restrict(D1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By construction, the restriction of $H$ to $D_1$ has $W_{z\\not=1}$ as codomain and we declare the Hopf map on $D_1$ by considering the image points as points of $\\mathbb{S}^2$ via $\\Pi_2^N$:" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "D_1 --> U_2\n", " (x, y, z) |--> (x2, y2) = (-1/2*(y^3 + y*z^2 + (x^2 - 1)*y - 2*x*z)/(x^2 + y^2), 1/2*(x^3 + x*y^2 + x*z^2 + 2*y*z - x)/(x^2 + y^2))" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hD1 = Proj2N * H.restrict(D1, subcodomain=Wz1)\n", "hD1.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have $\\mathbf{i}\\in D_1$ and $\\mathbf{j}\\in D_1$; we can check that \n", "$h(\\mathbf{i}) = h(\\mathbf{j}) = -\\mathbf{k}$:" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([hD1(I) == minusK2, hD1(J) == minusK2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us now consider the points $p\\in U$ such that $H(p)\\in V_2$, i.e. such that\n", "$H(p)\\not=-\\mathbf{k}$, or equivalently, $z(H(p))\\not= -1$, or again $H(p)\\in W_{z\\not=-1}$.\n", "The condition $z(H(p))\\not= -1$ is equivalent to $s\\not=0$ with" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "x^4 + y^4 + z^4 + 2*(x^2 - 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 - 2*x^2 + 1" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = ((Hz.numerator() + Hz.denominator())/2).simplify_full()\n", "s" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "4*z^2" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(s-(x^2+y^2+z^2-1)^2).simplify_full()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "the condition $s\\not =0$ is equivalent to " ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(x^2 + y^2 + z^2 - 1)^2 + 4*z^2 != 0" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(x^2+y^2+z^2-1)^2 + 4*z^2 != 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "i.e. to ($x^2+y^2\\not= 1$ or $z\\not= 0$). Hence we introduce the subset \n", "$D_2 = U \\setminus (H^{-1}(-\\mathbf{k})\\cap U)$ by" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [], "source": [ "D2 = U.open_subset('D_2', coord_def=({stereoN: (x^2+y^2!=1, z!=0)}))\n", "stereoN_D2 = stereoN.restrict(D2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By construction, the restriction of $H$ to $D_2$ has $W_{z\\not=-1}$ as codomain and we declare the Hopf map on $D_2$ by considering the image points as points of $\\mathbb{S}^2$ via $\\Pi_2^S$:" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "D_2 --> V_2\n", " (x, y, z) |--> (xp2, yp2) = (-2*(y^3 + y*z^2 + (x^2 - 1)*y - 2*x*z)/(x^4 + y^4 + z^4 + 2*(x^2 - 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 - 2*x^2 + 1), 2*(x^3 + x*y^2 + x*z^2 + 2*y*z - x)/(x^4 + y^4 + z^4 + 2*(x^2 - 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 - 2*x^2 + 1))" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hD2 = Proj2S * H.restrict(D2, subcodomain=Wzm1)\n", "hD2.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have $\\mathbf{k}\\in D_2$, $-\\mathbf{k}\\in D_2$ and $\\mathbf{1}\\in D_2$; we can check that \n", "$h(\\mathbf{k}) = h(-\\mathbf{k}) = h(\\mathbf{1}) = \\mathbf{k}$:" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([hD2(K) == K2, hD2(minusK) == K2, hD2(One) == K2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since $H^{-1}(\\mathbf{k})\\cap H^{-1}(-\\mathbf{k})=\\emptyset$, we have $U=D_1\\cup D_2$:" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [], "source": [ "U.declare_union(D1, D2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly let us consider the points $p\\in V$ such that $H(p)\\in U_2$, i.e. such that\n", "$H(p)\\not=\\mathbf{k}$, or equivalently, $z(H(p))\\not= 1$, or again $H(p)\\in W_{z\\not=1}$.\n", "On the chart $(V,(x',y',z'))$, the expression of $z(H(p))$ is " ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(xp^4 + yp^4 + zp^4 + 2*(xp^2 - 3)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 - 6*xp^2 + 1)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 + 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 + 2*xp^2 + 1)" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Hx, Hy, Hz = H.expr(stereoS, stereoN)\n", "Hz" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The condition $z(H(p))\\not=1$ is" ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-8*xp^2 - 8*yp^2 != 0" ] }, "execution_count": 128, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Hz.numerator() - Hz.denominator() != 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "which is equivalent to ${x'}^2+{y'}^2 \\not= 0$. We define thus the subset\n", "$D_3 = V \\setminus (H^{-1}(\\mathbf{k})\\cap V)$ as" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [], "source": [ "D3 = V.open_subset('D_3', coord_def=({stereoS: xp^2+yp^2!=0}))\n", "stereoS_D3 = stereoS.restrict(D3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By construction, the restriction of $H$ to $D_2$ has $W_{z\\not=1}$ as codomain and we declare the Hopf map on $D_3$ by considering the image points as points of $\\mathbb{S}^2$ via $\\Pi_2^N$:" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "D_3 --> U_2\n", " (xp, yp, zp) |--> (x2, y2) = (1/2*(yp^3 + yp*zp^2 + (xp^2 - 1)*yp + 2*xp*zp)/(xp^2 + yp^2), -1/2*(xp^3 + xp*yp^2 + xp*zp^2 - 2*yp*zp - xp)/(xp^2 + yp^2))" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hD3 = Proj2N * H.restrict(D3, subcodomain=Wz1)\n", "hD3.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have $\\mathbf{i}\\in D_3$ and $\\mathbf{j}\\in D_3$; we can check that \n", "$h(\\mathbf{i}) = h(\\mathbf{j}) = -\\mathbf{k}$:" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([hD3(I) == minusK2, hD3(J) == minusK2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, let us consider the points $p\\in V$ such that $H(p)\\in V_2$, i.e. such that\n", "$H(p)\\not=-\\mathbf{k}$, or equivalently, $z(H(p))\\not= -1$, or again $H(p)\\in W_{z\\not=-1}$.\n", "The condition $z(H(p))\\not= -1$ is equivalent to $s\\not=0$ with" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "xp^4 + yp^4 + zp^4 + 2*(xp^2 - 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 - 2*xp^2 + 1" ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = ((Hz.numerator() + Hz.denominator())/2).simplify_full()\n", "s" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since " ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "4*zp^2" ] }, "execution_count": 133, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(s-(xp^2+yp^2+zp^2-1)^2).simplify_full()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "the condition $s\\not=0$ is equivalent to" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(xp^2 + yp^2 + zp^2 - 1)^2 + 4*zp^2 == 0" ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(xp^2+yp^2+zp^2-1)^2 + 4*zp^2 == 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "i.e. to (${x'}^2+{y'}^2\\not= 1$ or $z'\\not= 0$). Hence we introduce the subset \n", "$D_4 = V \\setminus (H^{-1}(-\\mathbf{k})\\cap V)$ by" ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [], "source": [ "D4 = V.open_subset('D_4', coord_def=({stereoS: (xp^2+yp^2!=1, zp!=0)}))\n", "stereoS_D4 = stereoS.restrict(D4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By construction, the restriction of $H$ to $D_4$ has $W_{z\\not=-1}$ as codomain and we declare the Hopf map on $D_4$ by considering the image points as points of $\\mathbb{S}^2$ via $\\Pi_2^S$:" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "D_4 --> V_2\n", " (xp, yp, zp) |--> (xp2, yp2) = (2*(yp^3 + yp*zp^2 + (xp^2 - 1)*yp + 2*xp*zp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 - 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 - 2*xp^2 + 1), -2*(xp^3 + xp*yp^2 + xp*zp^2 - 2*yp*zp - xp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 - 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 - 2*xp^2 + 1))" ] }, "execution_count": 136, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hD4 = Proj2S * H.restrict(D4, subcodomain=Wzm1)\n", "hD4.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have $-\\mathbf{1}\\in D_4$ and we can check that \n", "$h(-\\mathbf{1}) = \\mathbf{k}$:" ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 137, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hD4(minusOne) == K2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since $H^{-1}(\\mathbf{k})\\cap H^{-1}(-\\mathbf{k})=\\emptyset$, we have $V=D_3\\cup D_4$:" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [], "source": [ "V.declare_union(D3, D4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Declaration of the Hopf map\n", "\n", "We construct the Hopf map $h:\\mathbb{S}^3\\to \\mathbb{S}^2$ from the coordinate expressions of its restriction to $D_1$, $D_2$, $D_3$ and $D_4$, as obtained above:" ] }, { "cell_type": "code", "execution_count": 139, "metadata": {}, "outputs": [], "source": [ "h = S3.diff_map(S2, name='h')\n", "h.add_expression(stereoN_D1, stereoN2, hD1.expr(stereoN_D1, stereoN2))\n", "h.add_expression(stereoN_D2, stereoS2, hD2.expr(stereoN_D2, stereoS2))\n", "h.add_expression(stereoS_D3, stereoN2, hD3.expr(stereoS_D3, stereoN2))\n", "h.add_expression(stereoS_D4, stereoS2, hD4.expr(stereoS_D4, stereoS2))" ] }, { "cell_type": "code", "execution_count": 140, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: S^3 --> S^2\n", "on D_1: (x, y, z) |--> (x2, y2) = (-1/2*(y^3 + y*z^2 + (x^2 - 1)*y - 2*x*z)/(x^2 + y^2), 1/2*(x^3 + x*y^2 + x*z^2 + 2*y*z - x)/(x^2 + y^2))" ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.display(stereoN_D1, stereoN2)" ] }, { "cell_type": "code", "execution_count": 141, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: S^3 --> S^2\n", "on D_2: (x, y, z) |--> (xp2, yp2) = (-2*(y^3 + y*z^2 + (x^2 - 1)*y - 2*x*z)/(x^4 + y^4 + z^4 + 2*(x^2 - 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 - 2*x^2 + 1), 2*(x^3 + x*y^2 + x*z^2 + 2*y*z - x)/(x^4 + y^4 + z^4 + 2*(x^2 - 1)*y^2 + 2*(x^2 + y^2 + 1)*z^2 - 2*x^2 + 1))" ] }, "execution_count": 141, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.display(stereoN_D2, stereoS2)" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: S^3 --> S^2\n", "on D_3: (xp, yp, zp) |--> (x2, y2) = (1/2*(yp^3 + yp*zp^2 + (xp^2 - 1)*yp + 2*xp*zp)/(xp^2 + yp^2), -1/2*(xp^3 + xp*yp^2 + xp*zp^2 - 2*yp*zp - xp)/(xp^2 + yp^2))" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.display(stereoS_D3, stereoN2)" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: S^3 --> S^2\n", "on D_4: (xp, yp, zp) |--> (xp2, yp2) = (2*(yp^3 + yp*zp^2 + (xp^2 - 1)*yp + 2*xp*zp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 - 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 - 2*xp^2 + 1), -2*(xp^3 + xp*yp^2 + xp*zp^2 - 2*yp*zp - xp)/(xp^4 + yp^4 + zp^4 + 2*(xp^2 - 1)*yp^2 + 2*(xp^2 + yp^2 + 1)*zp^2 - 2*xp^2 + 1))" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.display(stereoS_D4, stereoS2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us check that $h(\\mathbf{1})=h(-\\mathbf{1})=h(\\mathbf{k})=h(-\\mathbf{k})=\\mathbf{k}$\n", "and $h(\\mathbf{i})=h(-\\mathbf{i})=h(\\mathbf{j})=h(-\\mathbf{j})=-\\mathbf{k}$:" ] }, { "cell_type": "code", "execution_count": 144, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 144, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all([h(One)==K2, h(minusOne)==K2, \n", " h(K)==K2, h(minusK)==K2,\n", " h(I)==minusK2, h(minusI)==minusK2,\n", " h(J)==minusK2, h(minusJ)==minusK2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Expression of the Hopf map in spherical coordinates" ] }, { "cell_type": "code", "execution_count": 145, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (A_inter_D_1, (ch, th, ph))" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D1A = A.intersection(D1)\n", "spherD1A = spher.restrict(D1A)\n", "spherD1A" ] }, { "cell_type": "code", "execution_count": 146, "metadata": {}, "outputs": [], "source": [ "stereoND1A = stereoN_D1.restrict(D1A)\n", "stereoND1A.add_restrictions((y!=0, x<0))" ] }, { "cell_type": "code", "execution_count": 147, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (A_inter_D_1, (ch, th, ph)), Chart (A_inter_D_1, (x, y, z))]" ] }, "execution_count": 147, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D1A.atlas()" ] }, { "cell_type": "code", "execution_count": 148, "metadata": {}, "outputs": [], "source": [ "spher_to_stereoND1A = spher_to_stereoN.restrict(D1A)\n", "stereoN_to_spherD1A = spher_to_stereoN.inverse().restrict(D1A)\n", "spher_to_stereoSD1A = spher_to_stereoS.restrict(D1A)\n", "stereoS_to_spherD1A = stereoS_to_spher.restrict(D1A)" ] }, { "cell_type": "code", "execution_count": 149, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: S^3 --> S^2\n", "on A_inter_D_1: (ch, th, ph) |--> (x2, y2) = ((cos(ph)*cos(th)*sin(ch) + cos(ch)*sin(ph))/(sin(ch)*sin(th)), ((cos(ch) + 1)*cos(th)*sin(ch)*sin(ph) + (sin(ch)^2 - cos(ch) - 1)*cos(ph))/((cos(ch) + 1)*sin(ch)*sin(th)))" ] }, "execution_count": 149, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.expr(stereoND1A, stereoN2) # necessary\n", "h.display(spherD1A, stereoN2)" ] }, { "cell_type": "code", "execution_count": 150, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: A_inter_D_1 --> A_2\n", " (ch, th, ph) |--> (th2, ph2) = (2*arctan(sin(ch)*sin(th)/(sqrt(sin(ch)*sin(th) + 1)*sqrt(-sin(ch)*sin(th) + 1))), pi - arctan2((cos(th)*sin(ch)*sin(ph) - cos(ch)*cos(ph))/(sin(ch)*sin(th)), -(cos(ph)*cos(th)*sin(ch) + cos(ch)*sin(ph))/(sin(ch)*sin(th))))" ] }, "execution_count": 150, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hA = h.restrict(D1A, subcodomain=A2)\n", "hA.display(spherD1A, spher2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hopf coordinates\n", "\n", "The Hopf coordinates are coordinates $(\\eta,\\alpha,\\beta)$ on $\\mathbb{S}^3$ which are related to the Cartesian coordinates on $\\mathbb{R}^4$ (via the embedding $\\Phi$) by\n", "$$\n", "\\begin{equation} \\tag{1}\n", " \\left\\{ \\begin{array}{lcl}\n", " T & = &\\cos\\eta \\sin\\alpha \\\\\n", " X & = &\\sin\\eta \\cos(\\alpha+\\beta) \\\\ \n", " Y & = &\\sin\\eta \\sin(\\alpha+\\beta) \\\\\n", " Z & = &\\cos\\eta \\cos\\alpha \n", " \\end{array} \\right . \n", "\\end{equation}\n", "$$\n", "and whose range is $\\eta\\in(0,\\pi/2)$, $\\alpha\\in (0, 2\\pi)$, $\\beta\\in (0, 2\\pi)$. They are\n", "defined in $D_1$ minus the points for which $X^2+Y^2+T^2=1$ (limit $\\alpha\\rightarrow 0$\n", "or $2\\pi$) or $TX-YZ=0$ (limit $\\beta\\rightarrow 0$ or $2\\pi$). In terms of the stereograĥic coordinates, this corresponds to $x^2+y^2+z^2=1$ or to $x(1-x^2-y^2-z^2)-2yz=0$. Hence we declare the domain $B$ of Hopf coordinates as " ] }, { "cell_type": "code", "execution_count": 151, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Open subset B of the 3-dimensional differentiable manifold S^3\n" ] } ], "source": [ "B = D1.open_subset('B', coord_def={stereoN_D1: \n", " [x^2+y^2+z^2!=1, \n", " x*(1-x^2-y^2-z^2)-2*y*z!=0]})\n", "print(B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The limiting surface $x(1-x^2-y^2-z^2)-2yz=0$, where $\\beta\\rightarrow 0$ or $2\\pi$:" ] }, { "cell_type": "code", "execution_count": 152, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "beta_zero = implicit_plot3d(x*(1-x^2-y^2-z^2)-2*y*z==0, \n", " (x,-3,3), (y,-3,3), (z,-3,3))\n", "show(beta_zero, viewer=viewer3D, online=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the Hopf coordinates and provide the transition map to the stereographic coordinates $(x,y,z)$:" ] }, { "cell_type": "code", "execution_count": 153, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (B, (eta, alpha, beta))" ] }, "execution_count": 153, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Hcoord. = B.chart(r\"eta:(0,pi/2):\\eta alpha:(0,2*pi):\\alpha beta:(0,2*pi):\\beta\")\n", "Hcoord" ] }, { "cell_type": "code", "execution_count": 154, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "x = cos(alpha + beta)*sin(eta)/(cos(eta)*sin(alpha) + 1)\n", "y = sin(alpha + beta)*sin(eta)/(cos(eta)*sin(alpha) + 1)\n", "z = cos(alpha)*cos(eta)/(cos(eta)*sin(alpha) + 1)" ] }, "execution_count": 154, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Hcoord_to_stereoN = Hcoord.transition_map(\n", " stereoN.restrict(B),\n", " (sin(eta)*cos(alp+bet)/(1+cos(eta)*sin(alp)),\n", " sin(eta)*sin(alp+bet)/(1+cos(eta)*sin(alp)),\n", " cos(eta)*cos(alp)/(1+cos(eta)*sin(alp))))\n", "Hcoord_to_stereoN.display()" ] }, { "cell_type": "code", "execution_count": 155, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Check of the inverse coordinate transformation:\n", " eta == arcsin((cos(eta)*sin(alpha) + 1)*sqrt(cos(eta) + 1)*sqrt(-cos(eta) + 1)/abs(cos(eta)*sin(alpha) + 1))\n", " alpha == pi - arctan2(2*cos(eta)*sin(alpha)/(cos(eta)*sin(alpha) + 1), -2*cos(alpha)*cos(eta)/(cos(eta)*sin(alpha) + 1))\n", " beta == arctan2(2*cos(eta)*sin(alpha)/(cos(eta)*sin(alpha) + 1), -2*cos(alpha)*cos(eta)/(cos(eta)*sin(alpha) + 1)) - arctan2((cos(beta)*sin(alpha) + cos(alpha)*sin(beta))*sin(eta)/(cos(eta)*sin(alpha) + 1), -(cos(alpha)*cos(beta) - sin(alpha)*sin(beta))*sin(eta)/(cos(eta)*sin(alpha) + 1))\n", " x == x\n", " y == y\n", " z == z\n" ] } ], "source": [ "Hcoord_to_stereoN.set_inverse(asin(2*sqrt(x^2+y^2)/(1+x^2+y^2+z^2)),\n", " atan2(x^2+y^2+z^2-1, -2*z) + pi,\n", " atan2(-y,-x) - atan2(x^2+y^2+z^2-1, -2*z),\n", " verbose=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the test of the inverse coordinate transformation is passed, modulo some lack of trigonometric simplifications." ] }, { "cell_type": "code", "execution_count": 156, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "eta = arcsin(2*sqrt(x^2 + y^2)/(x^2 + y^2 + z^2 + 1))\n", "alpha = pi + arctan2(x^2 + y^2 + z^2 - 1, -2*z)\n", "beta = -arctan2(x^2 + y^2 + z^2 - 1, -2*z) + arctan2(-y, -x)" ] }, "execution_count": 156, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Hcoord_to_stereoN.inverse().display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Embedding $\\Phi$ in terms of Hopf coordinates" ] }, { "cell_type": "code", "execution_count": 157, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi: B --> R^4\n", " (x, y, z) |--> (T, X, Y, Z) = (-(x^2 + y^2 + z^2 - 1)/(x^2 + y^2 + z^2 + 1), 2*x/(x^2 + y^2 + z^2 + 1), 2*y/(x^2 + y^2 + z^2 + 1), 2*z/(x^2 + y^2 + z^2 + 1))\n", " (eta, alpha, beta) |--> (T, X, Y, Z) = (cos(eta)*sin(alpha), (cos(alpha)*cos(beta) - sin(alpha)*sin(beta))*sin(eta), (cos(beta)*sin(alpha) + cos(alpha)*sin(beta))*sin(eta), cos(alpha)*cos(eta))" ] }, "execution_count": 157, "metadata": {}, "output_type": "execute_result" } ], "source": [ "PhiB = Phi.restrict(B)\n", "PhiB.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The expression of $\\Phi$ in terms of the Hopf coordinates can be simplified by means of the method `trig_reduce`:" ] }, { "cell_type": "code", "execution_count": 158, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "cos(alpha + beta)*sin(eta)" ] }, "execution_count": 158, "metadata": {}, "output_type": "execute_result" } ], "source": [ "PhiB.expression(Hcoord, X4)[1].factor().trig_reduce()" ] }, { "cell_type": "code", "execution_count": 159, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "sin(alpha + beta)*sin(eta)" ] }, "execution_count": 159, "metadata": {}, "output_type": "execute_result" } ], "source": [ "PhiB.expression(Hcoord, X4)[2].factor().trig_reduce()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hence the recover the expression (1) above." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Expression of the Hopf map in terms of Hopf coordinates\n", "\n", "The expression of $h$ in terms of stereographic coordinates on $B$ is" ] }, { "cell_type": "code", "execution_count": 160, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: S^3 --> S^2\n", "on B: (x, y, z) |--> (x2, y2) = (-1/2*(y^3 + y*z^2 + (x^2 - 1)*y - 2*x*z)/(x^2 + y^2), 1/2*(x^3 + x*y^2 + x*z^2 + 2*y*z - x)/(x^2 + y^2))" ] }, "execution_count": 160, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.display(stereoN.restrict(B), stereoN2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us ask for the expression in terms of Hoopf coordinates:" ] }, { "cell_type": "code", "execution_count": 161, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: S^3 --> S^2\n", "on B: (eta, alpha, beta) |--> (x2, y2) = (cos(beta)*cos(eta)/sin(eta), cos(eta)*sin(beta)/sin(eta))" ] }, "execution_count": 161, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.display(Hcoord, stereoN2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We notice that the image point in $\\mathbb{S}^2$ is independent of the value of $\\alpha$. \n", "\n", "The expression of $h$ is even simpler in terms of spherical coordinates on $\\mathbb{S}^2$:" ] }, { "cell_type": "code", "execution_count": 162, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: B --> A_2\n", " (eta, alpha, beta) |--> (th2, ph2) = (2*arctan(sin(eta)/cos(eta)), pi - arctan2(cos(eta)*sin(beta)/sin(eta), -cos(beta)*cos(eta)/sin(eta)))" ] }, "execution_count": 162, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hB = h.restrict(B, subcodomain=A2)\n", "hB.display(Hcoord, spher2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are facing some lack of simplification: \n", "\n", "- $\\operatorname{atan}(\\sin\\eta/\\cos\\eta)$ should simplify to $\\eta$\n", "- the `atan2` function should simplify to $\\operatorname{atan2}(\\sin\\beta,-\\cos\\beta) = \\pi-\\beta$, so that $\\phi_2=\\beta$\n", " \n", "Hence the right-hand side of the above formula simplifies to $(\\theta_2,\\phi_2)=(2\\eta,\\beta)$. We enforce it by the method `add_expression`:" ] }, { "cell_type": "code", "execution_count": 163, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: B --> A_2\n", " (eta, alpha, beta) |--> (th2, ph2) = (2*eta, beta)" ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hB.add_expression(Hcoord, spher2, (2*eta, bet))\n", "hB.display(Hcoord, spher2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The expression of the Hopf map in terms of the Hopf coordinates is thus very simple, which justifies the name given to these coordinates.\n", "We also recover a very simple expression when asking to express $C\\circ \\Phi$ (from which $h$ has been constructed) in terms of the Hopf coordinates: " ] }, { "cell_type": "code", "execution_count": 164, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "B --> R^4\n", " (eta, alpha, beta) |--> (T, X, Y, Z) = (0, 2*cos(beta)*cos(eta)*sin(eta), 2*cos(eta)*sin(beta)*sin(eta), 2*cos(eta)^2 - 1)" ] }, "execution_count": 164, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CS.restrict(B).display(Hcoord, X4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The right-hand side should simplify to\n", "$$(T,X,Y,Z) = (0, \\sin(2\\eta)\\cos\\beta, \\sin(2\\eta)\\sin\\beta, \\cos(2\\eta))$$\n", "We can (partially) obtain this by means of `trig_reduce()`:" ] }, { "cell_type": "code", "execution_count": 165, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "cos(beta)*sin(2*eta)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "sin(beta)*sin(2*eta)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "2*cos(eta)^2 - 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for cp in CS.restrict(B).expr(Hcoord, X4):\n", " show(cp.trig_reduce().simplify_full())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Hopf map as a fibration of $\\mathbb{S}^3$\n", "\n", "The above results show that the image by $h$ of a point of Hopf coordinates $(\\eta,\\alpha,\\beta)$ is independent of $\\alpha$. Since $h$ is surjective, this means that for any point \n", "$p\\in\\mathbb{S}^2$, the preimage set $h^{-1}(p)$ corresponds to a fixed value of $(\\eta,\\beta)$, with $\\alpha$ taking all values in the range $(0,2\\pi)$. From Eq. (1), the projection of $h^{-1}(p)$ in the $(T,X)$-plane is a circle of radius $\\cos\\eta$ centered on $(0,0)$, while its projection in the $(X,Y)$-plane is a circle of radius $\\sin\\eta$ centered on $(0,0)$. We conclude that $h^{-1}(p)$ is a great circle of $\\mathbb{S}^3$, sometimes called a *Hopf circle*. \n", "\n", "It follows that $\\mathbb{S}^3$ has the structure of a **fiber bundle** over $\\mathbb{S}^2$ with \n", "$\\mathbb{S}^1$ fibers. The Hopf map $h:\\mathbb{S}^3\\to\\mathbb{S}^2$ is then nothing but the projection map of this bundle." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can get a first view of the fibers by plotting the Hopf coordinates in terms of the stereographic ones, for a fixed value of $\\eta$ ($\\eta=\\pi/4$): the lines along which $\\alpha$ varies while $\\beta$ is kept fixed, hence the fibers $h^{-1}(p)$, are plotted in green. They are\n", "indeed circles (remember that stereographic projection preserves circles):" ] }, { "cell_type": "code", "execution_count": 166, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = Hcoord.plot(stereoN, \n", " fixed_coords={eta: pi/4},\n", " color={alp: 'green', bet: 'orange'},\n", " number_values=9, label_axes=False)\n", "show(graph, viewer=viewer3D, online=True, axes_labels=['x','y','z'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that all the green circles are linked.\n", "The same plot, but in terms of the coordinates $(X,Y,T)$ of $\\mathbb{R}^4$ via the embedding $\\Phi$:" ] }, { "cell_type": "code", "execution_count": 167, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = Hcoord.plot(X4, mapping=PhiB, ambient_coords=(X,Y,T), \n", " fixed_coords={eta: pi/4},\n", " color={alp: 'green', bet: 'orange'},\n", " number_values=9, label_axes=False)\n", "show(graph, viewer=viewer3D, online=True, axes_labels=['X','Y','T'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We may fix $\\beta$ instead of $\\eta$, in plotting the Hopf coordinates in terms of the stereographic ones. The fibers are still the green circles, the red lines being lines along which $\\eta$ varies at fixed $\\alpha$. Again, note that all the green circles are linked." ] }, { "cell_type": "code", "execution_count": 168, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = Hcoord.plot(stereoN, \n", " fixed_coords={bet: pi/2}, \n", " ranges={eta: (0.25, 1.5)},\n", " color={eta: 'red', alp: 'green'},\n", " number_values=9, plot_points=150, \n", " label_axes=False)\n", "show(graph, viewer=viewer3D, online=True, axes_labels=['x','y','z'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we vary the three coordinates $(\\eta,\\alpha,\\beta)$, we get the following plots, where $\\mathbb{S}^3$ appears as filled by the grid of Hoopf coordinates:" ] }, { "cell_type": "code", "execution_count": 169, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = Hcoord.plot(X4, mapping=PhiB, ambient_coords=(X,Y,Z), \n", " color={eta: 'red', alp: 'green', bet: 'orange'},\n", " number_values=7, label_axes=False)\n", "show(graph, viewer=viewer3D, online=True, axes_labels=['X','Y','Z'])" ] }, { "cell_type": "code", "execution_count": 170, "metadata": {}, "outputs": [], "source": [ "#graph = Hcoord.plot(X4, mapping=PhiB, ambient_coords=(X,Y,T), \n", "# color={eta: 'red', alp: 'green', bet: 'orange'},\n", "# number_values=7, label_axes=False)\n", "# show(graph, viewer=viewer3D, online=True, axes_labels=['X','Y','T'])" ] }, { "cell_type": "code", "execution_count": 171, "metadata": {}, "outputs": [], "source": [ "#graph = Hcoord.plot(X4, mapping=PhiB, ambient_coords=(X,Z,T), \n", "# color={eta: 'red', alp: 'green', bet: 'orange'},\n", "# number_values=7, label_axes=False)\n", "#show(graph, viewer=viewer3D, online=True, axes_labels=['X','Z','T'])" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Fibers of the Hopf fibration\n", "\n", "For a point $p\\in\\mathbb{S}^2$, identified by its spherical coordinates $(\\theta_2,\\phi_2)=(2\\eta,\\beta)$, the fiber $h^{-1}(p)$ can be seen as a curve in $\\mathbb{S}^3$:" ] }, { "cell_type": "code", "execution_count": 172, "metadata": {}, "outputs": [], "source": [ "R. = RealLine()\n", "def fiber(eta, bet):\n", " return S3.curve({Hcoord: (eta, t, bet)}, (t, 0, 2*pi))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For instance, the fiber above the point $(\\theta_2,\\phi_2)=(\\pi/3,\\pi/4)$ is " ] }, { "cell_type": "code", "execution_count": 173, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Curve in the 3-dimensional differentiable manifold S^3" ] }, "execution_count": 173, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F = fiber(pi/6, pi/4)\n", "F" ] }, { "cell_type": "code", "execution_count": 174, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 2*pi) --> S^3\n", " t |--> (x, y, z) = (1/2*(sqrt(2)*cos(t) - sqrt(2)*sin(t))/(sqrt(3)*sin(t) + 2), 1/2*(sqrt(2)*cos(t) + sqrt(2)*sin(t))/(sqrt(3)*sin(t) + 2), sqrt(3)*cos(t)/(sqrt(3)*sin(t) + 2))\n", " t |--> (eta, alpha, beta) = (1/6*pi, t, 1/4*pi)" ] }, "execution_count": 174, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F.display()" ] }, { "cell_type": "code", "execution_count": 175, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph_F = F.plot(chart=stereoN, color='green', plot_points=100)\n", "show(graph_F, viewer=viewer3D, online=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot of the fibers\n", "\n", "Let us plot the fibers for three values of $\\eta$: $\\eta=\\pi/6$ (turquoise), $\\eta=\\pi/4$ (gold)\n", "and $\\eta=5\\pi/12$ (red). For each value of $\\eta$, we note that the fibers fill a torus." ] }, { "cell_type": "code", "execution_count": 176, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph= Graphics()\n", "etas = {pi/6: ['turquoise', (0, 2*pi), 30], \n", " pi/4: ['gold', (0,2*pi), 30],\n", " 5*pi/12: ['red', (0, 2*pi), 30]}\n", "for eta_v, param in etas.items():\n", " color = param[0]\n", " beta_min, beta_max = param[1]\n", " nb = param[2]\n", " db = (beta_max - beta_min)/(nb-1)\n", " betas = [beta_min + db*k for k in range(nb)]\n", " for beta_v in betas:\n", " F = fiber(eta_v, beta_v)\n", " F.coord_expr(stereoN.restrict(B))\n", " graph += F.plot(chart=stereoN, color=color, plot_points=150,\n", " label_axes=None)\n", "show(graph, viewer=viewer3D, online=True)" ] }, { "cell_type": "code", "execution_count": 177, "metadata": {}, "outputs": [], "source": [ "#show(graph, viewer='tachyon', figsize=24, aspect_ratio=1, frame=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A \"top\" view of the fibers, obtained by projection to the $(x,y)$-plane (note that for clarity, we have reduced the number of fibers from 30 to 12):" ] }, { "cell_type": "code", "execution_count": 178, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 36 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph= Graphics()\n", "etas = {pi/6: ['turquoise', (0, 2*pi), 12], \n", " pi/4: ['gold', (0,2*pi), 12],\n", " 5*pi/12: ['red', (0, 2*pi), 12]}\n", "for eta_v, param in etas.items():\n", " color = param[0]\n", " beta_min, beta_max = param[1]\n", " nb = param[2]\n", " db = (beta_max - beta_min)/(nb-1)\n", " betas = [beta_min + db*k for k in range(nb)]\n", " for beta_v in betas:\n", " F = fiber(eta_v, beta_v)\n", " F.coord_expr(stereoN.restrict(B))\n", " graph += F.plot(chart=stereoN, ambient_coords=(x,y), \n", " color=color, plot_points=150)\n", "show(graph, aspect_ratio=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The same fibers, but viewed in $\\mathbb{R}^4$ (via the embedding $\\Phi$), in terms of the coordinates $(T,X,Z)$:" ] }, { "cell_type": "code", "execution_count": 179, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = Graphics()\n", "for eta_v, param in etas.items():\n", " color = param[0]\n", " beta_min, beta_max = param[1]\n", " nb = param[2]\n", " db = (beta_max - beta_min)/(nb-1)\n", " betas = [beta_min + db*k for k in range(nb)]\n", " for beta_v in betas:\n", " F = fiber(eta_v, beta_v)\n", " F.coord_expr(stereoN.restrict(B))\n", " graph += F.plot(chart=X4, ambient_coords=(X,Z,T), \n", " mapping=Phi, color=color, \n", " plot_points=200, label_axes=None)\n", "show(graph, viewer=viewer3D, online=True, axes_labels=['X', 'Z', 'T'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "or in terms of the coordinates $(X,Y,Z)$:" ] }, { "cell_type": "code", "execution_count": 180, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = Graphics()\n", "for eta_v, param in etas.items():\n", " color = param[0]\n", " beta_min, beta_max = param[1]\n", " nb = param[2]\n", " db = (beta_max - beta_min)/(nb-1)\n", " betas = [beta_min + db*k for k in range(nb)]\n", " for beta_v in betas:\n", " F = fiber(eta_v, beta_v)\n", " F.coord_expr(stereoN.restrict(B))\n", " graph += F.plot(chart=X4, ambient_coords=(X,Y,Z), \n", " mapping=Phi, color=color, \n", " plot_points=100, label_axes=None)\n", "show(graph, viewer=viewer3D, online=True, axes_labels=['X', 'Y', 'Z'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this worksheet, we have used 18 charts on $\\mathbb{S}^3$:" ] }, { "cell_type": "code", "execution_count": 181, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (U, (x, y, z)),\n", " Chart (V, (xp, yp, zp)),\n", " Chart (W, (x, y, z)),\n", " Chart (W, (xp, yp, zp)),\n", " Chart (A, (x, y, z)),\n", " Chart (A, (xp, yp, zp)),\n", " Chart (A, (ch, th, ph)),\n", " Chart (Wz1, (x, y, z)),\n", " Chart (Wzm1, (x, y, z)),\n", " Chart (D_1, (x, y, z)),\n", " Chart (D_2, (x, y, z)),\n", " Chart (D_3, (xp, yp, zp)),\n", " Chart (D_4, (xp, yp, zp)),\n", " Chart (A_inter_D_1, (ch, th, ph)),\n", " Chart (A_inter_D_1, (x, y, z)),\n", " Chart (A_inter_D_1, (xp, yp, zp)),\n", " Chart (B, (x, y, z)),\n", " Chart (B, (eta, alpha, beta))]" ] }, "execution_count": 181, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S3.atlas()" ] }, { "cell_type": "code", "execution_count": 182, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "18" ] }, "execution_count": 182, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(S3.atlas())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "corresponding actually to 4 different coordinate systems:" ] }, { "cell_type": "code", "execution_count": 183, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (U, (x, y, z)),\n", " Chart (V, (xp, yp, zp)),\n", " Chart (A, (ch, th, ph)),\n", " Chart (B, (eta, alpha, beta))]" ] }, "execution_count": 183, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S3.top_charts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For a follow-up, see the [worksheet devoted to vector fields](http://nbviewer.jupyter.org/github/sagemanifolds/SageManifolds/blob/master/Worksheets/v1.3/SM_sphere_S3_vectors.ipynb) on $\\mathbb{S}^3$.\n", "\n", "You may also visit [Niles Johnson's page](http://nilesjohnson.net/hopf.html) for a very nice \n", "animated 3D visualization of the Hopf fibration, also constructed with SageMath." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 8.3", "language": "", "name": "sagemath" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.15" } }, "nbformat": 4, "nbformat_minor": 1 }