Discover Science: The Hopf Fibration
Or: Qcy in the Sky with 4 Dimensions
By Ingo Dahn
With this notebook we make a first step to explore a 4-dimensional space using the Hopf fibration. On this journey we shall roughly follow the arguments in David. W Lyons introduction to the Hopf fibration, supporting these arguments with calculations and interactive experiments.
This material is available as a Jupyter notebook or as a website. Jupyter notebooks require a runtime environment (as provided e.g by CoCalc) while websites make use of the SageCell computational services.
Since computations may rely on the results of previous computations, it is important that all computations are carried out in the sequence they are given. Some of the cells contain program code. The reader is not required to understand the program code in these cells. However, the reader is encouraged to locate the relevant mathematical fomulas in the code and to experiment by changing the values of input variables: Interactive animations made with Geogebra hide their code base. The reader can experiment with these animations using the mouse instead of editing code. These animations can also be downloaded and edited from the Geogebra website using the links provided.
Discover Science is a series of interactive articles exploring selected subjects through questions and experiments. Questions are emphasized in bold face. Readers are encouraged to explore their own questions using the tools provided in the article. Discover science does not aim to deliver ultimate precision and complete proofs. These can be found in various papers, like those cited in Lyons paper mentioned above. In particular, we take the freedom to delegate formal computations to the computer as well as using geometric arguments based on the readers experimental experience.
How to Travel 4D Space?
Humanity has been contacted by an alien from a parallel world! Humans called it (him/her?) Qcy as an abbreviation for Curiosity. Qcy is a 4-dimensional being, living on a planet named in a 4-dimensional space. is located at a location with the coordinates , called the origin and has radius 1.On earth, as long as noone was travelling, it was natural to assume that the surface of the earth is a 2-dimensional plane. Travelling and explorations where key to discover the curvature of the earth, for seeing ships rising from below the horizon and to calculate the radius of the earth by comparing observations of the sun from distant locations.
But Qcy cannot travel around on his planet without our help. He is curious to explore whether the surface of is indeed the 3-dimensional ball which it can see ( just like location-bound people on earth percieve the surface of planet earth as a 2-dimensional disk)or just a local impression of a local neighbourhood on a 4-dimensional curved surface.
And, perhaps, Qcy isn't that much different from us and our 3-dimensional planet is an illusion as well while we are really living on a 4-dimensional surface which we cannot experience sind we cannot travel far in a hidden direction? We must help Qcy with all the human travelling experience - navigation expertise, coordinates, maps etc!
Mathematicians have developed the technology to help Qcy. It is based on a material called Quaternion and consists of three parts:
A sphere on earth that we can use as a controller - like a joystick or trackball - to control Qcys travel on the surface of
An uplink channel, called Hopf fibration, to send travel instructions to Qcy
A downlink channel, called stereographic projection to observe and track Qcys travel.
Now that the technology is at hand, it is our job to build it, test drive it and to guide Qcy on its travel around .
Let us start by collecting Quaternions.
What are Quaternions?
You may have heard of Complex numbers. Complex numbers are numbers of the form where and are real numbers and is a non-real number. Addition and multiplication of real numbers are determined by the rules of commutatiovity, associativity, distributivity and the additional rule .
In 1833, the Irish mathematician William R. Hamilton (1805-1865) looked at complex numbers a points in a plane, interpreting as the point with coordinates . In particular corresponds to and corresponds to . The absolute value (norm) of can be defined as - the Euclidean distance of the point from the origin . The set of all complex numbers of norm 1 defines the unit circle .
It is easy to check that and hence is a multiplicative inverse of if has norm 1. is called the conjugate of and denoted by . Knowing the multiplicative inverse of normed complex numbers, you can check that for each complex number the complex number is the multiplicative inverse of .
Hamilton was fascinated by the possibilities of calculating with points in a plane, interpreted as complex numbers. He asked the obvious question: Can we multiply and divide with points in space as well?
Hamilton tried for 10 years to find an answer. He wrote about that time to one of his sons:
Every morning in the early part of the above-cited month, on my coming down to breakfast, your (then) little brother William Edwin, and yourself, used to ask me: “Well, Papa, can you multiply triplets?” Whereto I was always obliged to reply, with a sad shake of the head: “No, I can only add and subtract them.
But October 16th 1843 on a walk in Dublin passing Broom Bridge, he suddenly saw what was almost an answer to the question, not for points in but and sacrificing the commutativity of multiplication.
Points in 4-dimensionals space can be described by 4 coordinates which can be interpreted as a new kind of numbers - named Quaternions of the form . Hamilton suddenly realised that quaternions allow for multiplication and division if the multiplication of is governed by the equations Hamilton was so fascinated by his discovery that he engraved these equations into the stone of Broom Bridge, where it still can be seen today.
Note that Hamiltons equations imply that, for example, and hence . Similarly we get
Note that only commute with real numbers, but not with each other.
The non-commutativity of multiplication is the only property that makes quaternions different from a field - it is a so-called division ring or skew field. This non-commutativity has some unexpected consequences, among them that a polynomial equation over the quaternions (like ) can have more distinct solutions than the degree of the polynomial.
Calculating with quaternions is not difficult, but can be tedious and errors are easy to make. Fortunately, this notebookWe runs an online computer in the background that can do these calculations for us.
As a first step we configure it to treat
i,j,k as the non-real units in the skew field of quaternions with real coefficients.
Q.<i,j,k>=QuaternionAlgebra(SR,-1,-1) print('i,j,k defined as quaternions')
i,j,k defined as quaternions
# Some calculations with quaternions # Modify the following line to calculate with other quaternions x = 3+2*j; y = 1-4*i+k print('x*y =',x*y) print('y*x =', y*x) print('x+y =',x+y) print('x/y =',x/y) print('x*(1/y) =', x*(1/y)) print('(1/y)*x =', (1/y)*x)
x*y = 3 + (-10)*i + 2*j + 11*k y*x = 3 + (-14)*i + 2*j + (-5)*k x+y = 4 + (-4)*i + 2*j + k x/y = 1/6 + 5/9*i + 1/9*j + (-11/18)*k x*(1/y) = 1/6 + 5/9*i + 1/9*j + (-11/18)*k (1/y)*x = 1/6 + 7/9*i + 1/9*j + 5/18*k
Activity: Modify the cell above to test the associativity of quaternion multiplication, i.e. calculate and and compare them. Alternatively, test thet .
You may get symbolic expressions (formulas) as coefficients instead of real numbers. Such expressions
ex can be converted into numeric values with the
n() method as
Prove the associativity of quaternion multiplication.
The following definitions of Conjugate and Norm generalize the respective definitions for complex numbers. The conjugate of a quaternion , denoted , is defined as .
The norm of a quaternion , denoted , is its length as a vector in , i.e. .
SageMath, the system that powers the background computer of this notebook, provides the
reduced_norm method to calculate the square of the norm. We use this to define the norm as
qnormed(x) as the normalized quaternion
So for a quaternion :
As for complex numbers, the norm of a product of quaternions equals the product of their norms:
It can be proved that making a Euclidean vector space into a division ring satisfying this equation for all vectors and is only possible for vector spaces of dimension 1,2,4 and 8. That explains why Hamilton could not divide triplets!
The following cell provides functions to compute conjugate, norm and the normalized quaternion . It defines the function
nn(x) to calculate .
# Conjugate, norm, normalization a=1+i+j+k print('Conjugate of',a,'is',a.conjugate()) def nn(x): return sqrt(x.reduced_norm()) print('||',a,'|| =',nn(a)) def qnormed(x): if nn(x)==0: print('Cannot normalize a null vector') return x/nn(x) print('a normalized is',qnormed(a))
Conjugate of 1 + i + j + k is 1 - i - j - k || 1 + i + j + k || = 2 a normalized is 1/2 + 1/2*i + 1/2*j + 1/2*k
Sage can also calculate with real variables as coefficients (note that this overrides the previous definition of
# General product with conjugate var('a,b,c,d') r=a+b*i+c*j+d*k r*r.conjugate()
a^2 + b^2 + c^2 + d^2
Without being a definive proof, the previous cell demonstrates that and hence This explains, why the conjugate of is the multiplicative inverse just for quaternions with norm 1.
The product of two of these normalized quaternions is again normalized. Thus normalized quaternions form a non-commutative group with 1 as unit, multiplication as group operation and conjugation as inverse.
We may exploit these properties to describe Qcys location on its planet as a normalized quaternion .
With the multiplication rules quaternions form a skew field with a Euclidean norm satisfying .
can be described by the set of all normalized quaternions.
Normalized quaternions form a non-abelian group under multiplication.
If is normalized, .
Side Question: How many quaternions satisfy ?
In the field of complex numbers, each quadratic polynomial has at most two solutions. In particular has the solutions and .
In the skew field of quaternions, this equation has at least the 6 solutions .
Let be a real number and let us calculate since and . Thus for each the quaternion is a solution of - this equation has infinitely many quaternion solutions.
Activity: Consider a quaternion of the form , i.e. with real part 0 and another quaternion which is normed. For these quaternions calculate . In particular consider the case for various values of .
The following cell does these calculations for you. Experiment and explore the following questions.
Vary the point , in particular use a multiple or fraction of all its coordinates How does this chnge ?
Compare the last coordinates of and
Draw the points, defined by the 2 middle coordinates of and in a coordinate grid on paper. What do you note?
When you did this experiment with - can you predict the result for ?
How will these results change, when you use or instead of ?
# Homework - experiment! p_c=(1,2,3) # vary at will a=0 # a=0, 1/2, sqrt(2)/2, sqrt(3)/2 r=qnormed(a+k) p=p_c*i+p_c*j+p_c*k q=r*p*r.conjugate() q_c=q.coefficient_tuple() print('q=',[q_c[i].n() for i in (0..3)])
q= [0.000000000000000, -1.00000000000000, -2.00000000000000, 3.00000000000000]
As we shall see below, the mapping defines a rotation of the -plane around the -axis. The first coordinate of
r corresponds to the angle of rotation.
The Controller (Rotations and Quaternions)
As first component to support Qcy we build the controller on earth. It consists of a sphere of radius 1 around the 3D origin with a designated point on it, marking Qcys position (Sidenote: Probably this is not going to work, as Qcy has one more coordinate, but let's ignore that for the moment). can be moved from a starting point - we delibarately chose by rotating .
A trivial rotation is the identity which does not move any point. Any direction can be taken as axis of the trivial rotation with rotation angle 0.
We agree that an axis of a rotation will be described by a vector and that rotations will always be counterclockwise for positive angles, and clockwise for negative angles, when viewed from the tip of this vector. Note that there are many ways to describe the same rotation this way. Multiplying the vecor, describing the rotation axis with any positive number will not change the described rotation. Also adding a positive integer multiple of respectively of to the size of the anglewill not change the rotation and the same holds if the axis vector as well as the rotation angle are multiplied by . We can get a unique representation of a nontrivial rotation if we demand further that the rotation angle is described by a number such that and the vector has length 1.
Note: The 4 numbers we use to describe a rotation are less than the 9 numbers required in linear algebra to decribe an arbitrary linear transormation in . You will see that the 4 coefficients of a quaternion can provide an elegant way for describing rotations.
Activity: Let us start by building a model of an ordinary trackball. The blue point on the sphere can be grabbed with the mouse and moved. The green arrow shows the axis of a rotation taking the black start point to the position of along a great circle of the sphere. Note the trace of the axis when is moved, What do you observe? Can you explain your observation?
Instructions: The applet has been build with GeoGebra. Drag with mouse to rotate. Grab objects with mouse to select. Scroll the input bar on the left side to see the shaded field for the selected object. Right-click to see the definition of the object and more options. Note that the definitions in this applet are coordinate-free.
Answer hint: No matter where you put - the axis is always in a specific plane. Why? And in which plane?
The best way to understand at a rotation is to look at it from a perspective along the axis.In the applet above, the axis of the rotation is perpendicular to the plane defined by the point and . The rotation angle is .
But there are more rotations taking a point to a given other point . Among those is always one rotation of 180°.
Activity: Look at the 180° rotations taking tp . Move and observe the axis of the rotation. What do you note?
Answer Hint: The axis of the 180 degree rotation is the bisection of the angle .
So we have found two rotations taking to another point : One of 180° () the axis of which is the bisection of the angle (we shall name this rotation ) and another rotation with the angle around an axis perpendicular to the plane defined by and - we name this .
Rotations of the trackball (the unit sphere ) can be combined into a unique rotation such that for each starting point we have .
If and have the same axis vector, then this is also the axis of their combination and the rotation angle of is the sum of the rotation angles of and . What about the general case?
Given two rotations of the trackball by their axes and rotation angles - how can we calculate the axis and rotation angle of their combinations ?
Can you come up with an approach to answer this question?
Answer Hint: It is plausible that the combination of rotations is associative (i.e. ), that each rotation has an inverse rotation and that the trivial rotation is a unit w.r.t to combination of rotations. That means: Rotations of form a a group.
Rotations of the unit circle in the -plane around the origin all have an axis orthogonal to it - the -axis - and they can be easily combined by adding their rotation angles. Therefore, the group of rotations of is commutative (abelian). For it is more complicated:
Consider counter-clockwise rotations of 90 degrees around the -axis respectively. puts the point onto the -axis where doesn't affect it. Similarly, puts this point onto the -axis, where it is not affected by . We have - and do not commute. The group of rotations of is non-abelian!
Admittedly, this doesn't answer the question. But quaternions will provide us with an elegant solution.
We encode points in by using their coordinates as coefficients of the non-real part of a quaternion, i.e. the point with coordinates is encoded by the quaternion y j + . Such quaternions with real part 0 are called pure.
With this encoding, each point of the unit sphere is encoded by a normalized pure quaternion.
Here comes the main trick: When is any normalized quaternion (not necessarily pure) the mapping defines a norm-preserving linear mapping on the set of pure quaternions and hence a rotation of around the origin. (Check!). In particular defines a rotation of .
If is any real number, then it is easy to check that for all we have . Therefore, if , by taking we can assume without loss of generality, that is normalized.
The following cell defines the function with the quaternion as parameter. It is assumed that is normalized, hence ., while is not required to be normalized.
The second argument is a triple
p which is converted to a quaternion
pp Then the tuple of coefficients of the quaternion
r*pp*r.conjugate() are returned, after its first element (which is 0) has been removed.
Try to calculate the value of some tuples for various quaternions
r, in particular for , represented by the tuple , represented by and , represented by
def R(r,p): pp=p*i+p*j+p*k return (r*pp*r.conjugate()).coefficient_tuple()[1:] R(i,(1,2,3))
(1, -2, -3)
For each map, in Mathematics one of the first question asked is for fix points. The fix points of a rotation form the axis of the rotation. Assume a is the real part of , i.e. is pure (has real part 0). Then , hence - the pure part of - is on the axis of the rotation encoded by ; if , then the vector defines the axis (assumned thar , i.e. we have a nontrivial rotation). Let us build a device to see the axis of a rotation defined by a quaternion..
The following cell shows the point , represented by the quaternion , the axis (in green) of the rotation defined by for the quaternion , and the point to which is taken. The unit sphere is shown in yellow.
Activity: Experiment with different values for the axis
(b,c,d) and for
a. What influence has the change of
a?. Can you add a second point
S_1 and add its image
P_1 to the plot?
Move the plot with the mouse to see the rotation from the perspective defined by the axis.
@interact def _(a=slider(-1,1,step_size=0.1,default=0.5),b=slider(-1,1,step_size=0.1,default=0.5),c=slider(-1,1,step_size=0.1,default=0.5),d=slider(-1,1,step_size=0.1,default=0)): if b^2+c^2+d^2 > 0: ball = sphere(center=(0,0,0), size=1, color='yellow', opacity=0.3) r=qnormed(a+b*i+c*j+d*k) rc=r.coefficient_tuple() vaxis=vector((rc,rc,rc)) theta=(2*arccos(rc)/pi).n() print('Axis:',rc[1:],'Rotation Angle:',theta,"pi") plot_basic=plot(vaxis,color='green')+plot(ball) s=(1,0,0) S=vector(s) tS=text3d("S",s,fontsize=40) p=R(r,s) P=vector(p) tP=text3d("P'",p,fontsize=40) rot=plot_basic+plot(S)+tS+plot(P)+tP var('x,y,z') # Equation of the rotation plane, perpenedicular to the axis and containing S E=implicit_plot3d((x-1)*rc+y*rc+z*rc==0,(x,-1,1),(y,-1,1),(z,-1,1),color='green',opacity=0.3) # Cutting rotation plane with unit sphere to see circle generated by rotating S def cut(x,y,z): return x^2+y^2+z^2 >=1 F=E.add_condition(cut,40) show(rot+F) else: print('One of b,c,d must be nonzero for a nonzero rotation axis')
Interactive function <function _ at 0x7f17ab482170> with 4 widgets a: TransformFloatSlider(value=0.5, descri…
Answer Hint: The non-real part of the quaternion defines the axis of the rotation. You may have notices that the real part corresponds to the angle of the rotation, but in which way?
When we have source , defined by a quaternion , in a plane perpendicular to the axis of rotation, we can use the scalar product between and the rotation target , defined by , to determine the angle of rotation:
We distinguish two cases.
Case 1: , i.e. We let , i.e. . The scalar product is 0, so is perpendicular to the axis.
var('a,d') r=a+d*k w=(1,0,0) w1=R(r,w) # We calculate the dot product between w and w1 vector(w)*vector(w1)
a^2 - d^2
Case 2: or . In this case we take The corresponding vector is orthogonal to the axis
var('a,b,c,d') r=a+b*i+c*j+d*k w=(c,-b,0) w1=R(r,w) #We calculate the dot product... dp=vector(w)*vector(w1) #... and divide it by ||w^2|| (dp/(c^2+b^2)).simplify_full()
a^2 - b^2 - c^2 - d^2
In each case we get for the rotation angle
Since we claim that .
The following cell provides functions to calculate axis and rotation angle defined by a quaternion.
def axis(r): return tuple(list(r.coefficient_tuple())[1:]) def theta(r): return 2*arccos(r.coefficient_tuple()) print('Axis is',axis(i)) print('Angle of rotation (in rad) is',theta(i))
Axis is (1, 0, 0) Angle of rotation (in rad) is pi
Summary: We have seen that points on describe rotations of through the map where the real part encodes the rotation angle and the vector part defines the rotation axis is a.
A survev of various ways to describe rotations is available at Wikipedia.
Suddenly, using quaternions, combining rotations becomes so easy: When we have two rotations given by their axes and rotation angles - each encoded by a quaternion respectively, where the rotation angle provides the real coefficient and the axes coordinates provide the non-real coefficients, then we get the quaternion for the compbined rotation
just by multiplying and . Then we can read off the rotation angle and axes from the product's coefficients.
Sidequestion: How does this apply to rotations od - the unit circle?
We can describe as . Rotations of map the unit circle onto itself. Their axes must be perpendicular to the -plane. Therefore, a rotation of with rotation angle , can be described as rotation of around the -axis, defined by a quaternion of the form such that . Thus .
The following cell verifies that the rotation of the unit circle defined by a quaternion indeed takes to .
import sympy var('a,b,c,d,x,y,z,theta') r=cos(theta/2)+sin(theta/2)*k rr=R(r,(1,0,0)) print('R(r,(1,0,0))=',rr) print('x-component:',sympy.simplify(rr)) print('y-component:',sympy.simplify(rr))
R(r,(1,0,0))= (cos(1/2*theta)^2 - sin(1/2*theta)^2, 2*cos(1/2*theta)*sin(1/2*theta), 0) x-component: cos(theta) y-component: sin(theta)
What has all this to do with group theory?
We came across the following groups.
The group of rotations of
The group of unit quaternions, with multiplication. Unit quaternions can be identified with points on ,
given by is a group homomorphism.
Activity: Show that the kernel of this homomorphism, i.e. is .
Hint: The unit quaternion is in the kernel of if and only if for all pure quaternions . Apply this for and to show that in the kernel must be a real number. The only real numbers on are -1 and 1. Do you recll that this implies that each rotation can be described by exactly two quaternions which are and for some .
The Uplink (Hopf Fibration)
Each position of our trackball controller is characterized by 3 coordinates but Qcys position on requires 4. So - how can we get from our controllers position useful location information for Qcy?
One possibility might be, to transmit the 4 coefficients of the quaternion of the overall rotation that we performed moving to . But in reality, our movement of the controller may be a sequence of many small rotations into different directions and with different angles. Keeping track of the overall rotation would be quite difficult for us. That's why we look for a different solution.
In order to deal with the imprecision of the §D trackball movement w.r.t. Qcys 4D coordinates, let us first explore, how imprecise we actually are.
In the applet below, the points and can be moved on the sphere. The green circle visualizes a rotation of the fixed point around the green axis. is a point where that axis passes through the unit sphere.
Grab point A with the mouse and adjust the axis so that the rotation takes to .
When you have found a rotation that moves S to P - where is the axis? How many rotations can you make up that take to ?
The axis of each rotation taking to lies in the green plane through the origin, bisecting the angle
Try to position the axis in the green plane such that the radius of the circle connecting and is maximal (great circle) or minimal. What is the position of the axis w.r.t the plane containg ?
For each target position of the controller there are many rotations taking to and as many quaternions describing these rotations.Let us explore them!
If a rotation defined by a unit quaternion takes the start point encoded by to a point , then . What does this mean?
# Calculation of rir^-1 var('a,b,c,d') r=a+b*i+c*j+d*k rp=r*i*r.conjugate() print('r*i*r^-1 =',rp) cp=rp.coefficient_tuple() # We expand to simplify show('1st coefficient = ',cp.expand()) show('2nd coefficient = ',cp.expand()) show('3rd coefficient = ',cp.expand())
r*i*r^-1 = ((a - b)^2 + 2*a*b - (c - d)^2 - 2*c*d)*i + (2*b*c + 2*a*d)*j + (-(a - b)*(c + d) - (a + b)*(c - d))*k
Thus, for each unit quaternion the corresponding rotation takes to a point defined by is called the Hopf mapping, discovered by Heinz Hopf in 1927.
The pre-image of a particular value under a map is called the fiber of under - in our case the Hopf fiber of ! Each point of the domain of , , belongs to exactly one fiber.
For each point on there are many rotations moving to .
Each of these rotations is defined by a normed quaternion where the real coefficient is where is the angle of rotation and the other coefficients define the axis of the rotation.
For a quaternion defining a rotation, the pure quaternion defines the coordinates of the target point to which the starting point , encoded by , is taken.
The axes of all rotations of taking to are located in the plane through the origin, bisecting the segment .
The set of all quaternions (i.e. ponts on , defining rotations of that take to , is the Hopf fiber of - the pre-image of under the Hopf mapping.
How does the Hopf fiber of a point look on ?
There are two special rotations taking to for which the angle of rotation is easy to compute:
A rotation , defined by a quaternion , with the axis in the plane containing and the origin .
A rotation , defined by a quaternion , with the axis orthogonal to the plane through and .
These are shown in red in the following applet. Chose a view along the axes for the best view on the respective angles of rotation!
Did you note that the axes of the rotations defined by are in the plane through the origin bisecting and that they are orthogonal to each other?
Did you note, that the coefficients of and are similar? It is worth exploring why this is the case..
Test the calculation in the following cell with the coefficients of from the applet.
# permuting coefficients var('a,b,c,d') r=a+b*i+c*j+d*k r*i
-b + a*i + d*j + (-c)*k
You may conjecture that and
You may want to verify the rotations defined by and take to the same target and that the axes of the respective rotations are orthogonal.
Now that we know two specific rotations (quaternions) taking to , can we determine all those rotations (quaternions), i.e. the Hopf fiber of ?.
We have already seen, that all axes of rotations moving to are in the same plane and thus pass through the great orange circle in the previous app. In the complex plane, each point of the unit circle is defined by a complex number of the form . In fact,for any point defined by a complex number , the product defines the point obtained from by rotating the plane around the origin by an angle . Why not try something similar to characterize the Hof fiber cycling through the orange circle?
Curiosity suggests asking: What does multiplication with a complex number does to a quaternion ?
is also a unit quaternion and hence describes a rotation of too. The rotation angle of this rotation is . The axis of the rotation is .
Let us consider how the rotation acts on represented by if is in the Hopf fiber of . .
since commutes with and its inverse.
So the rotation takes to , if does, i.e. is in the Hopf fiber of if is.,
Conversely, if are normalized and in the Hopf fiber of the same point , then and therefore i.e. commutes with . Let .
Since this difference must be 0, and must be 0 and hence , i.e. , and must be of the form for some real .
Thus the Hopf fiber of a point , can be described as where is any quaternion in the fiber - if we know one such quaternion , we know all of them!
In particular, the Hopf fiber contains the quaternions (for ), (for ), (for ) and (for . All points of the fiber, described by these quaternions, have distance 1 from the origin.
Thus the Hopf fiber is a great circle of in a plane determined by the origin and the points and ,
Can we determine axes for rotations taking to ? The axis of the rotation for can be obtained from the axis for by rotating it by an angle of (do you recall that multiplication of quaternions corresponds to combination of rotations?).
In the following applet, the axes for the rotations are shown in red where
- is the rotation with the axis bisecting and a rotation angle of and and
- is the rotation with the axis perpendicular to the plane and a rotation angle equal to the angle .
The variable lets a point move around the sphere in a great circle, marking the axes of other rotations that take to . Thus the red circle visualiizes the action of the rotation defined by the quaternion on and , with the respective quaternions cycling through the Hopf fiber of .
Use the scrollbar of the input bar on the left and scroll up to the third object, being the variable . Click on the Play button to vary between 0 and . Change perspective - for example look at the north pole.
For Qcy, the situation is much more simple: and are points on . Each is on a circle of radius 1 around the origin in a plane spanned by and . This is agreat circle of .
Side question: On is there a Great Sphere - similar to the great circle? A great sphere is a 3-dimensional sphere of radius 1 around the origin, fully contained in the hull of .
Now we can envisage the following communication from us to Qcy:
- We move the starting point of our trackball to a position
- We calculate a quaternion, say , that describes a rotation moving to and transmit it to Qcy
- Qcy takes the coefficients of this quaternion as starting point for an expedition
- Then Qcy travels along the Hopf fiber as given by between 0 and until it reaches the again.
Then we can rotate our trackball a little further and send Qcy off to a new great circle.
Can Qcy reach every point of this way, i. e . for a unit quaternion , can you rotate the controller to a position wnich guides Qcy towards ?
Yes, it can: If is any quaternion, then the Hopf function defines a position of the controller such that this quaternion is in the Hopf fiber of .
The Hopf fibration partitions into disjoint sets of great circles.
Each of these great circles (Hopf fiber) can be represented by the set of all quaternions of the form for any unit quaternion .from the fiber.
The Downlink (Stereographic Projection)
How can we observe Qcy travelling? We use 2-dimensional maps to track a travel around the surface of the 3-dimensional earth. We can try, in the same way, to track Qcys travel on the 4-dimensional in a 3-dimensional "map". Since we know that Qcy shall go around in circles, it would be certainly hepful to use a mapping that visualizes Qcys circles on as circles in our world of . Stereographic projection does just that. When the projection is from the north pole , the stereographic projection is defined by
Activity: For which circles is the projection a straight line?
Answer Hint: What happens if the projected circle contains the source of the projection - the north pole?
As you may guess from the activity abobe, this stereographic projection sends circles in not containing the north pole to circles in the plane.
Stereographic projection can be generalized from mapping the 3-dimensional sphere (minus one point) 1-1 onto the plane to mapping the 4-dimensional sphere (mnus one point) 1-1 onto the 3-dimensional space by generalizing the definition above to .
The only point that is not mapped is . Of course, we would get similar results (with a bit more complicated calculations perhaps) by chosing another point than as the source of projection. Also this stereographic projection sends circles on not containing to circles in .
Since Hopf fibers are circles, their images will be too - or they will be a straight line if they contain .
Stereographic projection sends to infinity and the Hopf fiber of a point contains - with 1 as corresponding quaternion - if and only if the identity rotation takes to , i.e. . Thus, the Hopf fiber of is the fiber that contains . The quaternions in this fiber have the form . Stereographic projection takes this quaternion to . As varies between and , these pomts fill the -axis.
For pure quaternions, i.e. if , the projection of is and hence the unit sphere orthogonal to the vector is projected onto the unit sphere .. That applies, in particular, to and in the Hopf fibre of . Thus the projection of the fiber of must contain two opposite points on the unit sphere .
If , then . 3 points determine a circle in . Hence the stereographic projection of the Hopf fiber of is the circle through , and - unless , in which case and , i.e. is the point from which we project and we are back in the case we just discussed.
These formulas for calculating the projections of and are useful to calculate the stereographic projection of a Hopf fiber directly from the coefficients of a single pure quaternion from the fiber. The unit vector bisecting the angle provides such a quaternion .
Example: Let us consider . Rotations of that take to must all have an angle of rotation of and their axes must lie in the -plane. The quaternions for these rotations are of the form and stereographic projection sends them to - the stereographic projection of the Hop fiber of is the unit circle in the -plane!
If a fiber is projected to a proper circle, i.e. , then the point of the projection of the fiber lies in the -plane. Therefore, each projection of a fiber which is not the -axis must pass through the -plane.
Stereographic projection maps - except - onto . It maps circles - in paricular Hopf fibers - to circles in .
The Hopf fiber of is projected onto the -axis. The projection of each other fiber is a circle that passes at opposite points through the unit sphere .
The projection of the Hopf fiber of is the unit circle in the -plane.
The projection of each Hopf fiber has at least one point in the -plane.
Now can we control Qcy on the planet and observe its movement. our controller is a point on the sphere. For each position of , we can determine the quaternins each of these determines the Hopf fiber of - a great circle . Qcy can explore the planet around this great circle and its movement can be observed on the stereographic projection of where we shall see it moving on a circle in our space.
The following applet shows the stereographic projection of the fiber of a point . The position of can be controlled by setting its latitude and longitude.
Experiment with various positions of . After selecting a slider, you may increase/decrease the value with your cursor keys. What do you observe?
Experiment with switching animation for the sliders and tracking of the green circles on and of (right click on the respective item in the left bar to change).
With the red dot you may reveal the unit circle in the -plane as a further hint
You may have noted that the projection of each fiber passes twice through the -plane - once inside the unit circle in this plane and once outside - of course unless the fiber of or . Since the unit sphere of the -plane is a fiber and all fibers are similar, we may claim that any two circles, which are projections of a fiber, are linked. Similarly, the -axis passes through every fiber projection.
The Hopf fibers fill the complete surface of and the image of under the stereographic projection is the complete space. Thus the projections of all Hopf fibers are a set of interlinked circles that fill the complete -space and wind around the -axis - something hard to imagine.
We add an applet by Michael Singer that also shows two interlinked projections of Hopf fibers. Varying visualizes the transition from the fiber of (unit circle in -plane) to the fiber of (-axis). Note the almost hidden animation buttons for .
A video by Niles Johnson showing the projected Hopf fibers for a series of point of : Compare the position of the points with the shape of the projections!
The following cell is intentionally left blank for your own experiments.