This is the start of a book on transformation geometry using Mathematica’s TransformationFunctions to give explicit descriptions of the possible groups of transformations. In this post I give some preliminary material and then focus on finite rotation groups in . As an application I consider panelings of modern footballs (soccer balls). CITATION (original book): Barry H Dayton, Transformation Functions and Symmetry, https://barryhdayton.space/TransformationFunctionsAndSymmetry.pdf
3
In the In the 1965-66 school year I took an upper level abstract algebra course from Paul Yale, a professor at Pomona College. His motivation for teaching the course is that he was writing a book Geometry and Symmetry which was published by Holden-Day in 1968. Yale wanted to learn more group theory for his book so he chose the brand new textbook Topics in Algebra by I.N Herstein. This was a mistake for two reasons. First, it was much too hard for most of his students, a fact that Herstein later rectified by writing a later version. Second, Herstein used the functional notation instead of the that most of us are more familiar. But Yale then used this notation in his book which makes it unreadable for modern readers.
xf
f(x)
There was another problem with Yale' s book which was unavoidable at that time, the lack of a good overall group of transformations to cover all the situations Yale studied . Mathematica has now provided this group, invertible transformation functions, and they can be easily calculated . Now it is possible to go into much more detail .
My plan is to revisit the material in Yale' s book using Mathematica and Transformation Functions . As I write material I will post it . I will keep going as long as I can given my age, hopefully I will ultimately cover much of the book . The book will be published in two formats, as text, HTML or PDF, and as a Mathematica notebook so those with Mathematica can use my functions . The functions themselves will also be offered in a separate notebook .
1. Matrix Groups
1. Matrix Groups
I will discuss some elementary matrix theory here mostly to show Mathematica usage for those unfamiliar with it. In Mathematica a matrix is a 2 - dimensional array . A typical 3×3 matrix look like
In[]:=
A={{1,2,3},{4,5,6},{7,8,9}};
We can make it display like a usual matrix
In[]:=
A//MatrixForm
Out[]//MatrixForm=
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
The element in the second row, third column can be recovered by
In[]:=
A[[2,3]]
Out[]=
6
To multiply a matrix by a vector we use the dot
In[]:=
A.{1,2,3}
Out[]=
{14,32,50}
Note Mathematica automatically converts the row vector to column vector form. So this could be written
In[]:=
A.{{1},{2},{3}}
Out[]=
{{14},{32},{50}}
where now the output is a column.
Matrix multiplication is given by the same . function where the first matrix is multiplied by each column of the second, but as above giving columns. If B is the matrix
In[]:=
B={{1,-1,3},{2,1,2},{3,-1,5}};B//MatrixForm
Out[]//MatrixForm=
1 | -1 | 3 |
2 | 1 | 2 |
3 | -1 | 5 |
Then
In[]:=
A.B//MatrixForm
Out[]//MatrixForm=
14 | -2 | 22 |
32 | -5 | 52 |
50 | -8 | 82 |
Note the matrix form matrices are not Mathematica variables but if you cut and paste Mathematica can still understand.
In[]:=
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
1 | -1 | 3 |
2 | 1 | 2 |
3 | -1 | 5 |
Out[]=
{{14,-2,22},{32,-5,52},{50,-8,82}}
or
In[]:=
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
1 | -1 | 3 |
2 | 1 | 2 |
3 | -1 | 5 |
Out[]//MatrixForm=
14 | -2 | 22 |
32 | -5 | 52 |
50 | -8 | 82 |
The identity matrix is the n×n matrix with diagonal entries 1 and other entries 0.
ℑn
In[]:=
ℑ3=IdentityMatrix[3]//MatrixForm
Out[]//MatrixForm=
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
A matrix is invertible if there is a matrix so that for suitable n. It can be shown that for this to happen both matrices must be n×n for the same n. Although, in general, matrix multiplication is not commutative in this case given A is a square matrix it is known that one of or already implies they are inverses, that is invertible. Almost all square matrices in this book are assumed invertible.
A
B
A.B=B.A=ℑn
A.B=ℑn
B.A=ℑn
Notice that for the matrix B above
In[]:=
B
Out[]=
{{1,-1,3},{2,1,2},{3,-1,5}}
that
In[]:=
-1
B
Out[]=
1,-1,,,1,,,-1,
1
3
1
2
1
2
1
3
1
5
not the actual
In[]:=
Inverse[B]
Out[]=
-,-,,{1,1,-1},,,-
7
4
1
2
5
4
5
4
1
2
3
4
Thus we must be careful to not use the superscript - 1 in the matrix context. More generally, to get the power of a matrix, say A.A.A use
In[]:=
MatrixPower[A,3]
Out[]=
{{468,576,684},{1062,1305,1548},{1656,2034,2412}}
not
In[]:=
A^3
Out[]=
{{1,8,27},{64,125,216},{343,512,729}}
So, unfortunately we must use the term I or for the inverse of a matrix in Mathematica.
nverse[B]
MatrixPower[B,-1]
Incidentally the matrix above is not invertible
A
In[]:=
MatrixPower[A,-1]
Out[]=
MatrixPower[{{1,2,3},{4,5,6},{7,8,9}},-1]
an error message is given when trying to invert it , non-invertible matrices are called singular. See a linear algebra book or my Appendix 1 of my Plane Curve book for a full discussion of invertibility, particularly in the difficult case of numerical matrices.
Given this, I define a matrix group to be a set of invertible matrices of the same size so that if are in the group so is , and .
A,B
A.B
Inverse[A]
Inverse[B]
Two trivial examples are the zero group {ℑ} and the full set of all invertible n×n matrices. In the latter case this is because the inverse of an invertible matrix is by definition and the product of invertible matrices is invertible because .Inverse[A].
Inverse[A.B]=Inverse[B]
Matrix groups may be finite or infinite. For simple example of a finite Matrix group, let k be a fixed odd integer
In[]:=
A=N[{{Cos[2Pi/k],-Sin[2Pi/k]},{Sin[2Pi/k],Cos[2Pi/k]}}]
Out[]=
Cos,-1.Sin,Sin,Cos
6.28319
k
6.28319
k
6.28319
k
6.28319
k
where k is a positive odd integer . We will show the powers of A forms a group with elements.
k
For now let k = 5.
In[]:=
A5=A/.{k->5}
Out[]=
{{0.309017,-0.951057},{0.951057,0.309017}}
The powers are given by
In[]:=
RecurrenceTable[{P[i+1]==A5.P[i],P[1]==A5},P,{i,k}]
Out[]=
RecurrenceTable[{P[1+i]{{0.309017,-0.951057},{0.951057,0.309017}}.P[i],P[1]{{0.309017,-0.951057},{0.951057,0.309017}}},P,{i,k}]
Note the last matrix is the identity matrix so this will repeat . The reader with Mathematica should try some more of these.
Many important matrix groups are important . Geometrically matrices with positive determinants are orientation preserving. Historically when most math problems came with integer coefficients determinants were useful for calculation since one could avoid fractions or decimals. Nowadays we are allowed to use decimals so determinants are an inefficient way to calculate. Mathematica can calculate the determinant of a square matrix for you if you need it.
The important point is that determinants satisfy
AisinvertibleifandonlyifDet[A]!=0
(
1
)Det[A.B]=Det[A]×Det[B]
(
2
)Det[Inverse[A]]=1/Det[A]
(
3
)The possible problem with (1) is that with numerical matrices not being zero is a tricky concept so (1) should just be used in theory, again see my Appendix 1 in my Plane Curve Book.
But (1), (2), (3) together imply that the set of matrices with positive determinant form a matrix group as does the set of matrices with determinant 1.
Another important matrix group is the group of orthogonal matrices. A square matrix is orthogonal if either one of the following are true
Norm[A.v]=Norm[v]foreveryvectorv
(
4
)Inverse[A]=Transpose[A]
(
5
)There actually are many more characterizations of orthogonality . In (4) Norm[v] is also known as the length of v or |v|. For (5) the transpose changes rows to columns. Transpose[A] is also given by A^T
In[]:=
Transpose[{{1,2,3},{4,5,6},{7,8,9}}]//MatrixForm
Out[]//MatrixForm=
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
The reader can check using random matrices that transpose anti-commutes with multiplication and commutes with inverses so
Transpose[A.B]=Transpose[B].Transpose[A]
(
6
)Inverse[Transpose[A]]=Transpose[Inverse[A]]
(
7
)Then one can show the set of orthogonal matrices form a group using (5).
Finally one can show that all invertible matrices of the forms
In[]:=
{{a,b,c},{e,f,g},{0,0,1}}//MatrixForm
Out[]//MatrixForm=
a | b | c |
e | f | g |
0 | 0 | 1 |
form a group and in fact a matrix of this form is invertible if and only if
In[]:=
{{a,b},{e,f}}//MatrixForm
Out[]//MatrixForm=
a | b |
e | f |
is invertible. Moreover if this latter matrix is orthogonal. A similar thing holds for 4×4 or larger matrices.
2. Transformation Functions
2. Transformation Functions
2.4 Groups of Transformation Function Isometries.
2.4 Groups of Transformation Function Isometries.
3.2 Paneling the Sphere -- Soccer Balls
3.2 Paneling the Sphere -- Soccer Balls
In my general audience paper Soccer Balls barryhdayton.space/SoccerBalls.pdf I promised to give the actual code used. This subsection will do this, however it will not be necessary to read that paper first. Before beginning I give several routines which will allow me to work on the sphere instead of polygons.
The main routine is
This routine returns a list of points del apart from p to q . The actual line will be Line[spLn[p,q]] inside a Graphics3d routine.
This has two short forms, spLn[p,q] gives the spherical line from p to q, spLen[p,q] gives the length of that line as a curve in 3-space.
We have a special routine to find the midpoint of a spherical line . Warning: if the option del of sphereLn is used then the new middle point of sphereLn should be used.
Since I will have many graphics with a sphere a quick syntax will be
The length is approximately
For a better approximation compare the precise answer
We also wish to draw and color a spherical polygon . If we just want the outline we have the following routine which is used inside the graphic primitive Polygon.
For example dPanel1 on the spherical decahedron is
To fill polygons have subroutines
For small polygons the following may be sufficient
To color the entire spherical dodecahedron
For the purpose of paneling soccer balls dodecahedral paneling is often used, especially by Nike .
3.1 More on the group GIcos, the Copa America Ball
3.1 More on the group GIcos, the Copa America Ball
Further, note that the group GIcos also acts on this set of axis Points, in fact on each of the 3 subsets separately. This makes the set useful for constructing panelings of the sphere. An example follows.
A strange soccer ball was designed by Puma to be used in the 2024 Copa America. The important thing is the group GIcos which has a 5 fold rotation. Since we are only accepting direct isometries which can be physically applied to a soccer ball, there are no reflections. Thus our panels must have a rotational symmetry but need not be symmetric. The Copa America ball, made by Puma, takes advantage of this as the ball is designed to have symmetry group GIcos.
Construction of a replica ball is a good example of the use of our explicit description of GIcos.
We recall in 3.1.4
Construction of a replica ball is a good example of the use of our explicit description of GIcos.
We recall in 3.1.4
We start with a 3 - fold axis point
We then construct a specific, but somewhat arbitrary point b using a rotation in GIcos..
Now we rotate that point about a half turn in GIcos
and end at another 3 - fold axis point
We compare with the panel on the Puma Copa America ball
Now we have our base panel
We note that the group association we need is just that of the dodecahedron so we panel our ball.
3.2.1 The traditional Soccer Ball
3.2.1 The traditional Soccer Ball
This ball motivated this chapter. Originally these were hand sewed with 32 panels, 12 black pentagons and 20 white hexagons. Here, as in the rest of this section, there will be, unlike the platonic solids, two or more spherical polygonal shaped panels.
A rotation transform will be a panel symmetry if it takes panels to like panels. The set of panel symmetries of a paneled sphere is clearly a group. In this case, if embedded correctly in 3-space the group of panel symmetries will be the group GIcos. As we will see, there are many possible paneling with this group.
Here is how we can plot a traditional soccer ball using Mathematica .
We use σ , τ from section 3.1.4, let
These generated the group
Sparing the reader the details we define a pentagon
and a hexagon
These are left unchanged by σ, τ respectively.
Actually HexPanel0 is left unchanged by 6-fold rotation so is a regular hexagon. However there are only 3 pentagons adjacent to a given hexagon on the soccer ball so there is only a three fold rotation of the soccer ball at the center of a hexagonal panel.
This pentagon and hexagon have been chosen because, just looking at their outlines, we have the following picture.
The 5 regular hexagons exactly surround the regular pentagon. Remember these are all drawn on the sphere, this picture cannot be drawn on the plane (check angles)!
To draw the entire figure
3.2.2 Variations on the traditional soccer ball
3.2.2 Variations on the traditional soccer ball
The traditional ball has a regular pentagon and hexagon. There is only one possibility of the ratio of the sides of the pentagon vs. the radius of the ball. However if we relax the condition that the hexagonal panel is regular to simply having 3-fold rotations about the centroids then we can produce an infinite family of balls. This can be seen on many imitation soccer balls.
So we pick a point p1 on the unit sphere closer to {0,0,1} than the vertexes of the traditional pentagon.
We will have the pentagon
These small pentagons can then populate the sphere
I have drawn a hexagon with a 3-fold, but not 6 -fold rotation symmetry around its centroid.
This hexagon has centroid
which is just
Then using our standard procedure we get panels
giving the graphic
If we continue shrinking the size of the pentagons we end up with
which is essentially an icosahedron .
On the other hand we could take a larger pentagon than the traditional one . We keep the center at {0,0,1} but put one vertex at
Using a similar construction to the above we get
Continuing enlarging the pentagon we don’t get a dodecahedron. Rather the hexagons will become triangles, with one vertex, red, at
This pentagon will be
The triangle formed by the red and green points will replace the hexagons.
The pentagon will be
We now proceed as before
The corresponding polyhedron is known as the icosidodecahedron.
So we have a continuum of Archimedean polyhedra/paneling from the icosahedron to the icosidodecahedron which has the traditional soccer ball in the middle.
3.2.3 Another continuum
3.2.3 Another continuum
We give another continua of polyhedra directly from the icosahedron to the dodecahedron, or their ball panelings with GIcos as their transformation group. This will miss the soccer balls but clearly show the group action. But they will be in the class of prisms and now we will have 3 types of sides/panels.
We will define the initial panels by using the pentagons above starting with the traditional soccer ball pentagon.
We apply a rotation about {0,0,1}, the centroid, of angle 2 π/10
Our basic panel is then
Applying τ to this panel we get more copies of this panel and we see the space between adjacent panels can be filled by 2 rectangles and an equilateral triangle.
We now follow our basic construction,
Now we can draw our central prism
Notice we have 62 panels. In fact each panel centroid corresponds to one of our axis points.
As above with the earlier continuum we get another parameterized by the side of a pentagon running from the icosahedron to the dodecahedron. The constructions are the same as before so are not given. The corresponding balls look like this.
Note the smaller the pentagon the larger the triangles until the pentagon shrinks to a point. As the pentagon shrinks the rectangles shrink in width until they become a line segment. On the the other hand as the pentagons get larger the triangles shrink until they become a point and the rectangles shrink in length until they become a line segment so only the 12 pentagons of the dodecahedron remain.
3.2.4 The polyhedral can
3.2.4 The polyhedral can
The transformation group is generated by a 7 fold rotation about the z-axis and a half turn about the x-axis.
The order association is
So we have the 6 rotations of order 7 plus the identity rotation about the z-axis (red) and 7 half turns about horizontal axes in the xy plane from each vertical edge to the midpoint between vertical edges opposite. This is certainly a new group for us. These are shown
We have a similar situation for all integers greater than 2. These groups are called dihedral groups of order 2n. If n is odd they have n-1 rotations of order n and the identity rotations and n half-turns order 2. For even n there will be 2 rotations of order n and more than n rotations of order 2. For example if n=8
One check on a group being a dihedral group is that it should be generated by two of its half turns other than using the vertical axis.
3.2.6 One last soccer ball
3.2.6 One last soccer ball
In 2024 in honor of the Olympic Games Adidas produced a replica of its Olympic ball which was somewhat simplified from its match ball
Like the Nike balls, this ball has 12 pentagonal panels. But unlike the Nike balls this panel is not a regular pentagon, one side is half the length of the other 4 sides. So this pentagon does not have rotational symmetry. We do, however see two symmetries of this ball, the rotations κ and λ above where κ is the half turn about the top circular region and λ is the 3 fold rotation seen in the dark blue area above right. As we just showed, these generate a 12-order group isomorphic to the group Gtet. Starting with one given pentagon each of the others is given by exactly one Transformation Function in the group applied to the given pentagon.
The trick is to find one base panel. We start with a regular pentagon
Here is the polyhedron version of the Olympic Replica Ball paneling.
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Transformation functions and symmetry
by Barry H Dayton
Wolfram Community, STAFF PICKS, December 5, 2024
https://community.wolfram.com/groups/-/m/t/3333840
by Barry H Dayton
Wolfram Community, STAFF PICKS, December 5, 2024
https://community.wolfram.com/groups/-/m/t/3333840
