In mathematics, the Kronecker product, denoted by , is an operation on two matrices of arbitrary size resulting in a block matrix. It is a special case of a tensor product. The Kronecker product should not be confused with the usual matrix multiplication, which is an entirely different operation. It is named after German mathematician Leopold Kronecker.
The Kronecker product is a special case of the tensor product, so it is bilinear and associative:
where A, B and C are matrices and k is a scalar.
The Kronecker product is not commutative: in general, AB and BA are different matrices. However, AB and BA are permutation equivalent, meaning that there exist permutation matricesP and Q such that
If A and B are square matrices, then AB and BA are even permutation similar, meaning that we can take P = QT.
If A, B, C and D are matrices of such size that one can form the matrix products AC and BD, then
This is called the mixed-product property, because it mixes the ordinary matrix product and the Kronecker product. It follows that AB is invertibleif and only ifA and B are invertible, in which case the inverse is given by
Suppose that A and B are square matrices of size n and q respectively. Let λ1, ..., λn be the eigenvalues of A and μ1, ..., μq be those of B (listed according to multiplicity). Then the eigenvalues of AB are
It follows that the trace and determinant of a Kronecker product are given by
The Kronecker product of matrices corresponds to the abstract tensor product of linear maps. Specifically, if the matrices A and B represent linear transformations V1 → W1 and V2 → W2, respectively, then the matrix AB represents the tensor product of the two maps, V1V2 → W1W2.
The Kronecker product can be used to get a convenient representation for some matrix equations. Consider for instance the equation AXB = C, where A, B and C are given matrices and the matrix X is the unknown. We can rewrite this equation as
It now follows from the properties of the Kronecker product that the equation AXB = C has a unique solution if and only if A and B are nonsingular (Horn & Johnson 1991, Lemma 4.3.1).
Here, vec(X) denotes the vectorization of the matrix X formed by stacking the columns of X into a single column vector.
If X is row-ordered into the column vector x then can be also be written as (Jain 1989, 2.8 block Matrices and Kronecker Products)
The Kronecker product is named after Leopold Kronecker, even though there is little evidence that he was the first to define and use it. Indeed, in the past the Kronecker product was sometimes called the Zehfuss matrix, after Johann Georg Zehfuss.
Two related matrix operators are the Tracy-Singh and Khatri-Rao products which operate on partitioned matrices. Let the -by- matrix be partitioned into the -by- blocks and -by- matrix into the -by- blocks Bkl with of course , , and We then define the Tracy-Singh product to be
which means that the th subblock of the -by- product is the -by- matrix , of wich the th subblock equals the -by- matrix .
For example, if and both are -by- partitioned matrices e.g.:
we get:
The Khatri-Rao product is defined as
in which the th block is the -by--sized Kronecker product of the corresponding blocks of and , assuming that the 'horizontal' and 'vertical' number of subblocks of both matrices is equal. The size of the product is then -by-. Proceeding with the same matrices as the previous example we obtain:
A column-wise Kronecker product,also called the Khatri-Rao product of two matrices assumes the partitions of the matrices as their columns. In this case , , and . The resulting product is a -by- matrix of which each column is the Kronecker product of the corresponding columns of and . We can only use the matrices from the previous examples if we change the partitions: