【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(6):矩阵的运算

1,041 阅读5分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

Hello!小伙伴!

非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~

 

自我介绍 ଘ(੭ˊᵕˋ)੭

昵称:海轰

标签:程序猿|C++选手|学生

简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖...已保研。目前正在学习C++/Linux/Python

学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!

 

机器学习小白阶段

文章仅作为自己的学习笔记 用于知识体系建立以及复习

知其然 知其所以然!

若查看数学公式不全或显示错误

可以查看:【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(6):矩阵的运算

2.1 矩阵

定义

mnm*n个数aij(i=1,2,...,m;j=1,2,...,n)a_{ij}(i=1,2,...,m; j=1,2,...,n)排成的m行n列的数表,称为m行n列矩阵,记作

A=[a11a12...a1na21a22...a2n......am1am2...amn]A=\begin{bmatrix} a_{11} & a_{12} &... & a_{1n}\\ a_{21} & a_{22} & ... &a_{2n}\\ . & . & & . \\ . & . & & . \\ a_{m1} & a_{m2} &... & a_{mn}\\ \end{bmatrix}

mnm*n个数称为矩阵A的元素,简称元,aija_{ij}位于矩阵A的第i行第j列,称为矩阵A的(i,j)元。

矩阵类型

常用矩阵有:

  • n阶矩阵或n阶方阵
  • 行矩阵
  • 列矩阵
  • 同型矩阵
  • 零矩阵
  • 对角矩阵

行数、列数都为n的矩阵称为n阶矩阵或n阶方阵

n阶方阵/矩阵也记作AnA_n

行矩阵(或行向量,只有一行的矩阵)

A=[a1,a2,...,an]A=\begin{bmatrix} a_1,a_2,...,a_n \end{bmatrix}

列矩阵(或列向量,只有一列的矩阵)

B=[b1b2...bn]B=\begin{bmatrix} b_1\\ b_2\\ .\\ .\\ .\\ b_n \end{bmatrix}

同型矩阵:两个矩阵的行数、列数都相等。

如果两个矩阵是同型矩阵,且对应的元素也相等,那么称这两个矩阵相等,记作A=BA=B

零矩阵:元素都是0的矩阵

单位矩阵(或单位阵):矩阵的左上角到右下角的直线(主对角线)上的元素都是1,其余元素都为0

E=[10...001...0......00...1]E=\begin{bmatrix} 1 & 0 &... & 0\\ 0 & 1 &... & 0\\ . & . & & . \\ . & . & & . \\ 0 & 0 &... & 1\\ \end{bmatrix}

对角矩阵(或对角阵):不在主对角线上的元素都为0,也记作A=diag(λ1,λ2,...,λn)A=diag(\lambda _1,\lambda _2,...,\lambda _n)

E=[λ10...00λ2...0......00...λn]E=\begin{bmatrix} \lambda _1 & 0 &... & 0\\ 0 & \lambda _2 &... & 0\\ . & . & & . \\ . & . & & . \\ 0 & 0 &... & \lambda _n\\ \end{bmatrix}

2.2 矩阵的运算

2.2.1 矩阵的加法

定义

设有两个mnm*n矩阵A=(aij)A=\begin{pmatrix} a_{ij} \end{pmatrix}B=(Bij)B=\begin{pmatrix} B_{ij} \end{pmatrix},那么矩阵A和B的和记作A+B

A+B=[a11a12...a1na21a22...a2n......am1am2...amn]+[b11b12...b1nb21b22...b2n......bm1bm2...bmn]=[a11+b11a12+b12...a1n+b1na21+b21a22+b22...a2n+b2n......am1+bm1am2+bm2...amn+bmn]A+B= \begin{bmatrix} a_{11} & a_{12} &... & a_{1n}\\ a_{21} & a_{22} & ... &a_{2n}\\ . & . & & . \\ . & . & & . \\ a_{m1} & a_{m2} &... & a_{mn}\\ \end{bmatrix}+\begin{bmatrix} b_{11} & b_{12} &... & b_{1n}\\ b_{21} & b_{22} & ... &b_{2n}\\ . & . & & . \\ . & . & & . \\ b_{m1} & b_{m2} &... & b_{mn}\\ \end{bmatrix}=\begin{bmatrix} a_{11}+b_{11} & a_{12} +b_{12}&... & a_{1n}+b_{1n}\\ a_{21}+b_{21} & a_{22}+b_{22} & ... &a_{2n}+b_{2n}\\ . & . & & . \\ . & . & & . \\ a_{m1}+b_{m1} & a_{m2} +b_{m2} &... & a_{mn}+b_{mn}\\ \end{bmatrix}

注意:只有两个矩阵为同型矩阵(行数、列数均相同),才可以进行加法运算。

运算规律

矩阵加法满足的运算规律(设A、B、C都是m*n矩阵)

  • A+B=B+AA+B=B+A
  • (A+B)+C=A+(B+C)(A+B)+C=A+(B+C)

补充

设矩阵A=(aij)A=\begin{pmatrix} a_{ij} \end{pmatrix},记A=(aij)-A=\begin{pmatrix} -a_{ij} \end{pmatrix}

A-A称为矩阵AA负矩阵

A+(A)=0A+(-A)=0 (这里0表示零矩阵)

所以,矩阵的减法为

AB=A+(B)A - B= A + (-B)

2.2.2 数与矩阵相乘

定义

λ\lambda与矩阵AA的乘积记作λA\lambda A或者AλA \lambda ,规定

λA=Aλ=[λa11λa12...λa1nλa21λa22...λa2n......λam1λam2...λamn]\lambda A = A \lambda= \begin{bmatrix} \lambda a_{11} &\lambda a_{12} &... & \lambda a_{1n}\\ \lambda a_{21} & \lambda a_{22} & ... &\lambda a_{2n}\\ . & . & & . \\ . & . & & . \\ \lambda a_{m1} &\lambda a_{m2} &... & \lambda a_{mn}\\ \end{bmatrix}

运算规律

数乘矩阵满足下列运算规律(设A、B是m*n矩阵,λ,μ\lambda, \mu为数)

  • (λμ)A=λ(μA)(\lambda \mu)A=\lambda(\mu A)
  • (λ+μ)A=λA+μA(\lambda+\mu)A=\lambda A + \mu A
  • λ(A+B)=λA+λB\lambda (A+B) = \lambda A + \lambda B

2.2.3 矩阵与矩阵相乘

定义

A=(aij)A=(a_{ij})是一个ms矩阵,B=(bij)B=(b_{ij})是一个sn矩阵

那么规定矩阵AA与矩阵BB的乘积是一个m*n矩阵C=(cij)C=(c_{ij}),其中 cij=ai1b1j+ai2b2j+...+aisbsj=k=1saikbkj(i=1,2,...m;j=1,2,...,n)c_{ij}=a_{i1}b_{1j}+a_{i2}b_{2j}+...+a_{is}b_{sj}=\sum_{k=1}^s a_{ik}b_{kj} (i=1,2,...m;j=1,2,...,n) 并把此乘积记作 C=ABC=AB

注意:只有当第一个矩阵(左矩阵)的列数等于第二个矩阵(右矩阵)的行数时,两个矩阵才能相乘。

运算规律

矩阵的乘法一般不满足交换律,即在一般情况下ABBAAB \neq BA

对于两个n阶方阵ABA、B,若AB=BAAB=BA,则称方阵AABB可交换的。

矩阵A0,B0A\neq 0 , B \neq 0,但是ABAB或者BABA是有可能为0的。(0是值0矩阵)

AB=0AB=0,也不能说明A=0A=0或者B=0B=0

矩阵乘法满足结合律和分配律

  • (AB)C=A(BC)(AB)C=A(BC)
  • λ(AB)=(λA)B=A(λB)\lambda (AB) = (\lambda A) B=A(\lambda B)
  • A(B+C)=AB+AC,(B+C)A=BA+CAA(B+C)=AB+AC,(B+C)A=BA+CA

对于单位矩阵EE EA=AE=AEA=AE=A

单位矩阵EE在矩阵乘法中的作用类似于数1

矩阵的幂

  • A1=AA^1=A
  • A2=A1A1A^2=A^1A^1
  • .
  • .
  • .
  • Ak+1=AkA1A^{k+1}=A^kA^1

其他

  • AkAl=Ak+lA^kA^l=A^{k+l}
  • (Ak)l=Akl(A^k)^l=A^{kl}
  • (A+B)2=(A+B)(A+B)=AA+AB+BA+BB=A2+AB+BA+B2(A+B)^2=(A+B)(A+B)=AA+AB+BA+BB=A^2+AB+BA+B^2
  • (AB)(A+B)=AA+ABBABB=A2+ABBAB2(A-B)(A+B)=AA+AB-BA-BB=A^2+AB-BA-B^2

2.2.4 矩阵的转置

定义

转置矩阵

某一个矩阵的行列互换得到的新矩阵称为转置矩阵

m×n矩阵A

A=[a11a12...a1na21a22...a2n......am1am2...amn]A=\begin{bmatrix} a_{11} & a_{12} &... & a_{1n}\\ a_{21} & a_{22} & ... &a_{2n}\\ . & . & & . \\ . & . & & . \\ a_{m1} & a_{m2} &... & a_{mn}\\ \end{bmatrix}

行列互换,得到A的转置矩阵,记作ATA^T

AT=[a11a21...am1a12a22...am2......a1na2n...amn]A^T=\begin{bmatrix} a_{11} & a_{21} &... & a_{m1}\\ a_{12} & a_{22} & ... &a_{m2}\\ . & . & & . \\ . & . & & . \\ a_{1n} & a_{2n} &... & a_{mn}\\ \end{bmatrix}

AA为m×n矩阵,ATA^T为n×m矩阵

举例

比如:

A=[123456]A=\begin{bmatrix} 1&2&3\\ 4&5&6 \end{bmatrix}

那么

AT=[142536]A^T=\begin{bmatrix} 1&4\\ 2&5\\ 3&6\\ \end{bmatrix}

运算规律

转置满足的规律

  • (AT)T=A(A^T)^T=A
  • (A+B)T=AT+BT(A+B)^T=A^T+B^T
  • (λA)T=λAT(\lambda A)^T=\lambda A^T
  • (AB)T=BTAT(AB)^T=B^TA^T

证明(AB)T=BTAT(AB)^T=B^TA^T

首先设A=(aij)m×nB=(bij)s×nA=(a_{ij})_{m×n},B=(b_{ij})_{s×n}, ​ 记AB=C=(cij)m×n,BTAT=D=(dij)n×mAB=C=(c_{ij})_{m×n},B^TA^T=D=(d_{ij})_{n×m}

由矩阵相乘公式 得

cji=k=1sajkbkic_{ji}=\sum_{k=1}^s a_{jk}b_{ki}

BTB^T的第i行为(b1i,...,bsi)(b_{1i},...,b_{si})

ATA^T的第j列为(aj1,..,ajs)(a_{j1},..,a_{js})

所以

dij=k=1sbkiajk=k=1sajkbkid_{ij}=\sum_{k=1}^s b_{ki}a_{jk}=\sum_{k=1}^s a_{jk}b_{ki}

推出

dij=cjid_{ij}=c_{ji}

D=CTD=C^T

所以

BTAT=(AB)TB^TA^T=(AB)^T

补充

对称矩阵

若A为n阶方阵,且AT=AA^T=A,那么A就是对称矩阵,简称对称阵:它的元素以主对角线为对称轴对应相等。

2.2.5 方阵的行列式

内容

由n阶方阵A的元素所构成的行列式(各元素的位置不变),称为方阵A的行列式,记作|A|或者detA

注意

  • n阶方阵是n2n^2个数按一定方式排成的数表
  • n阶行列式是这些数按一定的运算法则所确定的一个数

运算规律

满足的运算规律

  • AT=A\begin{vmatrix} A^T \end{vmatrix}=\begin{vmatrix} A \end{vmatrix}
  • λA=λnA\begin{vmatrix} \lambda A \end{vmatrix}=\lambda ^n\begin{vmatrix} A \end{vmatrix}
  • AB=AB\begin{vmatrix} AB \end{vmatrix}=\begin{vmatrix} A \end{vmatrix}\begin{vmatrix} B \end{vmatrix}

伴随矩阵

行列式A\begin{vmatrix} A \end{vmatrix}的各个元素的代数余子式AijA_{ij}所构成的如下矩阵

A=(Aij)T=[A11A21...An1A12A22...An2.........A1nA2n...Ann]A^*=\begin{pmatrix} A_{ij} \end{pmatrix}^T= \begin{bmatrix} A_{11}&A_{21}&...&A_{n1}\\ A_{12}&A_{22}&...&A_{n2}\\ .&.&&.&\\ .&.&&.&\\ .&.&&.&\\ A_{1n}&A_{2n}&...&A_{nn}\\ \end{bmatrix}

称为矩阵A的伴随矩阵,简称伴随阵(A是n阶方阵)

试证:AA=AA=AEAA^*=A^*A=\begin{vmatrix}A \end{vmatrix} E

证明 ​ 设A=(aij),AA=(bij)A=(a_{ij}) , AA^*=(b_{ij})

由矩阵的乘法公式:

cij=ai1b1j+ai2b2j+...+aisbsjc_{ij} = a_{i1}b_{1j}+a_{i2}b_{2j} + ... + a_{is}b_{sj}

可得

bij=ai1Aj1+ai2Aj2++ainAjnb_{ij}=a_{i1}A_{j1}+a_{i2}A_{j2}+\cdots+a_{in}A{jn} ​ 又由行列式定理3 D=ai1Ai1+ai2Ai2+...+ainAin(i=1,2,...,n)(其中D是行列式的值,这里其实就是代表|A|的意思)D=a_{i1}A_{i1}+a_{i2}A_{i2}+...+a_{in}A_{in}(i = 1,2,...,n) (其中D是行列式的值,这里其实就是代表|A|的意思) 得出 ​ bij=ai1Aj1+ai2Aj2++ainAjn=Aδijb_{ij}=a_{i1}A_{j1}+a_{i2}A_{j2}+\cdots+a_{in}A{jn}=|A|\delta_{ij}

其中δij={1i==j0i!=j(i,j=1,2,3...n)\delta_{ij} =\begin{cases} 1 & i==j\\ 0 & i!=j \end{cases} (i,j=1,2,3...n)

说明

  • 当i==j时,bij=Ab_{ij}=|A|
  • i!+=j时,bij=0b_{ij}=0

在矩阵中,就是正对角线元素都为|A|,其他元素为0

所以

AA=(bij)=(Aδij)=A(δij)=AEAA^*=(b_{ij})=(|A|\delta_{ij})=|A|(\delta_{ij})=|A|E

注意:

|A|是一个常数 E是一个单位矩阵 |A|E结果是一个矩阵,对角线上元素都是|A|

同理 ​ AA=AEA^*A=|A|E

证明完成!

2.2.6 共轭矩阵

A=(aij)A=(a_{ij})为复矩阵时,

aij\overline a_{ij}表示aija_{ij}的共轭复数

A=(aij)\overline A=(\overline a_{ij})

A\overline A称为AA的共轭矩阵

其实就是把A中的每个元素替换为它的共轭复数。

共轭矩阵满足的规律

  • A+B=A+B\overline {A+B}=\overline A + \overline B
  • λA=λA\overline {\lambda A}= \overline \lambda \overline A
  • AB=AB\overline {AB} = \overline A \overline B

结语

说明:

  • 参考于 课本《线性代数》第五版 同济大学数学系编
  • 配合书中概念讲解 结合了自己的一些理解及思考

文章仅作为学习笔记,记录从0到1的一个过程

希望对您有所帮助,如有错误欢迎小伙伴指正~

我是 海轰ଘ(੭ˊᵕˋ)੭

如果您觉得写得可以的话,请点个赞吧

谢谢支持 ❤️

在这里插入图片描述