- 注: 以下内容均由个人整理, 不保证完全准确, 如有纰漏, 欢迎交流讨论
- 参考: 杨明, 刘先忠. 矩阵论(第二版)[M]. 武汉: 华中科技大学出版社, 2005
6 矩阵的 Kronecker 积与 Hadamard 积
6.1 Kronecker 积与 Hadamard 积的定义
K-积和 H-积定义
K-积:
A
m
×
n
⊗
B
s
×
t
=
[
a
i
j
B
]
m
s
×
n
t
=
[
a
11
B
⋯
a
1
n
B
a
21
B
⋯
a
2
n
B
⋯
⋯
⋯
a
m
1
B
⋯
a
m
n
B
]
A_{m\times n}\otimes B_{s\times t}=[a_{ij}B]_{ms\times nt}=\begin{bmatrix} a_{11}B&\cdots&a_{1n}B\\ a_{21}B&\cdots&a_{2n}B\\ \cdots&\cdots&\cdots\\ a_{m1}B&\cdots&a_{mn}B\\ \end{bmatrix}
Am×n⊗Bs×t=[aijB]ms×nt=⎣⎢⎢⎡a11Ba21B⋯am1B⋯⋯⋯⋯a1nBa2nB⋯amnB⎦⎥⎥⎤
(用
A
A
A 膨胀
B
B
B, 以
B
B
B 作为基础)
H-积:
A
m
×
n
∘
B
m
×
n
=
[
a
i
j
b
i
j
]
m
×
n
=
[
a
11
b
11
⋯
a
1
n
b
1
n
a
21
b
21
⋯
a
2
n
b
2
n
⋯
⋯
⋯
a
m
1
b
m
1
⋯
a
m
n
b
m
n
]
A_{m\times n}\circ B_{m\times n}=[a_{ij}b_{ij}]_{m\times n}=\begin{bmatrix} a_{11}b_{11}&\cdots&a_{1n}b_{1n}\\ a_{21}b_{21}&\cdots&a_{2n}b_{2n}\\ \cdots&\cdots&\cdots\\ a_{m1}b_{m1}&\cdots&a_{mn}b_{mn}\\ \end{bmatrix}
Am×n∘Bm×n=[aijbij]m×n=⎣⎢⎢⎡a11b11a21b21⋯am1bm1⋯⋯⋯⋯a1nb1na2nb2n⋯amnbmn⎦⎥⎥⎤
(要求
A
A
A 和
B
B
B 大小一致)
K-积 H-积的基本结果
- 分块矩阵 A = ( A s t ) A=(A_{st}) A=(Ast): A ⊗ B = ( A s t ⊗ B ) A\otimes B=(A_{st}\otimes B) A⊗B=(Ast⊗B)
- A A A 和 B B B 有一个零矩阵, 则 A ⊗ B = 0 , A ∘ B = 0 A\otimes B=0,A\circ B=0 A⊗B=0,A∘B=0
- I m × n ⊗ I s × t = I m s × n t , I ∘ I = I I_{m\times n}\otimes I_{s\times t}=I_{ms\times nt}, I\circ I=I Im×n⊗Is×t=Ims×nt,I∘I=I
- A A A 为对角矩阵, 则 A ⊗ B A\otimes B A⊗B 为分块对角矩阵, A ∘ B A\circ B A∘B 为对角矩阵
K-积 H-积的基本性质
-
(
k
A
)
⊗
B
=
A
⊗
(
k
B
)
(kA)\otimes B=A\otimes(kB)
(kA)⊗B=A⊗(kB)
( k A ) ∘ B = A ∘ ( k B ) (kA)\circ B=A\circ (kB) (kA)∘B=A∘(kB) -
A
⊗
(
B
+
C
)
=
A
⊗
B
+
A
⊗
C
A\otimes(B+C)=A\otimes B+A\otimes C
A⊗(B+C)=A⊗B+A⊗C
A ∘ ( B + C ) = A ∘ B + A ∘ C A\circ (B+C)=A\circ B+A\circ C A∘(B+C)=A∘B+A∘C -
(
A
⊗
B
)
⊗
C
=
A
⊗
(
B
⊗
C
)
(A\otimes B)\otimes C=A\otimes(B\otimes C)
(A⊗B)⊗C=A⊗(B⊗C)
( A ∘ B ) ∘ C = A ∘ ( B ∘ C ) (A\circ B)\circ C=A\circ (B\circ C) (A∘B)∘C=A∘(B∘C) -
(
A
⊗
B
)
H
=
A
H
⊗
B
H
(A\otimes B)^H=A^H\otimes B^H
(A⊗B)H=AH⊗BH
( A ∘ B ) H = A H ∘ B H (A\circ B)^H=A^H\circ B^H (A∘B)H=AH∘BH -
A
⊗
B
≠
B
⊗
A
A\otimes B\neq B\otimes A
A⊗B=B⊗A (膨胀的矩阵不同)
A ∘ B = B ∘ A A\circ B=B\circ A A∘B=B∘A
K-积与H-积关系
A ∘ B A\circ B A∘B 可由 A ⊗ B A\otimes B A⊗B 的元素构成.
K-积与矩阵乘法
(
A
⊗
B
)
(
C
⊗
D
)
=
(
A
C
)
⊗
(
B
D
)
\pmb{(A\otimes B)(C\otimes D)=(AC)\otimes(BD)}
(A⊗B)(C⊗D)=(AC)⊗(BD)(A⊗B)(C⊗D)=(AC)⊗(BD)(A⊗B)(C⊗D)=(AC)⊗(BD)
6.2 Kronecker 积与 Hadamard 积的性质
K-积的矩阵性质
- r a n k ( A ⊗ B ) = r a n k ( A ) × r a n k ( B ) rank(A\otimes B)=rank(A)\times rank(B) rank(A⊗B)=rank(A)×rank(B)
- ( A ⊗ B ) − 1 = A − 1 ⊗ B − 1 (A\otimes B)^{-1}=A^{-1}\otimes B^{-1} (A⊗B)−1=A−1⊗B−1
- ∣ A m × m ⊗ B n × n ∣ = ∣ B ⊗ A ∣ = ∣ A ∣ n ∣ B ∣ m |A_{m\times m}\otimes B_{n\times n}|=|B\otimes A|=|A|^n|B|^m ∣Am×m⊗Bn×n∣=∣B⊗A∣=∣A∣n∣B∣m (注意 m , n m,n m,n 是放在对方矩阵上)
- A , B A,B A,B 是 Hermite 矩阵 ⇒ A ⊗ B , B ⊗ A A\otimes B,B\otimes A A⊗B,B⊗A 是 Hermite 矩阵
- A , B A,B A,B 是酉矩阵 ⇒ A ⊗ B , B ⊗ A A\otimes B,B\otimes A A⊗B,B⊗A 是酉矩阵
- A , B A,B A,B 是(半)正定矩阵 ⇒ A ⊗ B , B ⊗ A A\otimes B,B\otimes A A⊗B,B⊗A 是(半)正定矩阵
K-积与矩阵等价相似
- A A A 等价于 B B B ⇒ A ⊗ I A\otimes I A⊗I 等价于 B ⊗ I B\otimes I B⊗I
- A ∼ J A , B ∼ J B A\sim J_A,B\sim J_B A∼JA,B∼JB ⇒ ( A ⊗ B ) ∼ ( J A ⊗ J B ) (A\otimes B)\sim(J_A\otimes J_B) (A⊗B)∼(JA⊗JB)
K-积与特征值特征向量
A
∈
F
m
×
m
A\in F^{m\times m}
A∈Fm×m, 特征值特征向量为
λ
i
,
x
i
,
i
=
1
,
2
,
.
.
.
,
m
\lambda_i,x_i,\quad i=1,2,...,m
λi,xi,i=1,2,...,m
B
∈
F
n
×
n
B\in F^{n\times n}
B∈Fn×n, 特征值特征向量为
μ
j
,
y
j
,
j
=
1
,
2
,
.
.
.
,
n
\mu_j,y_j,\quad j=1,2,...,n
μj,yj,j=1,2,...,n
- A ⊗ B A\otimes B A⊗B 的特征值 λ i μ j \lambda_i\mu_j λiμj, 对应特征向量 x i ⊗ y i , i = 1 , 2 , . . . , m ; j = 1 , 2 , . . . , n x_i\otimes y_i,\quad i=1,2,...,m;j=1,2,...,n xi⊗yi,i=1,2,...,m;j=1,2,...,n
- K-和: A ⊕ B = ( A ⊗ I n ) + ( I m ⊗ B ) A\oplus B=(A\otimes I_n)+(I_m\otimes B) A⊕B=(A⊗In)+(Im⊗B) 的特征值 λ i + μ j \lambda_i+\mu_j λi+μj, 对应特征向量 x i ⊗ y i , i = 1 , 2 , . . . , m ; j = 1 , 2 , . . . , n x_i\otimes y_i,\quad i=1,2,...,m;j=1,2,...,n xi⊗yi,i=1,2,...,m;j=1,2,...,n
- P ( A , B ) = ∑ i , j = 0 T c i j A i ⊗ B j P(A,B)=\sum_{i,j=0}^T c_{ij}A^i\otimes B^j P(A,B)=∑i,j=0TcijAi⊗Bj 的特征值: P ( λ r , μ t ) = ∑ i , j = 0 T c i j λ r i μ t j P(\lambda_r,\mu_t)=\sum_{i,j=0}^T c_{ij}\lambda_r^i\mu_t^j P(λr,μt)=∑i,j=0Tcijλriμtj
K-积与矩阵函数
- f ( I ⊗ A ) = I ⊗ f ( A ) , S N ( I ⊗ A ) = I ⊗ S N ( A ) f(I\otimes A)=I\otimes f(A),S_N(I\otimes A)=I\otimes S_N(A) f(I⊗A)=I⊗f(A),SN(I⊗A)=I⊗SN(A)
- f ( A ⊗ I ) = f ( A ) ⊗ I , S N ( A ⊗ I ) = S N ( A ) ⊗ I f(A\otimes I)=f(A)\otimes I,S_N(A\otimes I)=S_N(A)\otimes I f(A⊗I)=f(A)⊗I,SN(A⊗I)=SN(A)⊗I
- e I m ⊗ A = I m ⊗ e A e^{I_m\otimes A}=I_m\otimes e^A eIm⊗A=Im⊗eA
- e A ⊗ I m = e A ⊗ I m e^{A\otimes I_m}=e^A\otimes I_m eA⊗Im=eA⊗Im
- e A ⊕ B = e A ⊗ e B = e B ⊗ e A e^{A\oplus B}=e^A\otimes e^B=e^B\otimes e^A eA⊕B=eA⊗eB=eB⊗eA
H-积的性质
- A , B A,B A,B 是(半)正定矩阵 ⇒ A ∘ B = B ∘ A A\circ B=B\circ A A∘B=B∘A 是(半)正定矩阵
6.3 矩阵的向量化算子与 Kronecker 积
向量化算子定义
Def 6.2: 设
A
∈
F
m
×
n
A\in F^{m\times n}
A∈Fm×n 是
m
×
n
m\times n
m×n 阶矩阵,
A
=
(
A
1
,
A
2
,
.
.
.
,
A
n
)
=
[
a
i
j
]
m
×
n
A=(A_1,A_2,..., A_n)=[a_{ij}]_{m\times n}
A=(A1,A2,...,An)=[aij]m×n, 其中
A
i
∈
F
m
A_i\in F_m
Ai∈Fm 是
A
A
A 的第
i
i
i 列, 则
A
A
A 的向量算子
Vec
(
A
)
\text{Vec}(A)
Vec(A), 定义为:
Vec
(
A
)
=
[
A
1
A
2
⋯
A
n
]
m
n
=
(
a
11
,
a
21
,
.
.
.
,
a
m
1
,
a
12
,
.
.
.
,
a
m
2
,
.
.
.
,
a
1
n
,
.
.
.
,
a
m
n
)
T
\text{Vec}(A)=\begin{bmatrix} A_1\\ A_2\\ \cdots\\ A_n \end{bmatrix}_{mn}=(a_{11},a_{21},...,a_{m1},a_{12},...,a_{m2},...,a_{1n},...,a_{mn})^T
Vec(A)=⎣⎢⎢⎡A1A2⋯An⎦⎥⎥⎤mn=(a11,a21,...,am1,a12,...,am2,...,a1n,...,amn)T
(将矩阵按列展开, 合成一个一维列向量)
向量化算子性质
- Vec ( x n ) = Vec ( x T ) = x n \text{Vec}(x_n)=\text{Vec}(x^T)=x_n Vec(xn)=Vec(xT)=xn
- Vec ( x m × 1 y n × 1 T ) = x ⊗ y \text{Vec}(x_{m\times 1}y_{n\times1}^T)=x\otimes y Vec(xm×1yn×1T)=x⊗y
- Vec ( a A + b B ) = a Vec ( A ) + b Vec ( b ) \text{Vec}(aA+bB)=a\text{Vec}(A)+b\text{Vec}(b) Vec(aA+bB)=aVec(A)+bVec(b)
- Vec ( A B C ) = ( C T ⊗ A ) Vec ( B ) \pmb{\text{Vec}(ABC)=(C^T\otimes A)\text{Vec}(B)} Vec(ABC)=(CT⊗A)Vec(B)Vec(ABC)=(CT⊗A)Vec(B)Vec(ABC)=(CT⊗A)Vec(B)
- Vec ( A X ) = ( I ⊗ A ) Vec ( X ) \text{Vec}(AX)=(I\otimes A)\text{Vec}(X) Vec(AX)=(I⊗A)Vec(X)
- Vec ( X C ) = ( C T ⊗ I ) Vec ( X ) \text{Vec}(XC)=(C^T\otimes I)\text{Vec}(X) Vec(XC)=(CT⊗I)Vec(X)
向量化算子求解矩阵方程
思路:
A
=
B
+
C
⇒
Vec
(
A
)
=
Vec
(
B
)
+
Vec
(
C
)
A=B+C \Rightarrow \text{Vec}(A)=\text{Vec}(B)+\text{Vec}(C)
A=B+C⇒Vec(A)=Vec(B)+Vec(C)
- 一般对未知数 X X X 进行向量化
- 必要时在 X X X 左右添加 I I I 凑 A X B AXB AXB 形式
- 向量化时为保证等式仍成立, 需要对每个项都选一个矩阵进行向量化
- 化为先前的 A X = b AX=b AX=b, X ′ ( t ) = A X ( t ) X'(t)=AX(t) X′(t)=AX(t) 等形式求解