- 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 \(\mathbf{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 \(\mathbb{A}_{m \times n}\). The set of all possible rectangular 2-arrays is denoted by \(\mathbb{A}_{2}\). 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 \(\mathbf{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 \(\mathbb{A}_{a \times b \times c}\). The set of all possible orthotopic 3-arrays is denoted by \(\mathbb{A}_{3}\). 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 \(\mathbf{A}\) is given by a \(k\)-tuple of natural numbers:
I will refer to \(n_{j}\) as the capacity of the \(j\)-axis. The set of all possible orthotopic \(k\)-arrays with size \(t\) is denoted by \(\mathbb{A}_{t}\). The set of all possible orthotopic \(k\)-arrays is denoted by \(\mathbb{A}_{k}\). It is given by
The set of cubic \(k\)-arrays is a subset of this space.
Addition
Given two rectangular 2-arrays \(\mathbf{A}\) and \(\mathbf{B}\), both with size \((m, n)\), the operation \(\operatorname{add}_{2}(\mathbf{A}, \mathbf{B})\) returns a third 2-array with size \((m, n)\). Thus,
The elements of the 2-array \(\operatorname{add}_{2}(\mathbf{A}, \mathbf{B})\) are found by element-wise adding the elements of \(\mathbf{A}\) with the elements of \(\mathbf{B}\). The addition operation on 2-arrays is commutative:
It is also associative:
In a very similar manner, you can define the operation \(\operatorname{add}_{3}\), and more generally \(\operatorname{add}_{k}\) for adding two \(k\)-arrays of the same size. These operations are also associative and commutative.
Cayley Transposition
A rectangular 2-array \(\mathbf{A}\) with size \((m, n)\) has a total of \(mn\) elements. These can be rearranged into a rectangular 2-array \(T(\mathbf{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 \(S_{2}\), 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 \(S_{3}\), 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 \(T_{j}\). Only \(k\) of these are involutions. Together with the identity element, the \(k! - 1\) Cayley transpositions form \(S_{k}\), the symmetric group of degree \(k\).
Complex Conjugation
If a rectangular 2-array \(\mathbf{A}\) has complex elements, then the complex conjugation operation \(C\) returns a 2-array \(C(\mathbf{A})\) with the same size as \(\mathbf{A}\), but with element-wise complex conjugation. This operation is an involution:
The operation \(C\) together with the identity operation form \(S_{2}\), 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 \(\mathbf{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 \(S_{2} \times S_{2}\), 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 \(S_{3} \times S_{2}\), 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 \(S_{k} \times S_{2}\) with \(2 (k !)\) elements.
Multiplication
The 2-array multiplication operation \(\operatorname{mul}_{2}\) takes a 2-array \(\mathbf{A}\) with size \((m, p)\), and a 2-array \(\mathbf{B}\) with size \((p, n)\), and returns a 2-array \(\operatorname{mul}_{2}{(\mathbf{A}, \mathbf{B})}\) with size \((m, n)\). That is,
If the elements of \(\mathbf{A}\) are denoted by \(A_{\alpha \mu}\), the elements of \(\mathbf{B}\) are denoted by \(B_{\mu \beta}\), and the elements of \(\mathbf{C} = \operatorname{mul}_{2}{(\mathbf{A}, \mathbf{B})}\) are denoted by \(C_{\alpha \beta}\), then
That is, the elements of \(\mathbf{C}\) are found by contracting the column-axis of \(\mathbf{A}\) with the row-axis of \(\mathbf{B}\). It is for this reason that the capacity of the column-axis of \(\mathbf{A}\) must equal the capacity of the row-axis of \(\mathbf{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 \(\operatorname{mul}_{2}\) 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 \(\operatorname{mul}_{3}\) 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 \(\mathbf{A}\) be a 3-array with size \((a, p, q)\), \(\mathbf{B}\) be a 3-array with size \((p, b, r)\), and \(\mathbf{C}\) be a 3-array with size \((q, r, c)\). The triangle product \(\mathbf{D} = \operatorname{mul}_{3}{(\mathbf{A}, \mathbf{B}, \mathbf{C})}\) is a 3-array with size \((a, b, c)\). The elements of \(\mathbf{D}\) are given by
Here are more details:
- The 1-axis of \(\mathbf{A}\) survives as the 1-axis of \(\mathbf{D}\).
- The 2-axis of \(\mathbf{A}\) is contracted with the 1-axis of \(\mathbf{B}\).
- The 3-axis of \(\mathbf{A}\) is contracted with the 1-axis of \(\mathbf{C}\).
- The 2-axis of \(\mathbf{B}\) survives as the 2-axis of \(\mathbf{D}\).
- The 3-axis of \(\mathbf{B}\) is contracted with the 2-axis of \(\mathbf{C}\).
- The 3-axis of \(\mathbf{C}\) survives as the 3-axis of \(\mathbf{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 \(\operatorname{mul}_{k}\) 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.