There is more than one way to define hyperdeterminants but I think the most natural is to define it as a discriminant. Hyperdeterminants are defined for tensors T, that are an element of the tensor product of a number of finite dimensional vector spaces:
T ∈ V1 ⊗ … ⊗ Vn
The vector spaces don’t have to have the same dimension. We’ll use the symbol Ni for the dimension of vector space Vi. In case you don’t like thinking in terms of tensors you can just regard T as a multidimensional array of numbers of size N1 x … x Nn. Sometimes it is called a hypermatrix to emphasize that it is a generalization of a matrix which is an array of N1 x N2 numbers. The components of the array can be written with an index notation Tabc…hIf on the other hand you like to maximise your mathematical sophistication you might prefer to think of the vector spaces as projective spaces and use a Segre embedding in place of the tensor product. You can do that because everything we do is homogeneous and works up to a non-zero factor multiplying the vectors and hypermatrices. Since this is a relatively unsophisticated blog I will mostly talk in terms of hypermatrices but I will sometimes use the “format” of a hypermatrix which is defined as the n-tuple of numbers (N1-1,…,Nn-1). This notation reflects the importance of the dimension of the projective spaces which are one less than the dimension of the corresponding vector spaces.
I should also clarify what I mean by “numbers” as components of the hypermatrix. They can actually be elements of any field but to keep things simple Let’s just think of them as complex numbers for the purposes of this definition. Once we have constructed hyperdeterminants as polynomials we can happily stick elements of other fields or even rings into the components of the hypermatrix and freely use the hyperdeterminant for those too.
Now here’s the definition. Using our tensor/hypermatrix T we can define a function F from an n-tuple of vectors (x1,…,xn) to the real numbers by contracting the vectors over the tensor. These vectors are elements of the dual vector spaces Vi*. In less sophisticated terms, F is just a multi-linear polynomial that can be written as a sum over component indices
F(x1,…,xn) = Σ ta…h x1(a)…xn(h)
(We use superscripts rather than subscripts for the indices of the vectors because they are elements of the dual space. They are in brackets to avoid confusion with power exponents which we will also be using later).
A stationary point of this function is one where all the partial derivatives with respect to all the components of the vectors is zero. We call a stationary point a singularity if all the vector arguments are non-zero. For a given hypermatrix there is not always a singularity present. When there is at least one singularity we say the hypermatrix is singular. In the vector space of all possible hypermatrices with a given format, the ones which do have a singularity may fall on a surface described by a single equation given by the zero of a polynomial in the components of the tensor, P(T) = 0. In other words the polynomial is a discriminant for the singular hypermatrix. When this happens the polynomial is the hyperdeterminant of the hypermatrix times a factor. This condition defines the hyperdeterminant up to a factor.
To complete the definition the factor has to be fixed. This can be done either by specifying the value of the hyperdeterminant for one specific hypermatrix of each format or by fixing one of the coefficients of the polynomial. Both of these options are a little messy but I’ll choose the latter. The components of the tensor can be ordered into a sequence using the numerical order of the indices like this (T1 1…1, T2 1…1, … , T1 2…1, T2 2…1…). The monomial terms in the hyperdeterminant are a coefficient times powers of these components, so these monomials can also be ordered to put the ones first that have the highest powers in the components of the hypermatrix that come first in the sequence above. Once that has been done we fix the hyperdeterminant by specifying that the coefficient of the first non-zero term in this ordering is one.
That completes the definition and it just remains to say that the hyperdeterminant is denoted using the same notation as for the determinant det(T) = |T|. To make sure we are being consistent we must demonstrate that the definition of the hyperdeterminant is the same as the determinant for the special case of matrices. That will be the next post.