- Wed 06 May 2015
- Maths
- #three-array
Lately, I have been thinking about vectors, matrices and linear algebra. Indeed, I have been thinking about higher-dimensional generalizations of matrices, i.e. from two-dimensional arrays of numbers to three-dimensional arrays of numbers. This was triggered by reading this blog post on tensors. In this post I will propose some generalizations to many of the properties of 2-arrays to the case of 3-arrays.
Orthotopic k-Arrays
A matrix is a rectangular array of elements. The 3-dimensional analog of a rectangle is the cuboid (also known as a 3-orthotope). Arranging elements into a cuboidal array yields what I will call a cuboidal 3-array. A square matrix is a special case where the 2-array has a square shape. The 3-dimensional analog of a square is the cube. Arranging elements into a cubic array yields what I will call a cubic 3-array.
More generally, the k-dimensional analog of a rectangle is the k-orthotope, and the k-dimensional analog of a square is the k-cube. Arranging elements into a k-orthotopic array yields an orthotopic k-array. Similarly, arranging elements into a k-cubic array yields a cubic k-array.
The discussion below will have the following form: I will first introduce a property of a 2-array, then I will propose the analog of the property for 3-arrays, and finally I will comment on the general case for k-arrays.
Size
The size of a rectangular 2-array A is given by a 2-tuple of natural numbers:
Here m is the number of rows, and n is the number of columns. I will refer to m as the capacity of the row-axis, and n as the capacity of the column-axis. The set of all possible 2-arrays with size (m,n) is denoted by Am×n. The set of all possible rectangular 2-arrays is denoted by A2. It is given by
The set of square 2-arrays is a subset of this space. The 2-tuples of natural numbers can be arranged in a semi-infinite triangular array, similar to Pascal's triangle:
The 2-tuple on top of the triangle describes the size of 2-arrays that correspond to scalars (plain numbers). The left outer edge of the triangle describes the size of 2-arrays that correspond to row vectors. Similarly, the right outer edge of the triangle describes the size of 2-arrays that correspond to column vectors. Finally, the internal triangle, with (2,2) being on top, describes the size of rectangular 2-arrays.
In a similar manner, the size of an orthotopic 3-array A is given by a 3-tuple of natural numbers:
I will refer to a as the capacity of the 1-axis, to b as the capacity of the 2-axis, and c as the capacity of the 3-axis. The set of all possible orthotopic 3-arrays with size (a,b,c) is denoted by Aa×b×c. The set of all possible orthotopic 3-arrays is denoted by A3. It is given by
The set of cubic 3-arrays is a subset of this space. The 3-tuples of natural numbers can be arranged in a semi-infinite tetrahedral array, similar to Pascal's tetrahedron. The top vertex of this tetrahedron describes the size of 3-arrays that correspond to scalars. Each of the three edges from the top vertex correspond to the size of 3-arrays that correspond to vectors (three kinds now). Each of the three faces correspond to the size of 3-arrays that correspond to 2-arrays. The internal tetrahedron, with the 3-tuple (2,2,2) being on top, describes the size of orthotopic 3-arrays.
More generally, the size of an orthotopic k-array A is given by a k-tuple of natural numbers:
I will refer to nj as the capacity of the j-axis. The set of all possible orthotopic k-arrays with size t is denoted by At. The set of all possible orthotopic k-arrays is denoted by Ak. It is given by
The set of cubic k-arrays is a subset of this space.
Addition
Given two rectangular 2-arrays A and B, both with size (m,n), the operation add2(A,B) returns a third 2-array with size (m,n). Thus,
The elements of the 2-array add2(A,B) are found by element-wise adding the elements of A with the elements of B. The addition operation on 2-arrays is commutative:
It is also associative:
In a very similar manner, you can define the operation add3, and more generally addk for adding two k-arrays of the same size. These operations are also associative and commutative.
Cayley Transposition
A rectangular 2-array A with size (m,n) has a total of mn elements. These can be rearranged into a rectangular 2-array T(A) with size (n,m) by swapping the row-axis with the column-axis. This operation is called the Cayley transposition:
The Cayley transposition is an involution:
where I is the identity operation. The operations I and T form S2, the symmetric group of degree 2.
Similarly, an orthotopic 3-array with size (a,b,c) has a total of abc elements. These can be rearranged into five other orthotopic 3-arrays, corresponding to the 3!−1=5 permutations of its three axes. Thus, there are five Cayley transpositions:
Three of these are involutions:
The other two are each other's inverses:
The five Cayley transpositions and the identity operation form S3, the symmetric group of degree 3.
More generally, an orthotopic k-array can be rearranged into k!−1 different orthotopic k-arrays. Thus, you will have k!−1 Cayley transpositions Tj. Only k of these are involutions. Together with the identity element, the k!−1 Cayley transpositions form Sk, the symmetric group of degree k.
Complex Conjugation
If a rectangular 2-array A has complex elements, then the complex conjugation operation C returns a 2-array C(A) with the same size as A, but with element-wise complex conjugation. This operation is an involution:
The operation C together with the identity operation form S2, the symmetric group of degree 2.
Complex conjugation can be defined in the same way for 3-arrays, and also for k-arrays.
Hermite Transposition
The Hermite transposition operation H on a rectangular 2-array A is defined by composing complex conjugation with Cayley transposition:
Hermite transposition on a 2-array is an involution. The operations C, T, H, and the identity form the group S2×S2, which is equivalent to the dihedral group of order 4.
There are five Cayley transpositions on a 3-array, so there are five Hermite transpositions:
Only three of these are involutions. The composition of two distinct Hermite transpositions is a Cayley transposition. The five Hermite transpositions, together with the five Cayley transpositions, C and the identity operation form the group S3×S2, which is equivalent to the dihedral group of order 12.
A similar story holds for k-arrays: you have k!−1 Hermite transpositions, some of them are involutions, and together with the k!−1 Cayley transpositions, the complex conjugation operation, and the identity operation they form the group Sk×S2 with 2(k!) elements.
Multiplication
The 2-array multiplication operation mul2 takes a 2-array A with size (m,p), and a 2-array B with size (p,n), and returns a 2-array mul2(A,B) with size (m,n). That is,
If the elements of A are denoted by Aαμ, the elements of B are denoted by Bμβ, and the elements of C=mul2(A,B) are denoted by Cαβ, then
That is, the elements of C are found by contracting the column-axis of A with the row-axis of B. It is for this reason that the capacity of the column-axis of A must equal the capacity of the row-axis of B.
The multiplication operation satisfies the property
This is how you distribute the Cayley transposition operation on a product of 2-arrays.
One way to motivate the 2-array multiplication operation is by viewing each rectangular 2-array as a line with two endpoints (i.e. a 1-simplex): the row-axis and the column-axis. The operation mul2 takes two lines and concatenates them to return another line. The concatenation contracts the column-axis of the first 2-array with the row-axis of the second 2-array.
I want the 3-array multiplication operation mul3 to return a 3-array. A 3-array has three axes. Viewing each orthotopic 3-array as a triangle (i.e. a 2-simplex), it appears one needs to concatenate three triangles to return another triangle. This leads me to introduce the triangle product operation, which is a ternary operation:
Let A be a 3-array with size (a,p,q), B be a 3-array with size (p,b,r), and C be a 3-array with size (q,r,c). The triangle product D=mul3(A,B,C) is a 3-array with size (a,b,c). The elements of D are given by
Here are more details:
- The 1-axis of A survives as the 1-axis of D.
- The 2-axis of A is contracted with the 1-axis of B.
- The 3-axis of A is contracted with the 1-axis of C.
- The 2-axis of B survives as the 2-axis of D.
- The 3-axis of B is contracted with the 2-axis of C.
- The 3-axis of C survives as the 3-axis of D.
The triangle product satisfies these properties:
This is how you distribute the Cayley transpositions on a triangle product of 3-arrays. These are natural generalizations of the property for 2-arrays.
Presumably, for the case of k-arrays, the multiplication operation mulk takes k orthotopic k-arrays and returns another orthotopic k-array. The contraction is done in such a way as to preserve the k-simplex structure.
I will explore more properties of the triangle product in a future post.