<<

Notes on Kronecker Products Revision 03

Louis L. Whitcomb∗ Department of Mechanical Engineering G.W.C. Whiting School of Engineering Johns Hopkins University https://dscl.lcsr.jhu.edu/530-647-adaptive-systems-and-control-spring-2020

March 22, 2020

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

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  S  b  A =   . (2)  c  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)  .   .  c m nm×1 ∗This document c Louis L. Whitcomb and the Johns Hopkins University. This assignment is exclusively for use by students enrolled in Spring 2020 M.E. 530.647 Adaptive Systems and Control, and is not to be posted, shared, or otherwise distributed. This document is copyrighted by Louis L. Whitcomb and the Johns Hopkins University and may not be distributed or transmitted without written permission from the Author.

1 1.1 Properties of the Stack Operator

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

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) a . . . a b . . . b n,1 n,m n×m p,1 p,q p×q their Kronecker product, denoted A ⊗ B, is the np × mq matrix with the block structure   a1,1B . . . a1,mB  . .. .  A ⊗ B =  . . .  . (6) a B . . . a B n,1 n,m np×mq

For example, given  1 2   1 2 3  A = B = (7) 0 −1 2×3 4 5 6 2×2 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, 2, 3].

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. distributes over the Kronecker product (does not invert order)

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

6. , when dimensions are appropriate,

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

7. When A and B are square and full

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

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

m n det(An×n ⊗ Bm×m) = det(A) · det(B) . (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 = (CT ⊗ A)BS. (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) permutation matrices (i) orthogonal then the product A ⊗ B is, respectively, [2], (a) nonsingular (b) lower (upper) triangular

3 (c) block banded (d) symmetric (e) positive (negative) definite (f) stochastic (g) block Toeplitz (h) a (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 P = eA τ QeAτ dτ (22) 0 or, alternatively, note that −Q = AT P + PA = AT PI + IPA (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)−1QS. (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 y˙ = dt [A(b)c] d = A(b)c ˙ + dt [A(b)]c d = A(b)c ˙ + I dt [A(b)]c d S (26) = A(b)c ˙ + [I dt [A(b)]c] T d S = A(b)c ˙ + (c ⊗ I) dt [A(b) ] T S ˙ = A(b)c ˙ + (c ⊗ I)Db[A(b) ]b

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

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

q r n×m where y ∈ IR , x ∈ IR , and Dx[y] ∈ IR .

4 References

[1] Alexander Graham. Kronecker Products and With Applications. Dover, NY, 1981. https://store.doverpublications.com/0486824179.html. [2] Charles F Van Loan. The ubiquitous Kronecker product. Journal of Computational and Ap- plied Mathematics, 123(1):85–100, 2000. https://www.sciencedirect.com/science/article/pii/ S0377042700003939.

[3] Sch¨acke, Kathrin. On the Kronecker Product. Master’s thesis, 2013. https://www.math.uwaterloo. ca/~hwolkowi/henry/reports/kronthesisschaecke04.pdf.

5