Polynomial Invariants
The goal of these notes is to work through several examples of polynomial
invariants, constructed from the symmetries of platonic solids.
After building up some preliminary results for the tetrahedron and octahedron,
corresponding expressions for the icosahedron and dodecahedron are constructed
using the former results as building blocks.
Preliminaries ¶ Rotation (in three dimensions) of the vector r {\bf r} r about the direction n ^ \hat{\bf n} n ^ by an angle θ \theta θ :
r ′ = r cos θ + ( r ⋅ n ^ ) n ^ ( 1 − cos θ ) − r × n ^ sin θ {\bf r}' = {\bf r}\,\cos\theta + ({\bf r}\cdot\hat{\bf n}) \hat{\bf n}\, (1 - \cos\theta) - {\bf r} \times \hat{\bf n} \, \sin\theta r ′ = r cos θ + ( r ⋅ n ^ ) n ^ ( 1 − cos θ ) − r × n ^ sin θ or, in components,
r ′ i = [ δ i j cos θ + n i n j ( 1 − cos θ ) − ϵ i j k n k sin θ ] r j : = O i j r j . \begin{align*}
r'^i &= \left[{\delta^i}_j\,\cos\theta + n^in_j\,(1-\cos\theta)-{\epsilon^i}_{jk}\,n^k\,\sin\theta\right] r^j \\
:&= {\mathcal O^i}_j\,r^j \,.
\end{align*} r ′ i : = [ δ i j cos θ + n i n j ( 1 − cos θ ) − ϵ i jk n k sin θ ] r j = O i j r j . Introducing the variables
a i = n i sin ( θ / 2 ) , d : = cos ( θ / 2 ) , a_i = n_i\,\sin\left(\theta/2\right) \,,\quad d:= \cos\left(\theta /2\right) \,, a i = n i sin ( θ /2 ) , d := cos ( θ /2 ) , we see the rotation matrix O i j {{\mathcal O}^i}_j O i j can be rewritten as follows:
O i j = ( 2 d 2 − 1 ) δ i j + 2 ( a i a j − ϵ i j k a k d ) . {{\mathcal O}^i}_j = \left(2\,d^2 -1\right){\delta^i}_j+ 2\left( a^i\,a_j - {\epsilon^i}_{jk}\,a^k\,d\right) \,. O i j = ( 2 d 2 − 1 ) δ i j + 2 ( a i a j − ϵ i jk a k d ) . (Recall that cos θ = 2 cos 2 ( θ / 2 ) − 1 = 1 − 2 sin 2 ( θ / 2 ) \cos\theta = 2\,\cos^2\left(\theta/2\right) -1 = 1-2\,\sin^2\left(\theta/2\right) cos θ = 2 cos 2 ( θ /2 ) − 1 = 1 − 2 sin 2 ( θ /2 ) and that sin θ = 2 sin ( θ / 2 ) cos ( θ / 2 ) \sin\theta = 2\,\sin\left(\theta/2\right)\,\cos\left(\theta/2\right) sin θ = 2 sin ( θ /2 ) cos ( θ /2 ) .)
The orthogonality of O {\mathcal O} O can be verified by computing O k i O k j {\mathcal O_k}^i\,{\mathcal O^k}_j O k i O k j using the expression above, which gives
( O T O ) i j = δ i j + 4 ( d 2 + a 2 − 1 ) ( d 2 δ i j + a i a j ) = δ i j {({\mathcal O}^T {\mathcal O})^i}_j = {\delta^i}_j + 4\left(d^2 + {\bf a}^2 -1\right)\left(d^2 \,{\delta^i}_j +
a^ia_j\right) = {\delta^i}_j ( O T O ) i j = δ i j + 4 ( d 2 + a 2 − 1 ) ( d 2 δ i j + a i a j ) = δ i j where the second equality follows from the definition of a {\bf a} a and d d d , along with the trig identity sin 2 ( θ / 2 ) + cos 2 ( θ / 2 ) = 1 \sin^2\left(\theta/2\right) + \cos^2\left(\theta/2\right) = 1 sin 2 ( θ /2 ) + cos 2 ( θ /2 ) = 1 which enforces the constraint
a 2 + d 2 = 1 . {\bf a}^2 + d^2 = 1 \,. a 2 + d 2 = 1 . # Imports
from functools import reduce
from sympy import I, Matrix, conjugate, expand, simplify, sqrt, symbols
# Check of the above:
a1, b1, c1, d1 = symbols("a1 b1 c1 d1")
def o_mat(a, b, c, d):
return Matrix(
[
[2 * d**2 - 1 + 2 * a**2, 2 * (a * b - c * d), 2 * (a * c + b * d)],
[2 * (a * b + c * d), 2 * d**2 - 1 + 2 * b**2, 2 * (b * c - a * d)],
[2 * (a * c - b * d), 2 * (b * c + a * d), 2 * d**2 - 1 + 2 * c**2],
]
)
O1 = o_mat(a1, b1, c1, d1)
expand((O1 * O1.transpose()).subs(d1, sqrt(1 - a1**2 - b1**2 - c1**2)))Two such rotations can be composed as follows:
O C : = O B ⋅ O A \mathcal O_C := \mathcal O_B \cdot \mathcal O_A O C := O B ⋅ O A where, if O A = O A ( a A , d A ) \mathcal O_A = \mathcal O_A(\mathbf a_A, d_A) O A = O A ( a A , d A ) and
O B = O B ( a B , d B ) \mathcal O_B = \mathcal O_B(\mathbf a_B, d_B) O B = O B ( a B , d B ) then
O C = O C ( a C , d C ) \mathcal O_C = \mathcal O_C(\mathbf a_C, d_C) O C = O C ( a C , d C ) with
a 1 C = a 1 A d B + a 1 B d A − a 2 A a 3 B + a 2 B a 3 A a 2 C = a 2 A d B + a 2 B d A − a 3 A a 1 B + a 3 B a 1 A a 3 C = a 3 A d B + a 3 B d A − a 1 A a 2 B + a 1 B a 2 A d C = − a 1 A a 1 B − a 2 A a 2 B − a 3 A a 3 B + d A d B . \begin{align*}
a_{1C} &= a_{1A} d_B + a_{1B} d_A - a_{2A} a_{3B} + a_{2B} a_{3A} \\
a_{2C} &= a_{2A} d_B + a_{2B} d_A - a_{3A} a_{1B} + a_{3B} a_{1A} \\
a_{3C} &= a_{3A} d_B + a_{3B} d_A - a_{1A} a_{2B} + a_{1B} a_{2A} \\
d_C &= -a_{1A} a_{1B} - a_{2A} a_{2B} - a_{3A} a_{3B} + d_A d_B \,.
\end{align*} a 1 C a 2 C a 3 C d C = a 1 A d B + a 1 B d A − a 2 A a 3 B + a 2 B a 3 A = a 2 A d B + a 2 B d A − a 3 A a 1 B + a 3 B a 1 A = a 3 A d B + a 3 B d A − a 1 A a 2 B + a 1 B a 2 A = − a 1 A a 1 B − a 2 A a 2 B − a 3 A a 3 B + d A d B . # Check of the above:
a2, b2, c2, d2 = symbols("a2 b2 c2 d2")
O2 = o_mat(a2, b2, c2, d2)
expand(
(
O2 * O1
- o_mat(
a1 * d2 + a2 * d1 - b1 * c2 + b2 * c1,
b1 * d2 + b2 * d1 - c1 * a2 + c2 * a1,
c1 * d2 + c2 * d1 - a1 * b2 + a2 * b1,
-a1 * a2 - b1 * b2 - c1 * c2 + d1 * d2,
)
)
.subs(d1, sqrt(1 - a1**2 - b1**2 - c1**2))
.subs(d2, sqrt(1 - a2**2 - b2**2 - c2**2))
)Stereographic Projection ¶ In what follows, it’s helpful to map the rotations on the sphere to the complex
plane, by performing an equatorial spherical projection from the point where
n ^ = ( 0 , 0 , 1 ) \hat{\bf n} = (0, 0, 1) n ^ = ( 0 , 0 , 1 ) down onto the complex plane. Denoting a general point
on the unit sphere as r ^ = ( ξ , η , ζ ) \hat{\bf r} = (\xi,\eta,\zeta) r ^ = ( ξ , η , ζ ) in the general case, and
writing z = x + i y z = x + iy z = x + i y with real and imaginary axes parallel to the ( ξ η ) (\xi \eta) ( ξ η )
plane, we find (using similar triangles) that
z = x + i y = ξ + i η 1 − ζ . z = x + i\, y = \frac{\xi +i\,\eta}{1-\zeta} \,. z = x + i y = 1 − ζ ξ + i η . Inverting, we find
ξ = z + z ˉ r , η = i ( z ˉ − z ) r , ζ = z z ˉ − 1 r \xi = \frac{z + \bar{z}}r \,,\quad \eta = \frac{i(\bar{z} - z)}r \,,\quad
\zeta = \frac{z\bar{z} -1}r ξ = r z + z ˉ , η = r i ( z ˉ − z ) , ζ = r z z ˉ − 1 where we define r : = 1 + z z ˉ r := 1 + z\bar{z} r := 1 + z z ˉ .
Rotations about the ζ \zeta ζ -axis are particularly simple in this representation,
as they correspond to multiplying z z z by a pure phase:
z → z ′ = e i θ z ↔ ξ ′ = ξ cos θ − η sin θ η ′ = ξ sin θ + η cos θ . z \to z' = e^{i\theta} \, z \quad\leftrightarrow\quad \begin{array}{cc}\xi' &=
\xi\,\cos\theta
- \eta\,\sin\theta\\
\eta' &= \xi\,\sin\theta + \eta\,\cos\theta
\end{array}\,. z → z ′ = e i θ z ↔ ξ ′ η ′ = ξ cos θ − η sin θ = ξ sin θ + η cos θ . If we wish to write an arbitrary rotation of a point on the sphere about some
direction specified by n ^ \hat{\bf n} n ^ , θ \theta θ (or, equivalently, a {\bf a} a ,
d d d ), we can leverage the simplicity of the above by noting that the rotation
leaves the antipodal points z 1 = 0 z_1=0 z 1 = 0 , z 2 = ∞ z_2=\infty z 2 = ∞ fixed, and that a more general
rotation about the direction n ^ \hat{\bf n} n ^ should do the same for the points
z 1 = n 1 + i n 2 1 − n 3 , z 2 = − n 1 − i n 2 1 + n 3 , z_1 = \frac{n_1+i\,n_2}{1-n_3} \,,\quad z_2 = \frac{-n_1-i\,n_2}{1+n_3} \,, z 1 = 1 − n 3 n 1 + i n 2 , z 2 = 1 + n 3 − n 1 − i n 2 , which satisfy the antipodal relation z 1 z ˉ 2 = − 1 z_1\,\bar z_2 = -1 z 1 z ˉ 2 = − 1 , as well as the
following other useful relations:
z 1 + z 2 z 1 − z 2 = n 3 , 2 z 1 z 2 z 2 − z 1 = n 1 + i n 2 , 2 z 1 − z 2 = n 1 − i n 2 . \tfrac{z_1 + z_2}{z_1 - z_2} = n_3 \,,\quad \tfrac{2 z_1 z_2}{z_2 - z_1} = n_1 +
i\,n_2 \,,\quad \frac2{z_1 - z_2} = n_1 -i\,n_2\,. z 1 − z 2 z 1 + z 2 = n 3 , z 2 − z 1 2 z 1 z 2 = n 1 + i n 2 , z 1 − z 2 2 = n 1 − i n 2 . # Check of the above
n1, n2, n3 = symbols("n1 n2 n3", real=True)
z1 = (n1 + I * n2) / (1 - n3)
z1A = (-n1 - I * n2) / (1 + n3)
simplify((z1 * conjugate(z1A)).subs(n3, sqrt(1 - n1**2 - n2**2)))simplify((z1 + z1A) / (z1 - z1A))simplify((2 * z1 * z1A) / (z1A - z1))simplify((2 / (z1 - z1A)).subs(n3, sqrt(1 - n1**2 - n2**2)))As such, the rotation leaving such points fixed is
z ′ − z 2 z ′ − z 1 = e i θ z − z 2 z − z 1 . \frac{z'-z_2}{z'-z_1} = e^{i\theta} \,\frac{z-z_2}{z-z_1} \,. z ′ − z 1 z ′ − z 2 = e i θ z − z 1 z − z 2 . Solving for z ′ z' z ′ , the above general rotation can be expressed as
z → z ′ = z [ ( z 1 − z 2 ) cos ( θ / 2 ) + i ( z 1 + z 2 ) sin ( θ / 2 ) ] − 2 i sin ( θ / 2 ) z 1 z 2 2 z i sin ( θ / 2 ) + [ ( z 1 − z 2 ) cos ( θ / 2 ) − i ( z 1 + z 2 ) sin ( θ / 2 ) ] = ( d + i a 3 ) z − ( a 2 − i a 1 ) ( a 2 + i a 1 ) z + ( d − i a 3 ) \begin{aligned}
z \to z' &= \frac{z\left[(z_1 - z_2)\cos(\theta/2) + i
(z_1+z_2)\,\sin(\theta/2)\right]-2i\sin(\theta/2)z_1 z_2}{2z\,i\sin(\theta/2) +
\left[(z_1 - z_2)\cos(\theta/2)-i(z_1+z_2)\sin(\theta/2)\right]} \\
&= \frac{(d+i\,a_3)z - (a_2-i\,a_1)}{(a_2+i\,a_1)z + (d-i\,a_3)}
\end{aligned} z → z ′ = 2 z i sin ( θ /2 ) + [ ( z 1 − z 2 ) cos ( θ /2 ) − i ( z 1 + z 2 ) sin ( θ /2 ) ] z [ ( z 1 − z 2 ) cos ( θ /2 ) + i ( z 1 + z 2 ) sin ( θ /2 ) ] − 2 i sin ( θ /2 ) z 1 z 2 = ( a 2 + i a 1 ) z + ( d − i a 3 ) ( d + i a 3 ) z − ( a 2 − i a 1 ) where we make use of the notation introduced above which interrelates
{ n ^ , θ } \{\hat{\bf n}, \theta\} { n ^ , θ } with { a , d } \{{\bf a}, d\} { a , d } . (The above can be readily
checked by substituting r ^ ′ = ( ξ ′ , η ′ , ζ ′ ) = O ⋅ r ^ \hat {\bf r}' =(\xi',\eta',\zeta') = {\mathcal O} \cdot
\hat{\bf r} r ^ ′ = ( ξ ′ , η ′ , ζ ′ ) = O ⋅ r ^ into the expression z ′ = ( ξ ′ + i η ′ ) / ( 1 − ζ ′ ) z' = (\xi' + i\,\eta')/(1-\zeta') z ′ = ( ξ ′ + i η ′ ) / ( 1 − ζ ′ ) .)
Fractionalized Coordinates ¶ Lastly, to re-interpret the above transformation in the complex plane as a
homogeneous one, it is conventional to write z z z in terms of its numerator and
denominator in projective coordinates:
z = u v . z = \frac uv \,. z = v u . In terms of u u u , v v v , the transformation above is given by
u ′ = ( d + i a 3 ) u − ( a 2 − i a 1 ) v v ′ = ( a 2 + i a 1 ) u + ( d − i a 3 ) v . \begin{align*}
u' &= (d+i\,a_3)u - (a_2-i\,a_1)v \\
v' &= (a_2+i\,a_1)u + (d-i\,a_3) v \,.
\end{align*} u ′ v ′ = ( d + i a 3 ) u − ( a 2 − i a 1 ) v = ( a 2 + i a 1 ) u + ( d − i a 3 ) v . In this space, the rotations described above are a subgroup of G L ( 2 , C ) \mathbb{GL}(2,
\mathbb{C}) GL ( 2 , C ) where the operator
O = ( A B C D ) such that ( u ′ v ′ ) = O ( u v ) {\mathcal O} = \begin{pmatrix} A & B \\ C & D\end{pmatrix} \quad\textrm{such that}\quad
\begin{pmatrix}u' \\ v'\end{pmatrix} = \mathcal O \begin{pmatrix}u \\ v\end{pmatrix} O = ( A C B D ) such that ( u ′ v ′ ) = O ( u v ) satisfies d e t O = 1 {\rm det}\, {\mathcal O} = 1 det O = 1 , D = A ∗ D = A^* D = A ∗ , B = − C ∗ B = -C^* B = − C ∗ . The inverse of such
a transformation is given by
O − 1 = ( D − B − C A ) . {\mathcal O}^{-1} = \begin{pmatrix} D & -B \\ -C & A\end{pmatrix} \,. O − 1 = ( D − C − B A ) .