Code
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.cm import hsvFantastic Manifolds and Where to Find Them
sun123zxy
June 2, 2025
\[ \gamma(t) := (e^{2\pi i t}, e^{2 \pi i \alpha t}) \] is an \(\mathbb R \to \mathbb T^2 \subset \mathbb C^2\) immersion (Note that it’s injective!). The corresponding immersed \(1\)-submanifold is a Lie subgroup that is dense in \(\mathbb T^2\) (by Dirichlet’s approximation theorem), which confirms that it is not an embedded submanifold. For more information, see [1, Example 4.20].
Below is a plot of this curve taking \(\alpha = \sqrt 2\). The torus is embedded in \(\mathbb R^3\). \[ \Phi(t) := \left( \cos( \alpha t ) \left( 1 + \frac{1}{2} \cos t \right), \sin( \alpha t ) \left( 1 + \frac{1}{2} \cos t \right), \frac{1}{2} \sin t \right) \]
# Define the parametric equations
def phi(t):
x = np.cos(np.sqrt(2) * t) * (1 + 0.5 * np.cos(t))
y = np.sin(np.sqrt(2) * t) * (1 + 0.5 * np.cos(t))
z = 0.5 * np.sin(t)
return x, y, z
# Generate t values
t = np.linspace(0, 100, 10000)
x, y, z = phi(t)
# Create figure with transparent background
fig = plt.figure(facecolor='none') # <-- Transparent figure
ax = fig.add_subplot(111, projection='3d', facecolor='none') # <-- Transparent axes
# Plot the curve
ax.plot(x, y, z)
# Manually set equal aspect ratio
max_range = np.array([x.max()-x.min(), y.max()-y.min(), z.max()-z.min()]).max() * 0.5
mid_x = (x.max() + x.min()) * 0.5
mid_y = (y.max() + y.min()) * 0.5
mid_z = (z.max() + z.min()) * 0.5
ax.set_xlim(mid_x - max_range, mid_x + max_range)
ax.set_ylim(mid_y - max_range, mid_y + max_range)
ax.set_zlim(mid_z - max_range, mid_z + max_range)
# Labels and title (customize colors for visibility)
ax.set_xlabel('X') # Ensure labels are visible
ax.set_ylabel('Y')
ax.set_zlabel('Z')
# Adjust view
ax.view_init(elev=30, azim=45)
plt.tight_layout()
plt.show()
Remark. More characterizations of \(\mathbb S^3\) can be found in [2, Ch. 1–2]. A nice figure of the Hopf fibration can be found in [2, Secs. 2.2, figure 2.2]. Recommended online materials:
Recall the three usual descriptions of \(\mathbb S^3\): \[ \begin{matrix} \mathbb T^3 & & \mathbb S^3 \subset \mathbb H & & \mathrm{SU}(2) \\ (\theta,\varphi,\psi) & \xrightarrow{\substack{ a = \cos \theta \cos \varphi \\ b = \cos \theta \sin \varphi \\ c = \sin \theta \cos \psi \\ d = \sin \theta \sin \psi}} & a \boldsymbol 1 + b \boldsymbol i + c \boldsymbol j + d \boldsymbol k & \xrightarrow{\substack{z=a+b \boldsymbol i \\ w=c+d \boldsymbol i}} & \begin{bmatrix}z & w \\ -\overline w & \overline z\end{bmatrix} \\ & & a^2+b^2+c^2+d^2 = 1 & \xleftarrow{z + w \boldsymbol j} & |z|^2 + |w|^2 = 1 \\ \end{matrix} \]
We note that the second map is a (multiplicative) group isomorphism. The latter two structures equip \(\mathbb S^3\) with a group structure.
We note that the first map is a diffeomorphism when \((\theta, \varphi, \psi) \in (0, \pi/2) \times \mathbb T^2\). As the Jacobian degenerates at where \(\sin \theta \cos \theta = 0\), the whole map is not a immersion.
The so-called Hopf map is \[ \begin{aligned} \pi : \mathbb S^3 &\to \mathbb S^2 \subseteq \mathbb C \times \mathbb R \\ \quad (z,w) &\mapsto (2 z \overline w, |z|^2 - |w|^2) \end{aligned} \]
It’s well-defined: computing the RHS’s L2 norm, one verifies that \[ |2z\overline w|^2 + (|z|^2 - |w|^2)^2 = (|z|^2 + |w|^2)^2 = 1 \] hence the image is indeed in \(\mathbb S^2\).
It’s surjective: write \(z = r e^{\boldsymbol i \theta}\) and \(w = s e^{\boldsymbol i \phi}\), then \[ \pi(z,w) = (2 r s e^{\boldsymbol i (\theta - \phi)}, r^2 - s^2) =: (u, v) \] note that the modulus \(r\), \(s\) can be solved \[ \begin{cases} |u| = 2rs \\ v = r^2 - s^2 \\ u^2 + v^2 = 1 \end{cases} \iff \begin{cases} r^2 = \frac{1 + v}{2} \\ s^2 = \frac{1 - v}{2} \end{cases} \] hence a preimage of \((u,v)\) is always found.
One note that \((e^{\boldsymbol i \theta} z, e^{\boldsymbol i \theta} w)\) and \((z,w)\) are in the same fiber of \(\pi\) for any \(\theta \in \mathbb R\). If appreciated in \(\mathbb H\), the action is simply left multiplication by \(e^{\boldsymbol i \theta}\). Denote \[ \mathbb S^1 := \{ e^{\boldsymbol i \theta} : \theta \in \mathbb R \} \] So \(\mathbb S^1\) acts on \(\mathbb S^3 \subseteq \mathbb H\) by left multiplication, and the fibers of the Hopf map, as a partition, is at least as coarse as of the right cosets of \(\mathbb S^1 \operatorname{\backslash} \mathbb S^3\).
In fact, we can show that the fibers are exactly the right cosets. To show this, we are to conversely give out this rotation for each two points \((z,w)\) and \((z',w')\) in the same fiber. Say \(\pi(z,w)=\pi(z',w')\), then \[ \begin{cases} 2z\overline w=2z'\overline{w'} \\ |z|^2-|w|^2=|z'|^2-|w'|^2 \\ |z|^2+|w|^2=|z'|^2+|w'|^2=1 \end{cases} \implies \begin{cases} z \overline w = z' \overline{w'} \\ |z|=|z'| \\ |w|=|w'| \end{cases} \] Note that the first equation fixes the relative phase of \(z\) and \(w\), while the last two equations fix their absolute values. So a joint rotation of \(z\) and \(w\) is the only freedom left and we are done. Therefore \[ \pi(z,w)=\pi(z',w') \iff (z',w')=(e^{\boldsymbol i \theta}z,e^{\boldsymbol i \theta}w) \quad\text{for some }\theta\in\mathbb R \] So the fibers of the Hopf map are exactly the right cosets of the above copy of \(\mathbb S^1\) in \(\mathbb S^3\). And the Hopf map identifies \(\mathbb S^2\) with each of these cosets: \[ \mathbb S^1 \operatorname{\backslash} \mathbb S^3 \cong \mathbb S^2 \]
Note the immediate consequences of the above discussion:
We haven’t yet touched the topological / manifold / bundle structure of the Hopf fibration.
TODO: General Hopf fibration \(\mathbb S^{2n+1} \to \mathbb C\mathbb P^n\). Note that \(\mathbb S^2 \cong \mathbb C\mathbb P^1\).