0% found this document useful (0 votes)
264 views

Kronecker PDF

The document defines the Kronecker product and vec operator. [1] The Kronecker product of two matrices A and B results in a block matrix with the blocks formed by multiplying each entry of A by B. [2] The vec operator stacks the columns of a matrix vertically into a column vector. [3] The vec operator and Kronecker product satisfy the property that vec(AXB) = (B^T ⊗ A)vec(X), allowing matrix operations to be expressed in terms of vectors.

Uploaded by

Anderson Kerlly
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
264 views

Kronecker PDF

The document defines the Kronecker product and vec operator. [1] The Kronecker product of two matrices A and B results in a block matrix with the blocks formed by multiplying each entry of A by B. [2] The vec operator stacks the columns of a matrix vertically into a column vector. [3] The vec operator and Kronecker product satisfy the property that vec(AXB) = (B^T ⊗ A)vec(X), allowing matrix operations to be expressed in terms of vectors.

Uploaded by

Anderson Kerlly
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Kronecker Product and the vec Operator

Definition 1. Let A be an n × p matrix and B an m × q


matrix. The mn × pq matrix
 
a1,1B a1,2B · · · a1,pB
 a2,1B a2,2B · · · a2,pB 
A⊗B =
 .. .. .. .. 

an,1B an,2B · · · an,pB

is called the Kronecker product of A and B. It is also called


the direct product or the tensor product.

Some properties of the Kronecker product:

1. A ⊗ (B ⊗ C) = (A ⊗ B) ⊗ C associativity,

2. A ⊗ (B + C) = (A ⊗ B) + (A ⊗ C) distributivity
(A + B) ⊗ C = (A ⊗ C) + (B ⊗ C),

3. For scalar a, a ⊗ A = A ⊗ a = aA,

4. For scalars a and b, aA ⊗ bB = ab A ⊗ B,

5. For conforming matrices, (A ⊗ B)(C ⊗ D) = AC ⊗ BD,

6. (A ⊗ B)T = AT ⊗ B T , (A ⊗ B)H = AH ⊗ B H ,

7. For vectors a and b, aT ⊗ b = baT = b ⊗ aT


(note aaT = a ⊗ aT ),
EE 527, Kronecker Product 1
8. For partitioned matrices, [A1, A2] ⊗ B = [A1 ⊗ B, A2 ⊗ B],
but A ⊗ [B 1, B 2] 6= [A ⊗ B 1, A ⊗ B 2],

9. For square nonsingular matrices A and B:


(A ⊗ B)−1 = A−1 ⊗ B −1,

10. For m × m matrix A and n × n matrix B:


|A ⊗ B| = |A|n|B|m,

11. tr(A ⊗ B) = tr(A)tr(B),

12. rank(A ⊗ B) = rank(A) rank(B).

Definition 2. The vec operator creates a column vector from


a matrix A by stacking the column vectors of A = [a1a2 · · · an]
below one another:
 
a1
 a2 
vec(A) = 
 ..  .

an

Theorem 1.

vec(AXB) = (B T ⊗ A) vec(X).

Proof. Let B = [b1 b2 · · · bn] (of size m × n) and X =

EE 527, Kronecker Product 2


[x1 x2 · · · xm]. Then, the kth column of AXB is

m
X
(AXB):,k = AXbk = A xibi,k
i=1
 
x1
 x2 
= [b1,k A b2.k A · · · bm,k A] 
 .. 

x
| {zm }
vec(X )

= ([b1,k , b2,k , . . . , bm,k ] ⊗A])vec(X)


| {z }
T
bk

Stacking the columns together


 
bT1
 
(AXB):,1 ⊗A
T
 (AXB):,2   b ⊗A

vec(AXB) =  . = 2

..  vec(X)

 .   
(AXB):,n bTn ⊗A
= (B T ⊗ A) vec(X).

Corollary: vec(AB) = (I ⊗ A) vec(B) = (B T ⊗ I) vec(A).

EE 527, Kronecker Product 3


Some Properties of the vec Operator

tr(ABC) = vec(AT )T (I ⊗ B) vec(C),

and its corollary

tr(AB) = vec(AT )T vec(B).

Also

vec(aaT ) = a ⊗ a,
tr(AT BCD T ) = vec(A)T (D ⊗ B) vec(C).

EE 527, Kronecker Product 4

You might also like