Notes On Kronecker Products: 1 The Stack Operator

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Notes on Kronecker Products

Revision 02

Louis L. Whitcomb∗
Department of Mechanical Engineering
G.W.C. Whiting School of Engineering
Johns Hopkins University
http://dscl.lcsr.jhu.edu/ME530647_2013

September 26, 2013

This note is a brief description of the matrix Kronecker product and matrix stack algebraic operators. For
a detailed treatment the reader is referred to [?, ?].

1 The Stack Operator


The stack operator maps an n × m matrix into an nm × 1 vector. The stack of the n × m matrix A, denoted
AS , is the vector formed by stacking the columns of A into an nm × 1 vector.
For example if  
a c
A= (1)
b d 2×2

then its stack form is 


a
 b 
AS =  
 c  . (2)
d 4×1

If C is an n × m matrix comprising m column vectors {c1 , c2 , · · · cm }, where each ci is an n × 1 vector

C = [c1 , c2 , · · · , cm ]n×m (3)

then  
c1
 c2 
CS =  . (4)
 
.. 
 . 
cm nm×1

1.1 Properties of the Stack Operator


1. If v ∈ IRn×1 , a vector, then v S = v.
∗ This document
c Louis L. Whitcomb.

1
2. If A ∈ IRm×n , a matrix, and v ∈ IRn×1 , a vector, then the matrix product (Av)S = Av.
3. trace(AB) = ((AT )S )T B S .

2 The Kronecker Product


The Kronecker product is a binary matrix operator that maps two arbitrarily dimensioned matrices into a
larger matrix with special block structure. Given the n × m matrix An×m and the p × q matrix Bp×q
   
a1,1 . . . a1,m b1,1 . . . b1,q
A =  ... .. ..  B =  ... .. ..  (5)
 
. .  . . 
an,1 ... an,m n×m
bp,1 ... bp,q p×q

their Kronecker product, denoted A ⊗ B, is the np × mq matrix with the block structure
 
a1,1 B . . . a1,m B
A⊗B =
 .. .. .. 
. (6)
. . . 
an,1 B . . . an,m B np×mq

For example, given    


1 2 1 2 3
A= B2×3 = (7)
0 −1 2×2
4 5 6 2×3

the Kronecker product A ⊗ B is


 
1 2 3 2 4 6
 4 5 6 8 10 12 
A⊗B =  . (8)
 0 0 0 −1 −2 −3 
0 0 0 −4 −5 −6 4×6

3 Properties of the Kronecker Product and the Stack Operator


In the following it is assumed that A, B, C, and D are real valued matrices. Some identities only hold for
appropriately dimensioned matrices. For additional properties, see [?, ?].

1. The Kronecker product is a bi-linear operator. Given α ∈ IR ,

A ⊗ (αB) = α(A ⊗ B)
(9)
(αA) ⊗ B = α(A ⊗ B).

2. Kronecker product distributes over addition:

(A + B) ⊗ C = (A ⊗ C) + (B ⊗ C)
(10)
A ⊗ (B + C) = (A ⊗ B) + (A ⊗ C).

3. The Kronecker product is associative:

(A ⊗ B) ⊗ C = A ⊗ (B ⊗ C). (11)

2
4. The Kronecker product is not in general commutative, i.e. usually

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

5. Transpose distributes over the Kronecker product (does not invert order)

(A ⊗ B)T = AT ⊗ B T . (13)

6. Matrix multiplication, when dimensions are appropriate,

(A ⊗ B)(C ⊗ D) = (AC ⊗ BD). (14)

7. When A and B are square and full rank

(A ⊗ B)−1 = (A−1 ⊗ B −1 ). (15)

8. The determinant of a Kronecker product is (note right hand side exponents)

det(An×n ⊗ Bm×m ) = det(A)m · det(B)n . (16)

9. The trace of a Kronecker product is

trace(A ⊗ B) = trace(A) · trace(B). (17)

10. Stack of a matrix multiplication, when dimensions are appropriate for the product ABC to be well
defined, is
(ABC)S = (C T ⊗ A)B S . (18)
Two simple special cases of this identity are useful:

Ax = (Ax)S (19)

and
Ax = IAx
(20)
= (xT ⊗ I)AS

11. If A and B are both


(a) nonsingular
(b) lower (upper) triangular
(c) banded
(d) symmetric
(e) positive (negative) definite
(f) stochastic
(g) Toeplitz
(h) permutations
(i) orthogonal
then the product A ⊗ B is, respectively, [?],
(a) nonsingular
(b) lower (upper) triangular

3
(c) block banded
(d) symmetric
(e) positive (negative) definite
(f) stochastic
(g) block Toeplitz
(h) a permutations
(i) orthogonal.

4 Some Applications
1. The linear Lyapunov equation: For any Hurwitz A ∈ IRn×n and any positive-definite symmetric
Q ∈ IRn×n there exists a unique positive-definite symmetric P ∈ IRn×n satisfying the linear Lyapunov
equation
− Q = AT P + P A. (21)
The matrix P can be computed as Z ∞
T
Q= eA σ
QeAσ dσ (22)
0
or, alternatively, note that
−Q = AT P + P A
= AT P I + IP A
(23)
−QS = (I ⊗ AT )P S + (AT ⊗ I)P S
−QS = (I ⊗ AT + AT ⊗ I)P S
thus P S is given by
P S = −(I ⊗ AT + AT ⊗ I)−1 QS . (24)

2. Differential matrix/vector calculus: The derivative of vector-values and matrix-valued functions


of vectors or matrices such as
y = A(b)c (25)
where y ∈ IRn , b ∈ IRm , c ∈ IRp , and A : IRm 7→ IRn×p , can be written as
d
ẏ = dt [A(b)c]
d
= A(b)ċ + dt [A(b)]c
d
= A(b)ċ + I dt [A(b)]c
d (26)
= A(b)ċ + [I dt [A(b)]c]S
T d
= A(b)ċ + (c ⊗ I) dt [A(b)S ]
= A(b)ċ + (cT ⊗ I)Db [A(b)S ]ḃ

where Dx [y] is the usual matrix-valued jacobian operator given by


∂ ∂
···
 
∂x1 y1 ∂xr y1
Dx [y] = 
 .. .. 
(27)
. . 
∂ ∂
∂x1 yq ··· ∂xr yq

where y ∈ IRq , x ∈ IRr , and Dx [y] ∈ IRn×m .

You might also like