Kronecker product
   HOME

TheInfoList



OR:

In
mathematics Mathematics is a field of study that discovers and organizes methods, Mathematical theory, theories and theorems that are developed and Mathematical proof, proved for the needs of empirical sciences and mathematics itself. There are many ar ...
, the Kronecker product, sometimes denoted by ⊗, is an operation on two matrices of arbitrary size resulting in a block matrix. It is a specialization of the
tensor product In mathematics, the tensor product V \otimes W of two vector spaces V and W (over the same field) is a vector space to which is associated a bilinear map V\times W \rightarrow V\otimes W that maps a pair (v,w),\ v\in V, w\in W to an element of ...
(which is denoted by the same symbol) from vectors to matrices and gives the matrix of the
tensor product In mathematics, the tensor product V \otimes W of two vector spaces V and W (over the same field) is a vector space to which is associated a bilinear map V\times W \rightarrow V\otimes W that maps a pair (v,w),\ v\in V, w\in W to an element of ...
linear map with respect to a standard choice of basis. The Kronecker product is to be distinguished from the usual
matrix multiplication In mathematics, specifically in linear algebra, matrix multiplication is a binary operation that produces a matrix (mathematics), matrix from two matrices. For matrix multiplication, the number of columns in the first matrix must be equal to the n ...
, which is an entirely different operation. The Kronecker product is also sometimes called matrix direct product. The Kronecker product is named after the German mathematician
Leopold Kronecker Leopold Kronecker (; 7 December 1823 – 29 December 1891) was a German mathematician who worked on number theory, abstract algebra and logic, and criticized Georg Cantor's work on set theory. Heinrich Weber quoted Kronecker as having said, ...
(1823–1891), even though there is little evidence that he was the first to define and use it. The Kronecker product has also been called the ''Zehfuss matrix'', and the ''Zehfuss product'', after , who in 1858 described this matrix operation, but Kronecker product is currently the most widely used term. The misattribution to Kronecker rather than Zehfuss was due to Kurt Hensel.


Definition

If A is an matrix and B is a matrix, then the Kronecker product is the block matrix: :\mathbf\otimes\mathbf = \begin a_ \mathbf & \cdots & a_\mathbf \\ \vdots & \ddots & \vdots \\ a_ \mathbf & \cdots & a_ \mathbf \end, more explicitly: : = \begin a_ b_ & a_ b_ & \cdots & a_ b_ & \cdots & \cdots & a_ b_ & a_ b_ & \cdots & a_ b_ \\ a_ b_ & a_ b_ & \cdots & a_ b_ & \cdots & \cdots & a_ b_ & a_ b_ & \cdots & a_ b_ \\ \vdots & \vdots & \ddots & \vdots & & & \vdots & \vdots & \ddots & \vdots \\ a_ b_ & a_ b_ & \cdots & a_ b_ & \cdots & \cdots & a_ b_ & a_ b_ & \cdots & a_ b_ \\ \vdots & \vdots & & \vdots & \ddots & & \vdots & \vdots & & \vdots \\ \vdots & \vdots & & \vdots & & \ddots & \vdots & \vdots & & \vdots \\ a_ b_ & a_ b_ & \cdots & a_ b_ & \cdots & \cdots & a_ b_ & a_ b_ & \cdots & a_ b_ \\ a_ b_ & a_ b_ & \cdots & a_ b_ & \cdots & \cdots & a_ b_ & a_ b_ & \cdots & a_ b_ \\ \vdots & \vdots & \ddots & \vdots & & & \vdots & \vdots & \ddots & \vdots \\ a_ b_ & a_ b_ & \cdots & a_ b_ & \cdots & \cdots & a_ b_ & a_ b_ & \cdots & a_ b_ \end. Using /\!/ and \% to denote truncating integer division and
remainder In mathematics, the remainder is the amount "left over" after performing some computation. In arithmetic, the remainder is the integer "left over" after dividing one integer by another to produce an integer quotient ( integer division). In a ...
, respectively, and numbering the matrix elements starting from 0, one obtains :(A\otimes B)_ = a_ b_ :(A\otimes B)_ = a_ b_. For the usual numbering starting from 1, one obtains : (A\otimes B)_ = a_ b_ : (A\otimes B)_ = a_ b_. If A and B represent linear transformations and , respectively, then the
tensor product In mathematics, the tensor product V \otimes W of two vector spaces V and W (over the same field) is a vector space to which is associated a bilinear map V\times W \rightarrow V\otimes W that maps a pair (v,w),\ v\in V, w\in W to an element of ...
of the two maps is a map represented by .


Examples

: \begin 1 & 2 \\ 3 & 4 \\ \end \otimes \begin 0 & 5 \\ 6 & 7 \\ \end = \begin 1 \begin 0 & 5 \\ 6 & 7 \\ \end & 2 \begin 0 & 5 \\ 6 & 7 \\ \end \\ 3 \begin 0 & 5 \\ 6 & 7 \\ \end & 4 \begin 0 & 5 \\ 6 & 7 \\ \end \\ \end = \left[\begin 1\times 0 & 1\times 5 & 2\times 0 & 2\times 5 \\ 1\times 6 & 1\times 7 & 2\times 6 & 2\times 7 \\ \hline 3\times 0 & 3\times 5 & 4\times 0 & 4\times 5 \\ 3\times 6 & 3\times 7 & 4\times 6 & 4\times 7 \\ \end\right] = \left[\begin 0 & 5 & 0 & 10 \\ 6 & 7 & 12 & 14 \\ \hline 0 & 15 & 0 & 20 \\ 18 & 21 & 24 & 28 \end\right]. Similarly: : \begin 1 & -4 & 7 \\ -2 & 3 & 3 \end \otimes \begin 8 & -9 & -6 & 5 \\ 1 & -3 & -4 & 7 \\ 2 & 8 & -8 & -3 \\ 1 & 2 & -5 & -1 \end = \left[\begin 8 & -9 & -6 & 5 & -32 & 36 & 24 & -20 & 56 & -63 & -42 & 35 \\ 1 & -3 & -4 & 7 & -4 & 12 & 16 & -28 & 7 & -21 & -28 & 49 \\ 2 & 8 & -8 & -3 & -8 & -32 & 32 & 12 & 14 & 56 & -56 & -21 \\ 1 & 2 & -5 & -1 & -4 & -8 & 20 & 4 & 7 & 14 & -35 & -7 \\ \hline -16 & 18 & 12 & -10 & 24 & -27 & -18 & 15 & 24 & -27 & -18 & 15 \\ -2 & 6 & 8 & -14 & 3 & -9 & -12 & 21 & 3 & -9 & -12 & 21 \\ -4 & -16 & 16 & 6 & 6 & 24 & -24 & -9 & 6 & 24 & -24 & -9 \\ -2 & -4 & 10 & 2 & 3 & 6 & -15 & -3 & 3 & 6 & -15 & -3 \end\right]


Properties


Relations to other matrix operations

) = \exp(\mathbf) \otimes \exp(\mathbf) Kronecker sums appear naturally in physics when considering ensembles of non-interacting systems. Let ''Hk'' be the Hamiltonian of the ''k''th such system. Then the total Hamiltonian of the ensemble is :H_=\bigoplus_k H^k . , 10 = Vectorization of a Kronecker product: Let A be an m\times n matrix and B a p \times q matrix. When the order of the Kronecker product and vectorization is interchanged, the two operations can be linked linearly through a function that involves the commutation matrix, K_ . That is, \operatorname(\operatorname(A, B)) and \operatorname(\operatornameA,\operatornameB) have the following relationship: :\operatorname(A\otimes B) = (I_n \otimes K_\otimes I_p)(\operatornameA \otimes \operatornameB). Furthermore, the above relation can be rearranged in terms of either \operatornameA or \operatornameB as follows: :\operatorname(A\otimes B)= (I_n \otimes G)\operatornameA = (H\otimes I_p)\operatornameB, where :G = (K_\otimes I_p)(I_m \otimes \operatornameB) \text H=(I_n\otimes K_)(\operatornameA \otimes I_q). , 11 = Outer Product: If x \in \mathbb^n and y \in \mathbb^m are arbitrary vectors, then the outer product between x and y is defined as xy^T. The Kronecker product is related to the outer product by: y\otimes x = \operatorname(xy^T).


Abstract properties


Matrix equations

The Kronecker product can be used to get a convenient representation for some matrix equations. Consider for instance the equation , where A, B and C are given matrices and the matrix X is the unknown. We can use the "vec trick" to rewrite this equation as : \left(\mathbf^\textsf \otimes \mathbf\right) \, \operatorname(\mathbf) = \operatorname(\mathbf) = \operatorname(\mathbf) . Here, vec(X) denotes the vectorization of the matrix X, formed by stacking the columns of X into a single
column vector In linear algebra, a column vector with elements is an m \times 1 matrix consisting of a single column of entries, for example, \boldsymbol = \begin x_1 \\ x_2 \\ \vdots \\ x_m \end. Similarly, a row vector is a 1 \times n matrix for some , c ...
. It now follows from the properties of the Kronecker product that the equation has a unique solution, if and only if A and B are invertible . If X and C are row-ordered into the column vectors u and v, respectively, then : \mathbf = \left(\mathbf \otimes \mathbf^\textsf\right)\mathbf . The reason is that : \mathbf = \operatorname\left((\mathbf)^\textsf\right) = \operatorname\left(\mathbf^\textsf\mathbf^\textsf\mathbf^\textsf\right) = \left(\mathbf \otimes \mathbf^\textsf\right)\operatorname\left(\mathbf\right) = \left(\mathbf \otimes \mathbf^\textsf\right)\mathbf .


Applications

For an example of the application of this formula, see the article on the Lyapunov equation. This formula also comes in handy in showing that the matrix normal distribution is a special case of the multivariate normal distribution. This formula is also useful for representing 2D
image processing An image or picture is a visual representation. An image can be two-dimensional, such as a drawing, painting, or photograph, or three-dimensional, such as a carving or sculpture. Images may be displayed through other media, including a pr ...
operations in matrix-vector form. Another example is when a matrix can be factored as a Kronecker product, then matrix multiplication can be performed faster by using the above formula. This can be applied recursively, as done in the radix-2 FFT and the Fast Walsh–Hadamard transform. Splitting a known matrix into the Kronecker product of two smaller matrices is known as the "nearest Kronecker product" problem, and can be solved exactly by using the SVD. To split a matrix into the Kronecker product of more than two matrices, in an optimal fashion, is a difficult problem and the subject of ongoing research; some authors cast it as a tensor decomposition problem. In conjunction with the least squares method, the Kronecker product can be used as an accurate solution to the hand–eye calibration problem.


Related matrix operations

Two related matrix operations are the Tracy–Singh and Khatri–Rao products, which operate on partitioned matrices. Let the matrix A be partitioned into the blocks A''ij'' and matrix B into the blocks B''kl'', with of course , , and .


Tracy–Singh product

The Tracy–Singh product is defined as :\mathbf \circ \mathbf = \left(\mathbf_ \circ \mathbf\right)_ = \left(\left(\mathbf_ \otimes \mathbf_\right)_\right)_ which means that the (''ij'')-th subblock of the product is the matrix , of which the (''k'')-th subblock equals the matrix . Essentially the Tracy–Singh product is the pairwise Kronecker product for each pair of partitions in the two matrices. For example, if A and B both are partitioned matrices e.g.: : \mathbf = \left \begin \mathbf_ & \mathbf_ \\ \hline \mathbf_ & \mathbf_ \end \right= \left \begin 1 & 2 & 3 \\ 4 & 5 & 6 \\ \hline 7 & 8 & 9 \end \right,\quad \mathbf = \left \begin \mathbf_ & \mathbf_ \\ \hline \mathbf_ & \mathbf_ \end \right= \left \begin 1 & 4 & 7 \\ \hline 2 & 5 & 8 \\ 3 & 6 & 9 \end \right, we get: :\begin \mathbf \circ \mathbf =& \left begin \mathbf_ \circ \mathbf & \mathbf_ \circ \mathbf \\ \hline \mathbf_ \circ \mathbf & \mathbf_ \circ \mathbf \end\right\\ = &\left[\begin \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ \\ \hline \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ \\ \hline \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ \\ \hline \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ & \mathbf_ \otimes \mathbf_ \end\right] \\ = &\left[\begin 1 & 2 & 4 & 7 & 8 & 14 & 3 & 12 & 21 \\ 4 & 5 & 16 & 28 & 20 & 35 & 6 & 24 & 42 \\ \hline 2 & 4 & 5 & 8 & 10 & 16 & 6 & 15 & 24 \\ 3 & 6 & 6 & 9 & 12 & 18 & 9 & 18 & 27 \\ 8 & 10 & 20 & 32 & 25 & 40 & 12 & 30 & 48 \\ 12 & 15 & 24 & 36 & 30 & 45 & 18 & 36 & 54 \\ \hline 7 & 8 & 28 & 49 & 32 & 56 & 9 & 36 & 63 \\ \hline 14 & 16 & 35 & 56 & 40 & 64 & 18 & 45 & 72 \\ 21 & 24 & 42 & 63 & 48 & 72 & 27 & 54 & 81 \end\right]. \end


Khatri–Rao product

* Block Kronecker product * Column-wise Khatri–Rao product


Face-splitting product

Mixed-products properties : \mathbf \otimes (\mathbf\bull \mathbf) = (\mathbf\otimes \mathbf) \bull \mathbf , where \bull denotes the Khatri–Rao product#Face-splitting product, Face-splitting product. : (\mathbf \bull \mathbf)(\mathbf \otimes \mathbf) = (\mathbf\mathbf) \bull (\mathbf \mathbf) , Similarly: : (\mathbf \bull \mathbf)(\mathbf \otimes \mathbf) \cdots (\mathbf \otimes \mathbf) = (\mathbf\mathbf \cdots \mathbf) \bull (\mathbf\mathbf \cdots \mathbf) , : \mathbf^\textsf \bull \mathbf^\textsf = \mathbf^\textsf \otimes \mathbf^\textsf , where \mathbf c and \mathbf d are vectors, : (\mathbf \bull \mathbf)(\mathbf \otimes \mathbf) = (\mathbf\mathbf) \circ (\mathbf\mathbf) , where \mathbf c and \mathbf d are vectors, and \circ denotes the Hadamard product. Similarly: : (\mathbf \bull \mathbf)(\mathbf\mathbf\mathbf \otimes \mathbf\mathbf\mathbf) = (\mathbf\mathbf\mathbf\mathbf) \circ (\mathbf\mathbf\mathbf\mathbf), : \mathcal F(C^x \star C^y) = (\mathcal F C^ \bull \mathcal F C^)(x \otimes y)= \mathcal F C^x \circ \mathcal F C^y, where \star is vector
convolution In mathematics (in particular, functional analysis), convolution is a operation (mathematics), mathematical operation on two function (mathematics), functions f and g that produces a third function f*g, as the integral of the product of the two ...
and \mathcal F is the Fourier transform matrix (this result is an evolving of count sketch properties ), : (\mathbf \bull \mathbf)(\mathbf \otimes \mathbf) \cdots (\mathbf \otimes \mathbf)(\mathbf \ast \mathbf) = (\mathbf\mathbf \cdot \mathbf\mathbf) \circ (\mathbf\mathbf \cdots \mathbf\mathbf) , where \ast denotes the column-wise Khatri–Rao product. Similarly: : (\mathbf \bull \mathbf)(\mathbf \otimes \mathbf) \cdots (\mathbf \otimes \mathbf)(c \otimes d ) = (\mathbf\mathbf \cdots \mathbf\mathbf) \circ (\mathbf\mathbf \cdots \mathbf\mathbf) , : (\mathbf \bull \mathbf)(\mathbf \otimes \mathbf) \cdots (\mathbf \otimes \mathbf)(\mathbf\mathbf \otimes \mathbf\mathbf ) = (\mathbf\mathbf \cdots \mathbf\mathbf\mathbf) \circ (\mathbf\mathbf \cdots \mathbf\mathbf\mathbf) , where \mathbf c and \mathbf d are vectors.


See also

* Generalized linear array model *
Hadamard product (matrices) In mathematics, the Hadamard product (also known as the element-wise product, entrywise product or Schur product) is a binary operation that takes in two Matrix (mathematics), matrices of the same dimensions and returns a matrix of the multiplied ...
* Kronecker coefficient


Notes


References

* * * * *


External links

* * * * * The entry on the Kronecker, Zehfuss, or Direct Product of matrices has historical information. * * Software source in more than 40 languages. {{DEFAULTSORT:Kronecker Product Matrix theory