KroneckerProduct
KroneckerProduct[m1,m2,…]
constructs the Kronecker product of the arrays mi.
Details
- KroneckerProduct works on vectors, matrices, or in general, full arrays of any depth.
- For matrices, KroneckerProduct gives the matrix direct product.
- KroneckerProduct can be used on SparseArray objects, returning a SparseArray object when possible. »
Examples
open allclose allScope (2)
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 Cooley–Tukey 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:
Try it on general symbolic matrices:
Verify the identity MatrixExp[a⊕b]=MatrixExp[a]⊗MatrixExp[b]:
Verify the identity Eigenvalues[a⊕b]={λi+μjλi∈Eigenvalues[a],μj∈Eigenvalues[b]:
Properties & Relations (11)
KroneckerProduct is multi-linear (linear in each argument) :
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 a∈Matrices[{m,m}] and b∈Matrices[{n,n}]:
Eigenvalues satisfies Eigenvalues[ab]={λiμjλi∈Eigenvalues[a],μj∈Eigenvalues[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:
Text
Wolfram Research (2007), KroneckerProduct, Wolfram Language function, https://reference.wolfram.com/language/ref/KroneckerProduct.html.
CMS
Wolfram Language. 2007. "KroneckerProduct." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/KroneckerProduct.html.
APA
Wolfram Language. (2007). KroneckerProduct. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/KroneckerProduct.html