765 words
4 minutes
Kronecker Product
首次发布: 2025-07-27
... 次访问

克劳内克积(Kronecker Product)是两个矩阵的乘积,结果是一个新的矩阵,其元素是原矩阵元素的乘积。对于两个矩阵 AABB,其克劳内克积记作 ABA \otimes B。常用于信号处理、图像处理等领域。也叫做张量积或直积。

定义#

AA 是一个 m×nm \times n 的矩阵,BB 是一个 p×qp \times q 的矩阵,则它们的克劳内克积 ABA \otimes B 是一个 mp×nqmp \times nq 的矩阵,其定义为

AB=[a11Ba12Ba1nBa21Ba22Ba2nBam1Bam2BamnB]A \otimes B = \begin{bmatrix} a_{11}B & a_{12}B & \cdots & a_{1n}B \\ a_{21}B & a_{22}B & \cdots & a_{2n}B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}B & a_{m2}B & \cdots & a_{mn}B \end{bmatrix}

其中 aija_{ij} 是矩阵 AA 的元素,BB 是矩阵 BB, aijBa_{ij}B 表示将矩阵 BB 的每个元素都乘以 aija_{ij} 后形成的子块。

例如,设

A=[1234],B=[0567]A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 0 & 5 \\ 6 & 7 \end{bmatrix}

AB=[1B2B3B4B]=[05010671214015182018212428]A \otimes B = \begin{bmatrix} 1 \cdot B & 2 \cdot B \\ 3 \cdot B & 4 \cdot B \end{bmatrix} = \begin{bmatrix} 0 & 5 & 0 & 10 \\ 6 & 7 & 12 & 14 \\ 0 & 15 & 18 & 20 \\ 18 & 21 & 24 & 28 \end{bmatrix}

性质#

  • 结合律 (AB)C=A(BC)(A \otimes B) \otimes C = A \otimes (B \otimes C)
  • 分配律 A(B+C)=AB+ACA \otimes (B + C) = A \otimes B + A \otimes C
  • 交换律 (仅当 AABB 都是方阵时成立) AB=BAA \otimes B = B \otimes A
  • 分配律 (A+B)C=AC+BC(A + B) \otimes C = A \otimes C + B \otimes C
  • 单位矩阵 ImIn=ImnI_m \otimes I_n = I_{mn}
  • 混合乘积 (AB)(CD)=(AC)(BD)(A \otimes B)(C \otimes D) = (AC) \otimes (BD)
  • 转置与逆 (AB)=AB(A \otimes B)^\top = A^\top \otimes B^\top (AB)1=A1B1(A \otimes B)^{-1} = A^{-1} \otimes B^{-1}
  • 克劳内克积的迹 tr(AB)=tr(A)tr(B)\text{tr}(A \otimes B) = \text{tr}(A) \cdot \text{tr}(B)
  • 克劳内克积的秩 rank(AB)=rank(A)rank(B)\text{rank}(A \otimes B) = \text{rank}(A) \cdot \text{rank}(B)

应用#

求解 Sylvester 方程#

克劳内克积在求解 Sylvester 方程中非常有用。Sylvester 方程的形式为

AX+XB=CAX + XB = C

其中 AABB 是已知矩阵,CC 是已知矩阵,XX 是未知矩阵。可以将其转化为向量形式

(IA+BI)vec(X)=vec(C)(I \otimes A + B^\top \otimes I) \text{vec}(X) = \text{vec}(C)

用这个形式可以使用线性代数的方法求解 XX

证明:

首先说明,

vec(X)=[x11x21xm1x12x22xm2x1nx2nxmn]\text{vec}(X) = \begin{bmatrix} x_{11} \\ x_{21} \\ \vdots \\ x_{m1} \\ x_{12} \\ x_{22} \\ \vdots \\ x_{m2} \\ \vdots \\ x_{1n} \\ x_{2n} \\ \vdots \\ x_{mn} \end{bmatrix}

vec()\text{vec}(\cdot) 函数是按照列优先的顺序将矩阵展开为一个向量。

我们对等式两侧同时向量化,得到

vec(AX+XB)=vec(C)\begin{aligned} &\text{vec}(AX + XB) = \text{vec}(C) \\ \end{aligned}

利用性质 vec(AXB)=(BA)vec(X)\text{vec}(AXB) = (B^\top \otimes A) \text{vec}(X),得到

vec(AX)+vec(XB)=vec(C)(IA+BI)vec(X)=vec(C)\begin{aligned} &\text{vec}(AX) + \text{vec}(XB) = \text{vec}(C) \\ \Rightarrow &(I \otimes A + B^\top \otimes I) \text{vec}(X) = \text{vec}(C) \end{aligned}

两边同时左乘 (IA+BI)1(I \otimes A + B^\top \otimes I)^{-1},得到

vec(X)=(IA+BI)1vec(C)\text{vec}(X) = (I \otimes A + B^\top \otimes I)^{-1} \text{vec}(C)

即可求解 XX

卷积定理#

克劳内克积在信号处理中的卷积定理中也有重要应用。设 x[n]x[n]h[n]h[n] 是两个离散时间信号,它们的卷积可以表示为

y[n]=(xh)[n]=k=x[k]h[nk]y[n] = (x * h)[n] = \sum_{k=-\infty}^{\infty} x[k] h[n-k]

利用克劳内克积,可以将其表示为矩阵形式

vec(y)=(Ih)vec(x)\text{vec}(y) = (I \otimes h) \text{vec}(x)

其中 II 是单位矩阵,vec()\text{vec}(\cdot) 是将矩阵按列展开为向量的操作。

Kronecker Product
https://adalovelemon.github.io/blog/en/posts/content/coursenotes/mathslab/kroneck/
Author
Ada Lovelemon
Published at
2025-07-27

Comments Section