矩阵基础

小结矩阵求解过程中的基础知识

  • 标量、向量和矩阵
  • 矩阵乘法/积
  • 转置、共扼、共扼转置
  • 矩阵的迹
  • 向量化和矩阵化

标量、向量和矩阵

  • 标量(scalar)是一个数值,仅包含大小(magnitude or size)信息
  • 向量(或称为矢量,vector)是一列数值,同时包含大小(magnitude)和方向(direction)信息
  • 矩阵(matrix)是一个数值数组

向量是矩阵的特殊情况(仅有一行或者仅有一列),所以对于矩阵的操作也能应用于向量

矩阵乘法/积

  1. 矩阵分别和标量/向量和矩阵的乘积

    1.1 令$A=[a_{ij}]$是一个$m\times n$矩阵,且$\alpha$是一个标量。乘积$\alpha A$是一个$m\times n$矩阵,定义为$[\alpha A]{ij}=\alpha a{ij}$
    1.2 $m\times n$矩阵$A=[a_{ij}]$与$r\times 1$向量$x=[x_{1},…,x_{n}]^T$的乘积$Ax$只有当$n=r$时才存在,它是一个$m\times 1$向量,定义为
    $$
    [Ax]{i}=\sum{j=1}^{n}a_{ij}x_{j}, \ i=1,…,m
    $$
    1.3 $m\times n$矩阵$A=[a_{ij}]$与$r\times s$矩阵$B=[b_{ij}]$的乘积$AB$只有当$n=r$时才存在,它是一个$m\times s$矩阵,定义为
    $$
    [AB]{ij}=\sum{k=1}^{n}a_{ik}b_{bj}, \ i=1,…,m; \ j=1,…,s
    $$

  2. 矩阵相同位置元素相乘 - Hadamard积
    $m\times n$矩阵$A=[a_{ij}]$与$m\times n$矩阵$B=[b_{ij}]$的Hadamard积记作$AB$,它仍然是一个$m\times n$矩阵,其元素定义为两个矩阵对应元素的乘积
    $$
    (A
    B){ij}=a{ij}b_{ij}
    $$

  3. Kronecker积
    3.1 $m\times n$矩阵$A=[a_{1},…,a_{n}]$和$p\times q$矩阵$B$的右Kronecker积记作$A\bigotimes B$,是一个$mp\times nq$矩阵,定义为
    $$
    A\bigotimes B=[a_{1}B,…,a_{n}B]=[a_{ij}B]{i=1,j=1}^{m,n}=\begin{bmatrix}
    a
    {11}B & a_{12}B & \dots & a_{1n}B\
    a_{21}B & a_{22}B & \dots & a_{2n}B\
    \vdots & \vdots & \vdots & \vdots\
    a_{m1}B & a_{m2}B & \dots & a_{mn}B
    \end{bmatrix}
    $$
    3.2 $m\times n$矩阵$A=[a_{1},…,a_{n}]$和$p\times q$矩阵$B$的 (左)Kronecker积 记作$A\bigotimes B$,是一个$mp\times nq$矩阵,定义为
    $$
    A\bigotimes B=[a_{1}B,…,a_{n}B]=[a_{ij}B]{i=1,j=1}^{m,n}=\begin{bmatrix}
    Ab
    {11} & Ab_{12} & \dots & Ab_{1q}\
    Ab_{21} & Ab_{22} & \dots & Ab_{2q}\
    \vdots & \vdots & \vdots & \vdots\
    Ab_{m1} & Ab_{m2} & \dots & Ab_{pq}
    \end{bmatrix}
    $$
    3.3 Kronecker积也称为直积(direct product)或者张量积(tensor product)通常使用右Keonecker积的形式进行书写

转置、共扼、共扼转置

转置指矩阵的行列对应互换;共轭负数是指实数部分相同而虚数部分互为相反数的两个复数

若$A=[a_{ij}]$是一个$m\times n$矩阵,则

  • $A$的转置记作$A^T$,是一个$n\times m$矩阵,其元素定义为$[A^T]{ij}=a{ji}$
  • $A$的复数共轭 $A^{}$ 仍然是一个 $m\times n$ 矩阵,其元素定义为 $[A^{}]{ij}=a^{*}{ij}$
  • $A$的(复)共轭转置记作$A^{H}$,它是一个$n\times m$矩阵,定义为

$$
A^{H}=\begin{bmatrix}
a^{}_{11} & a^{}{21} & \dots & a^{*}{m1}\
a^{}_{12} & a^{}{22} & \dots & a^{*}{m2}\
\vdots & \vdots & \vdots & \vdots\
a^{}_{1n} & a^{}{2n} & \dots & a^{*}{mn}
\end{bmatrix}
$$

共轭转置又称为Hermitian伴随、Hermitian转置或Hermitian共轭

对称矩阵:满足$A^T=A$的正方实矩阵

Hermitian矩阵(复共轭对称矩阵):满足$A^H=A$的正方复矩阵

共扼转置和转置的关系

$$
A^H=(A^*)^T=(A^T)^*
$$

矩阵的迹

参考:《矩阵分析与应用》第一章 1.6.4 矩阵的迹

$n\times n$矩阵$A$的对角元素之和称为$A$的迹(trace),记作$tr(A)$,即有

$$
tr(A)=a_{11}+…+a_{nm}=\sum_{i=1}^{n}a_{ii}
$$

注意:非正方矩阵无迹的定义

关于迹的等式

  1. 若$A$和$B$均为$n\times n$矩阵,则$tr(A\pm B)=tr(A)\pm tr(B)$
  2. 若$A$和$B$均为$n\times n$矩阵,并且$c_{1}$和$c_{2}$为常数,则$tr(c_{1}A\pm c_{2}B)=c_{1}tr(A)\pm c_{2}tr(B)$。特别地,若$B=O$,则$tr(cA)=ctr(A)$
  3. 矩阵$A$的转置,复数共轭和复共轭转置的迹分别为 $tr(A^{T})=tr(A),tr(A^{})=[tr(A)]^{}, tr(A^{H})=[tr(A)]^{H}$
  4. 若$A\in C^{m\times n}, B\in C^{n\times m}$,则$tr(AB)=tr(BA)$
  5. 若$A$是一个$m\times n$矩阵,则$tr(A^H A)=0\Leftrightarrow A=O_{m\times n}(零矩阵)$
  6. $x^{H}Ax=tr(Axx^H)$和$y^H x=tr(xy^H)$
  7. 迹等于特征值之和,即$tr(A)=\lambda_{1}+…+\lambda_{n}$
  8. 分块矩阵的迹满足
    $$
    tr\begin{bmatrix}
    A& B\
    C& D
    \end{bmatrix}=tr(A)+tr(D)
    $$
    其中$A\in C^{m\times m}, B\in C^{m\times n}, C\in C^{n\times m}, D\in C^{n\times n}$
  9. 对于任何正整数$k$,有
    $$
    tr(A^k)=\sum_{i=1}^{n}\lambda _{i}^{k}
    $$

根据迹的等式4进行推理,令$U=A, V=BC$和$U=AB, V=C$,有

$$
tr(ABC)=tr(BCA)=tr(CAB)
$$

迹和Hadamard积

另$A,B,C$为$m\times n$矩阵,并且$1=[1,1,…,1]^T$为$n\times 1$求和向量,$D=diag(d_{1},d_{2},…,d_{m})$,其中$d_{i}=\sum_{j=1}^{n}a_{ij}$,则

$$
tr(A^{T}(B*C))=tr((A^{T}B^{T})C) \
1^{T}A^{T}(B
C)1=tr(B^{T}DC)
$$

证明如下,设

$$
A=\begin{bmatrix}
a_{1} & a_{2}
\end{bmatrix} \
B=\begin{bmatrix}
b_{1} & b_{2}
\end{bmatrix} \
C=\begin{bmatrix}
c_{1} & c_{2}
\end{bmatrix} \
D=\begin{bmatrix}
a_{1} & 0\
0 & a_{2}
\end{bmatrix}
$$

所以

$$
A^{T}(B*C)=
\begin{bmatrix}
a_{1}\
a_{2}
\end{bmatrix}
(\begin{bmatrix}
b_{1} & b_{2}
\end{bmatrix}
*
\begin{bmatrix}
c_{1} & c_{2}
\end{bmatrix})
=\begin{bmatrix}
a_{1}\
a_{2}
\end{bmatrix}
\begin{bmatrix}
b_{1}c_{1} & b_{2}c_{2}
\end{bmatrix}
=\begin{bmatrix}
a_{1}b_{1}c_{1} & a_{1}b_{2}c_{2}\
a_{2}b_{1}c_{1} & a_{2}b_{2}c_{2}
\end{bmatrix}
$$

$$
(A^{T}*B^{T})C=
(
\begin{bmatrix}
a_{1}\
a_{2}
\end{bmatrix}
*
\begin{bmatrix}
b_{1}\
b_{2}
\end{bmatrix}
)
\begin{bmatrix}
c_{1} & c_{2}
\end{bmatrix}
=\begin{bmatrix}
a_{1}b_{1}\
a_{2}b_{2}
\end{bmatrix}
\begin{bmatrix}
c_{1} & c_{2}
\end{bmatrix}
=\begin{bmatrix}
a_{1}b_{1}c_{1} & a_{1}b_{1}c_{2}\
a_{2}b_{2}c_{1} & a_{2}b_{2}c_{2}
\end{bmatrix}
$$

$$
\Rightarrow tr(A^{T}(B*C))=tr((A^{T}*B^{T})C)=a_{1}b_{1}c_{1}+a_{2}b_{2}c_{2}
$$

$$
1^{T}A^{T}(B*C)1=
1^{T}
\begin{bmatrix}
a_{1}\
a_{2}
\end{bmatrix}
(\begin{bmatrix}
b_{1} & b_{2}
\end{bmatrix}
*\begin{bmatrix}
c_{1} & c_{2}
\end{bmatrix})1
=1^{T}
\begin{bmatrix}
a_{1}\
a_{2}
\end{bmatrix}
\begin{bmatrix}
b_{1}c_{1} & b_{2}c_{2}
\end{bmatrix}1\
=(a_{1}+a_{2})
\begin{bmatrix}
b_{1}c_{1} & b_{2}c_{2}
\end{bmatrix}1
=(a_{1}+a_{2})(b_{1}c_{1}+b_{2}c_{2})
$$

$$
tr(B^{T}DC)
=tr(
\begin{bmatrix}
b_{1}\
b_{2}
\end{bmatrix}
(a_{1}+a_{2})
\begin{bmatrix}
c_{1} & c_{2}
\end{bmatrix}
)
=tr(
(a_{1}+a_{2})
\begin{bmatrix}
b_{1}\
b_{2}
\end{bmatrix}
\begin{bmatrix}
c_{1} & c_{2}
\end{bmatrix}
)\
=tr(
(a_{1}+a_{2})
\begin{bmatrix}
b_{1}c_{1} & b_{1}c_{2}\
b_{2}c_{2} & b_{2}c_{2}
\end{bmatrix})
=(a_{1}+a_{2})(b_{1}c_{1}+b_{2}c_{2})
$$

$$
\Rightarrow 1^{T}A^{T}(B*C)1=tr(B^{T}DC)=(a_{1}+a_{2})(b_{1}c_{1}+b_{2}c_{2})
$$

对于公式二而言,其矩阵大小变化如下:

$$
R^{1\times n}\cdot R^{n\times m}\cdot (R^{m\times n}* R^{m\times n})\cdot R^{n\times 1}=R^{1}
$$

所以只要满足结果为$R^{1}$,公式二可以变形如下:

假设$B/C$大小为$R^{n\times 1}$

$$
1^{T}\cdot (B* C)=B^{T}\cdot C
$$

向量化和矩阵化

向量化

  • 列向量化:矩阵$A\in R^{m\times n}$的向量化(vectorization)vec(A)是一个线性变换,它将矩阵$A=[a_{ij}]$的元素按列堆栈(column stacking),排列成一个$mn\times 1$向量

$$
vec(A)=[a_{11},…,a_{m1},…,a_{1n},…,a_{mn}]^T
$$

  • 行向量化:按行堆栈(stack the rows)

$$
rvec(A)=[a_{11},…,a_{1n},…,a_{m1},…,a_{mn}]
$$

注意:默认矩阵向量化指的是列向量化

行向量化和列向量化的关系:

$$
rvec(A)=(vec(A^T))^T \
vec(A^T)=(rvec(A^T))^T
$$

存在一个$mn\times mn$置换矩阵,可以将一个矩阵的向量化$vec(A)$变换为其转置矩阵的向量化$vec(A^T)$,称为交换矩阵(communication matrix),记作$K_{mn}$,定义为

$$
K_{mn}vec(A)=vec(A^T)
$$

同样存在一个将转置矩阵的向量化$vec(A^T)$变换为原矩阵的向量化$vec(A)$的交换矩阵,记作$K_{nm}$,定义为

$$
K_{nm}vec(A^T)=vec(A)
$$

矩阵化

一个$mn\times 1$向量$a=[a_{1},…,a_{mn}]^T$转换为一个$m\times n$矩阵$A$的运算称为矩阵化(matrixing, maxicization),用符号$unvec_{m,n}(a)$表示,定义为

$$
A_{m\times n}=unvec_{m,n}(a)=\begin{bmatrix}
a_{1} & a_{m+1} & \dots & a_{m(n-1)+1}\
a_{2} & a_{m+2} & \dots & a_{m(n-1)+2}\
\vdots & \vdots & \vdots & \vdots\
a_{m} & a_{2m} & \dots & a_{mn}
\end{bmatrix}
$$

$$
A_{ij}=a_{i+(j-1)m},\ i=1,…,m;j=1,…,n
$$

同样的,符号$unrvec_{m,n}(b)$记作行向量的矩阵化

$$
B_{m\times n}
=unvec_{m,n}(b)
=\begin{bmatrix}
b_{1} & b_{m+1} & \dots & b_{m(n-1)+1}\
b_{2} & b_{m+2} & \dots & b_{m(n-1)+2}\
\vdots & \vdots & \vdots & \vdots\
b_{m} & b_{2m} & \dots & b_{mn}
\end{bmatrix}
$$

$$
B_{ij}=a_{j+(i-1)n},\ i=1,…,m;j=1,…,n
$$

相关阅读

  • 《矩阵分析与应用》第一章 1.1.2 矩阵的基本运算

  • 《矩阵分析与应用》第一章 1.9.2 Hadamard积

  • 《矩阵分析与应用》第一章 1.10.1 Kronnecker积及其性质

  • 《矩阵分析与应用》第一章 1.11.1 矩阵的向量化与向量的矩阵化

  • Scalars, Vectors and Matrices

  • 矩阵乘法

  • 共轭

  • 转置