矩阵基础

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

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

标量、向量和矩阵

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

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

矩阵乘法/积

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

    1.1 令A=[aij]是一个m×n矩阵,且α是一个标量。乘积αA是一个m×n矩阵,定义为[αA]ij=αaij 1.2 m×n矩阵A=[aij]r×1向量x=[x1,...,xn]T的乘积Ax只有当n=r时才存在,它是一个m×1向量,定义为 [Ax]i=j=1naijxj, i=1,...,m 1.3 m×n矩阵A=[aij]r×s矩阵B=[bij]的乘积AB只有当n=r时才存在,它是一个m×s矩阵,定义为 [AB]ij=k=1naikbbj, i=1,...,m; j=1,...,s

  2. 矩阵相同位置元素相乘 - Hadamard积 m×n矩阵A=[aij]m×n矩阵B=[bij]的Hadamard积记作AB,它仍然是一个m×n矩阵,其元素定义为两个矩阵对应元素的乘积 (AB)ij=aijbij

  3. Kronecker积 3.1 m×n矩阵A=[a1,...,an]p×q矩阵B右Kronecker积记作AB,是一个mp×nq矩阵,定义为 AB=[a1B,...,anB]=[aijB]i=1,j=1m,n=[a11Ba12Ba1nBa21Ba22Ba2nBam1Bam2BamnB] 3.2 m×n矩阵A=[a1,...,an]p×q矩阵B(左)Kronecker积 记作AB,是一个mp×nq矩阵,定义为 AB=[a1B,...,anB]=[aijB]i=1,j=1m,n=[Ab11Ab12Ab1qAb21Ab22Ab2qAbm1Abm2Abpq] 3.3 Kronecker积也称为直积(direct product)或者张量积(tensor product)通常使用右Keonecker积的形式进行书写

转置、共扼、共扼转置

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

A=[aij]是一个m×n矩阵,则

  • A的转置记作AT,是一个n×m矩阵,其元素定义为[AT]ij=aji
  • A的复数共轭 A 仍然是一个 m×n 矩阵,其元素定义为 [A]ij=aij
  • A的(复)共轭转置记作AH,它是一个n×m矩阵,定义为

AH=[a11a21am1a12a22am2a1na2namn]

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

对称矩阵:满足AT=A的正方实矩阵

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

共扼转置和转置的关系

AH=(A)T=(AT)

矩阵的迹

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

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

tr(A)=a11+...+anm=i=1naii

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

关于迹的等式

  1. AB均为n×n矩阵,则tr(A±B)=tr(A)±tr(B)
  2. AB均为n×n矩阵,并且c1c2为常数,则tr(c1A±c2B)=c1tr(A)±c2tr(B)。特别地,若B=O,则tr(cA)=ctr(A)
  3. 矩阵A的转置,复数共轭和复共轭转置的迹分别为 tr(AT)=tr(A)tr(A)=[tr(A)],tr(AH)=[tr(A)]H
  4. ACm×n,BCn×m,则tr(AB)=tr(BA)
  5. A是一个m×n矩阵,则tr(AHA)=0A=Om×n(零矩阵)
  6. xHAx=tr(AxxH)yHx=tr(xyH)
  7. 迹等于特征值之和,即tr(A)=λ1+...+λn
  8. 分块矩阵的迹满足 tr[ABCD]=tr(A)+tr(D) 其中ACm×m,BCm×n,CCn×m,DCn×n
  9. 对于任何正整数k,有 tr(Ak)=i=1nλik

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

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

迹和Hadamard积

A,B,Cm×n矩阵,并且1=[1,1,...,1]Tn×1求和向量,D=diag(d1,d2,...,dm),其中di=j=1naij,则

tr(AT(BC))=tr((ATBT)C)1TAT(BC)1=tr(BTDC)

证明如下,设

A=[a1a2] B=[b1b2] C=[c1c2] D=[a100a2]

所以

AT(BC)=[a1a2]([b1b2][c1c2])=[a1a2][b1c1b2c2]=[a1b1c1a1b2c2a2b1c1a2b2c2]

(ATBT)C=([a1a2][b1b2])[c1c2]=[a1b1a2b2][c1c2]=[a1b1c1a1b1c2a2b2c1a2b2c2]

tr(AT(BC))=tr((ATBT)C)=a1b1c1+a2b2c2

1TAT(BC)1=1T[a1a2]([b1b2][c1c2])1=1T[a1a2][b1c1b2c2]1=(a1+a2)[b1c1b2c2]1=(a1+a2)(b1c1+b2c2)

tr(BTDC)=tr([b1b2](a1+a2)[c1c2])=tr((a1+a2)[b1b2][c1c2])=tr((a1+a2)[b1c1b1c2b2c2b2c2])=(a1+a2)(b1c1+b2c2)

1TAT(BC)1=tr(BTDC)=(a1+a2)(b1c1+b2c2)

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

R1×nRn×m(Rm×nRm×n)Rn×1=R1

所以只要满足结果为R1,公式二可以变形如下:

假设B/C大小为Rn×1

1T(BC)=BTC

向量化和矩阵化

向量化

  • 列向量化:矩阵ARm×n的向量化(vectorization)vec(A)是一个线性变换,它将矩阵A=[aij]的元素按列堆栈(column stacking),排列成一个mn×1向量

vec(A)=[a11,...,am1,...,a1n,...,amn]T

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

rvec(A)=[a11,...,a1n,...,am1,...,amn]

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

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

rvec(A)=(vec(AT))Tvec(AT)=(rvec(AT))T

存在一个mn×mn置换矩阵,可以将一个矩阵的向量化vec(A)变换为其转置矩阵的向量化vec(AT),称为交换矩阵(communication matrix),记作Kmn,定义为

Kmnvec(A)=vec(AT)

同样存在一个将转置矩阵的向量化vec(AT)变换为原矩阵的向量化vec(A)的交换矩阵,记作Knm,定义为

Knmvec(AT)=vec(A)

矩阵化

一个mn×1向量a=[a1,...,amn]T转换为一个m×n矩阵A的运算称为矩阵化(matrixing, maxicization),用符号unvecm,n(a)表示,定义为

Am×n=unvecm,n(a)=[a1am+1am(n1)+1a2am+2am(n1)+2ama2mamn]

Aij=ai+(j1)m, i=1,...,m;j=1,...,n

同样的,符号unrvecm,n(b)记作行向量的矩阵化

Bm×n=unvecm,n(b)=[b1bm+1bm(n1)+1b2bm+2bm(n1)+2bmb2mbmn]

Bij=aj+(i1)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

  • 矩阵乘法

  • 共轭

  • 转置