矩阵基础
小结矩阵求解过程中的基础知识
- 标量、向量和矩阵
- 矩阵乘法/积
- 转置、共扼、共扼转置
- 矩阵的迹
- 向量化和矩阵化
标量、向量和矩阵
- 标量(
scalar
)是一个数值,仅包含大小(magnitude or size
)信息 - 向量(或称为矢量,
vector
)是一列数值,同时包含大小(magnitude
)和方向(direction
)信息 - 矩阵(
matrix
)是一个数值数组
向量是矩阵的特殊情况(仅有一行或者仅有一列),所以对于矩阵的操作也能应用于向量
矩阵乘法/积
矩阵分别和标量/向量和矩阵的乘积
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 \]
矩阵相同位置元素相乘 - Hadamard积 \(m\times n\)矩阵\(A=[a_{ij}]\)与\(m\times n\)矩阵\(B=[b_{ij}]\)的Hadamard积记作\(A*B\),它仍然是一个\(m\times n\)矩阵,其元素定义为两个矩阵对应元素的乘积 \[ (A*B)_{ij}=a_{ij}b_{ij} \]
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} \]
注意:非正方矩阵无迹的定义
关于迹的等式
- 若\(A\)和\(B\)均为\(n\times n\)矩阵,则\(tr(A\pm B)=tr(A)\pm tr(B)\)
- 若\(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)\)
- 矩阵\(A\)的转置,复数共轭和复共轭转置的迹分别为 \(tr(A^{T})=tr(A),tr(A^{*})=[tr(A)]^{*}, tr(A^{H})=[tr(A)]^{H}\)
- 若\(A\in C^{m\times n}, B\in C^{n\times m}\),则\(tr(AB)=tr(BA)\)
- 若\(A\)是一个\(m\times n\)矩阵,则\(tr(A^H A)=0\Leftrightarrow A=O_{m\times n}(零矩阵)\)
- \(x^{H}Ax=tr(Axx^H)\)和\(y^H x=tr(xy^H)\)
- 迹等于特征值之和,即\(tr(A)=\lambda_{1}+...+\lambda_{n}\)
- 分块矩阵的迹满足 \[ 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}\)
- 对于任何正整数\(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 矩阵的向量化与向量的矩阵化