# KroneckerProduct

KroneckerProduct[m1,m2,]

constructs the Kronecker product of the arrays mi.

# Details # Examples

open allclose all

## Basic Examples(2)

Kronecker product of vectors:

Kronecker product of matrices:

## Scope(2)

a and b are matrices with exact entries:

Use exact arithmetic to compute the Kronecker product:

Use machine arithmetic:

Use 20-digit precision arithmetic:

s and t are sparse matrices:

Compute the sparse Kronecker product:

## Applications(5)

Solve the general linear matrix equation a1.x.b1++am.x.bm=c for matrix by using the flattening (vectorizing) relation Flatten[a.x.b]=(ab).Flatten[x]:

Define the vec-permutation matrix, also called the commutation matrix:

Visualize the vec-permutation matrix:

The vec-permutation matrix can be expressed as a sum of Kronecker products of an identity matrix with unit vectors:

Generate two symbolic matrices:

The vec-permutation matrix can be used to express the relationship between the Kronecker product of two given matrices and the Kronecker product of the same matrices in reverse order:

s is a differentiation matrix approximating the second derivative in 1 dimension:

The identity matrix as a sparse array:

A two-dimensional array of values:

A matrix that differentiates in the first dimension only:

A matrix that approximates the Laplacian (the Kronecker sum of the differentiation matrix with itself):

Define the n×n "butterfly" matrix for even n:

Define the n×n "bit reversal" permutation matrix for n a power of 2:

A compact notation for the identity matrix of size n:

A compact notation for the Kronecker product:

Form the discrete Fourier transform matrix for length 16 from the CooleyTukey factorization:

This is equivalent to the result of FourierMatrix:

r is a random vector of length 16:

The discrete Fourier transform of r:

Fourier is fast because it effectively composes the factorization for a particular vector:

Define the Kronecker sum :

Try it on general symbolic matrices:

Verify the identity MatrixExp[ab]=MatrixExp[a]MatrixExp[b]:

Verify the identity Eigenvalues[ab]={λi+μj|λiEigenvalues[a],μjEigenvalues[b]:

## Properties & Relations(11)

KroneckerProduct is multi-linear (linear in each argument) :

Associative (flat) :

Non-commutative :

KroneckerProduct satisfies the mixed product property :

Transpose distributes over it :

ConjugateTranspose distributes over it :

Inverse distributes over it (iff and are invertible):

PseudoInverse distributes over it PseudoInverse[ab]=PseudoInverse[a]PseudoInverse[b]:

The trace Tr for a Kronecker product satisfies Tr[ab]=Tr[a]Tr[b]:

The determinant Det satisfies where aMatrices[{m,m}] and bMatrices[{n,n}]:

Eigenvalues satisfies Eigenvalues[ab]={λiμj|λiEigenvalues[a],μjEigenvalues[b]:

SingularValueList satisfies the same relation:

MatrixRank satisfies MatrixRank[ab=MatrixRank[a]MatrixRank[b]:

KroneckerProduct for matrices is a flattened block matrix with blocks :

KroneckerProduct of vectors is related to Dot of the corresponding column matrices:

The dot product of a column and row matrix is usually also called an outer product:

KroneckerProduct of vectors is equivalent to TensorProduct:

For matrices it is a flattened tensor product:

KroneckerProduct of vectors is a special case of Outer:

For matrices it is a flattened outer product:

The Kronecker product of a diagonal matrix and a general matrix is block diagonal:

The Kronecker product of a lower triangular matrix and a general matrix is block lower triangular:

The Kronecker product of an upper triangular matrix and a general matrix is block upper triangular: