# Maths - Kronecker Product

On this page we first define the Kronecker product in terms of matricies, we then try to interpret this in more general terms.

We multiply each term in matrix [A] by the whole of matrix [B] as follows:

[A] [B]
a11
 b11 … b1m   bk1 … bkm
a1j
 b11 … b1m   bk1 … bkm   ai1
 b11 … b1m   bk1 … bkm
aij
 b11 … b1m   bk1 … bkm

This can be combined into a single matrix as follows:

[A] [B]
 a11*b11 a11*b1m a1j*b11 a1j*b1m a11*bk1 a11*bkm a1j*bk1 a1j*bkm ai1*b11 ai1*b1m aij*b11 aij*b1m ai1*bk1 ai1*bkm aij*bk1 aij*bkm

We can represent this in tensor notation:

(Pij) km = δijδkm

## Possible Interpretation

The Kronecker product C=A B can be thought of as creating an algebra C from two smaller algebras A and B.

If A and B represent linear operators on different vector spaces then A B represents the combination of these linear operators. The important point is that they are acting in different vector spaces, when we combine linear operators within the same vector space be use conventional multipication operations as described elesewhere on this site.

### Example

In order to illustrate now to calculate the Kronecker product here is an example:

If A =
 3 4 9 -4 3 6 3 -7 8
and B =
 5 -3 2 4

calculate A B

is worked out as follows:

[A] [B]=
3*
 5 -3 2 4
4*
 5 -3 2 4
9*
 5 -3 2 4
-4*
 5 -3 2 4
3*
 5 -3 2 4
6*
 5 -3 2 4
3*
 5 -3 2 4
-7*
 5 -3 2 4
8*
 5 -3 2 4

multiplying out the terms gives:

[A] [B]
 15 -9 20 -12 45 -27 6 12 8 16 18 36 -20 12 15 -9 30 -18 -8 -16 6 12 12 24 15 -9 -35 21 40 -24 6 12 -14 -28 16 32

## Properties

[I] [I] = [I]

([A1]+[A2]) [B] = [A1] [B]+[A2] [B]

[A] ([B1]+[B2]) = [A] [B1]+[A] [B2]

([A] [B1])-1= [A]-1 [B]-1

## Cartesian and Tensor Products in other Algebras

Graphs Matrix
Cartesian Cartesian product Kronecker sum
Tensor tensor product Kronecker product

Cartesian and tensor products not only occur in matrix algebra but also occur in other algebras. It may help intuative understanding to look at these products in graph theory on the page here.

## Cayley Table and Checkerboard Pattern

Let the components of the matrix be operators, in this case:

• 1=reals
• x = non-real type

We can then represent the multipication of these types in a psudo-matrix.

One of the simplest operator matrix is: A=
 1 x x 1

We can use a Kronecker product to combine this with a similar operator matrix:

B =
 1 y y 1

So useing a Kronecker product gives:

[A] [B]=
1*
 1 x x 1
y*
 1 x x 1
y*
 1 x x 1
1*
 1 x x 1
=
 1 x y yx x 1 yx y y yx 1 x yx y x 1

There is an easy way to calculate this result for any dimension, provided that the terms are encoded in bit order, that is the low order bit is one of the term contains an 'x', the next bit is a one if the term contains a 'y', and so on.

So the two individual tables are:

If A =
 00 01 01 00
and B =
 00 10 10 00

The Kronecker product is then given by the exclusive or of each of the bits taken separately:

[A] [B]=
 00 01 10 11 01 00 11 10 10 11 00 01 11 10 01 00

The exclusive or function (sometimes confusingly given the symbol: ) is 1 when either of the inputs is 1, but 0 if both of the inputs are 1.

 A B 0 1 0 0 1 1 1 0

So if we apply this to each of the terms in the table we get: ### Example

What is the product of e4 and e5?

Since the operators are in bit order then:

e4 = 100 and
e5 = 101

taking the exclusive or of each bit in turn we get:

001

which is e1

 metadata block see also: Correspondence about this page Book Shop - Further reading. Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.       Mathematics for 3D game Programming - Includes introduction to Vectors, Matrices, Transforms and Trigonometry. (But no euler angles or quaternions). Also includes ray tracing and some linear & rotational physics also collision detection (but not collision response). Specific to this page here:

This site may have errors. Don't use for critical systems.