{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 3-sphere: charts, quaternions and Hopf fibration\n", "\n", "This worksheet demonstrates a few capabilities of\n", "[SageManifolds](http://sagemanifolds.obspm.fr) (version 1.0, as included in SageMath 7.5)\n", "on the example of the 3-dimensional sphere, $\\mathbb{S}^3$.\n", "\n", "Click [here](https://raw.githubusercontent.com/sagemanifolds/SageManifolds/master/Worksheets/v1.0/SM_sphere_S3_Hopf.ipynb) to download the worksheet 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": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'SageMath version 7.5.1, Release Date: 2017-01-15'" ] }, "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": { "collapsed": true }, "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": { "collapsed": true }, "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": { "collapsed": true }, "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": { "collapsed": true }, "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": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3-dimensional differentiable manifold S^3\n" ] } ], "source": [ "print(S3)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false, "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, axes_labels=['X', 'Y', 'Z'])" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "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, \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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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, 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": { "collapsed": false }, "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, 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": { "collapsed": false }, "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, axes_labels=['X', 'Y', 'T'])" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "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, 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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "source": [ "We have" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (A_2, (xp2, yp2)), Chart (A_2, (x2, y2)), 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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": true }, "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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": true }, "outputs": [], "source": [ "stereoND1A = stereoN_D1.restrict(D1A)\n", "stereoND1A.add_restrictions((y!=0, x<0))" ] }, { "cell_type": "code", "execution_count": 147, "metadata": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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(th)*sin(ch)*sin(ph) - cos(ch)*cos(ph))/(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": { "collapsed": false }, "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(cos(th)^2*sin(ch)^2 + cos(ch)^2)), 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": { "collapsed": false }, "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": { "collapsed": false }, "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)" ] }, { "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Check of the inverse coordinate transformation:\n", " eta == arcsin(sqrt(cos(eta) + 1)*sqrt(-cos(eta) + 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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h: B --> A_2\n", " (eta, alpha, beta) |--> (th2, ph2) = (2*arctan(sin(eta)/abs(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 (this should be improved in a future version of SageMath): \n", "\n", "- $|\\cos\\eta|$ should be $\\cos\\eta$ since $\\eta\\in(0,\\pi/2)$, so that $\\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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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, 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": { "collapsed": false }, "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, 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": { "collapsed": false }, "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, 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": { "collapsed": false }, "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, axes_labels=['X','Y','Z'])" ] }, { "cell_type": "code", "execution_count": 170, "metadata": { "collapsed": false }, "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, axes_labels=['X','Y','T'])" ] }, { "cell_type": "code", "execution_count": 171, "metadata": { "collapsed": false }, "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, 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": { "collapsed": true }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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)" ] }, { "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": { "collapsed": false }, "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)" ] }, { "cell_type": "code", "execution_count": 177, "metadata": { "collapsed": false }, "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": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nA8+xgzIb/c+zAAAAAElFTkSuQmCC\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": { "collapsed": false }, "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, 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": { "collapsed": false }, "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, 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": { "collapsed": false }, "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": { "collapsed": false }, "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": { "collapsed": false }, "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.0/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." ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 7.5.1", "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.13" } }, "nbformat": 4, "nbformat_minor": 0 }