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

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

前言

Hello!小伙伴!

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

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

昵称:海轰

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

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

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

机器学习小白阶段

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

知其然 知其所以然!

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

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

2.1 矩阵

定义

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

A = [ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . . . . a m 1 a m 2 . . . a m n ] A=\begin{bmatrix} a_{11} & a_{12} &... & a_{1n}\\ a_{21} & a_{22} & ... &a_{2n}\\ . & . & & . \\ . & . & & . \\ a_{m1} & a_{m2} &... & a_{mn}\\ \end{bmatrix}

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

矩阵类型

常用矩阵有:

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

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

n阶方阵/矩阵也记作 A n A_n

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

A = [ a 1 , a 2 , . . . , a n ] A=\begin{bmatrix} a_1,a_2,...,a_n \end{bmatrix}

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

B = [ b 1 b 2 . . . b n ] B=\begin{bmatrix} b_1\\ b_2\\ .\\ .\\ .\\ b_n \end{bmatrix}

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

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

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

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

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

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

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

2.2 矩阵的运算

2.2.1 矩阵的加法

定义

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

A + B = [ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . . . . a m 1 a m 2 . . . a m n ] + [ b 11 b 12 . . . b 1 n b 21 b 22 . . . b 2 n . . . . . . b m 1 b m 2 . . . b m n ] = [ a 11 + b 11 a 12 + b 12 . . . a 1 n + b 1 n a 21 + b 21 a 22 + b 22 . . . a 2 n + b 2 n . . . . . . a m 1 + b m 1 a m 2 + b m 2 . . . a m n + b m n ] 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 + A A+B=B+A
  • ( A + B ) + C = A + ( B + C ) (A+B)+C=A+(B+C)

补充

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

A -A 称为矩阵 A A 负矩阵

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

所以,矩阵的减法为

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

2.2.2 数与矩阵相乘

定义

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

λ A = A λ = [ λ a 11 λ a 12 . . . λ a 1 n λ a 21 λ a 22 . . . λ a 2 n . . . . . . λ a m 1 λ a m 2 . . . λ a m n ] \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 = ( a i j ) A=(a_{ij}) 是一个ms矩阵, B = ( b i j ) B=(b_{ij}) 是一个sn矩阵

那么规定矩阵 A A 与矩阵 B B 的乘积是一个m*n矩阵 C = ( c i j ) C=(c_{ij}) ,其中 c i j = a i 1 b 1 j + a i 2 b 2 j + . . . + a i s b s j = k = 1 s a i k b k j ( 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 = A B C=AB

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

运算规律

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

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

矩阵 A 0 , B 0 A\neq 0 , B \neq 0 ,但是 A B AB 或者 B A BA 是有可能为0的。(0是值0矩阵)

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

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

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

对于单位矩阵 E E E A = A E = A EA=AE=A

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

矩阵的幂

  • A 1 = A A^1=A
  • A 2 = A 1 A 1 A^2=A^1A^1
  • .
  • .
  • .
  • A k + 1 = A k A 1 A^{k+1}=A^kA^1

其他

  • A k A l = A k + l A^kA^l=A^{k+l}
  • ( A k ) l = A k l (A^k)^l=A^{kl}
  • ( A + B ) 2 = ( A + B ) ( A + B ) = A A + A B + B A + B B = A 2 + A B + B A + B 2 (A+B)^2=(A+B)(A+B)=AA+AB+BA+BB=A^2+AB+BA+B^2
  • ( A B ) ( A + B ) = A A + A B B A B B = A 2 + A B B A B 2 (A-B)(A+B)=AA+AB-BA-BB=A^2+AB-BA-B^2

2.2.4 矩阵的转置

定义

转置矩阵

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

m×n矩阵A

A = [ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . . . . a m 1 a m 2 . . . a m n ] A=\begin{bmatrix} a_{11} & a_{12} &... & a_{1n}\\ a_{21} & a_{22} & ... &a_{2n}\\ . & . & & . \\ . & . & & . \\ a_{m1} & a_{m2} &... & a_{mn}\\ \end{bmatrix}

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

A T = [ a 11 a 21 . . . a m 1 a 12 a 22 . . . a m 2 . . . . . . a 1 n a 2 n . . . a m n ] A^T=\begin{bmatrix} a_{11} & a_{21} &... & a_{m1}\\ a_{12} & a_{22} & ... &a_{m2}\\ . & . & & . \\ . & . & & . \\ a_{1n} & a_{2n} &... & a_{mn}\\ \end{bmatrix}

A A 为m×n矩阵, A T A^T 为n×m矩阵

举例

比如:

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

那么

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

运算规律

转置满足的规律

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

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

首先设 A = ( a i j ) m × n B = ( b i j ) s × n A=(a_{ij})_{m×n},B=(b_{ij})_{s×n} , ​ 记 A B = C = ( c i j ) m × n , B T A T = D = ( d i j ) n × m AB=C=(c_{ij})_{m×n},B^TA^T=D=(d_{ij})_{n×m}

由矩阵相乘公式 得

c j i = k = 1 s a j k b k i c_{ji}=\sum_{k=1}^s a_{jk}b_{ki}

B T B^T 的第i行为 ( b 1 i , . . . , b s i ) (b_{1i},...,b_{si})

A T A^T 的第j列为 ( a j 1 , . . , a j s ) (a_{j1},..,a_{js})

所以

d i j = k = 1 s b k i a j k = k = 1 s a j k b k i d_{ij}=\sum_{k=1}^s b_{ki}a_{jk}=\sum_{k=1}^s a_{jk}b_{ki}

推出

d i j = c j i d_{ij}=c_{ji}

D = C T D=C^T

所以

B T A T = ( A B ) T B^TA^T=(AB)^T

补充

对称矩阵

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

2.2.5 方阵的行列式

内容

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

注意

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

运算规律

满足的运算规律

  • ​$\begin{vmatrix}

A^T \end{vmatrix}=\begin{vmatrix} A \end{vmatrix}$

  • ​$\begin{vmatrix}

\lambda A \end{vmatrix}=\lambda ^n\begin{vmatrix} A \end{vmatrix}$

  • ​$\begin{vmatrix}

AB \end{vmatrix}=\begin{vmatrix} A \end{vmatrix}\begin{vmatrix} B \end{vmatrix}$

伴随矩阵

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

A = ( A i j ) T = [ A 11 A 21 . . . A n 1 A 12 A 22 . . . A n 2 . . . . . . . . . A 1 n A 2 n . . . A n n ] 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阶方阵)

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

证明 ​ 设 A = ( a i j ) , A A = ( b i j ) A=(a_{ij}) , AA^*=(b_{ij})

由矩阵的乘法公式:

c i j = a i 1 b 1 j + a i 2 b 2 j + . . . + a i s b s j c_{ij} = a_{i1}b_{1j}+a_{i2}b_{2j} + ... + a_{is}b_{sj}

可得

b i j = a i 1 A j 1 + a i 2 A j 2 + + a i n A j n b_{ij}=a_{i1}A_{j1}+a_{i2}A_{j2}+\cdots+a_{in}A{jn} ​ 又由行列式定理3 D = a i 1 A i 1 + a i 2 A i 2 + . . . + a i n A i n ( 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|的意思) 得出 ​ b i j = a i 1 A j 1 + a i 2 A j 2 + + a i n A j n = A δ i j b_{ij}=a_{i1}A_{j1}+a_{i2}A_{j2}+\cdots+a_{in}A{jn}=|A|\delta_{ij}

其中 δ i j = { 1 i = = j 0 i ! = 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时, b i j = A b_{ij}=|A|
  • i!+=j时, b i j = 0 b_{ij}=0

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

所以

A A = ( b i j ) = ( A δ i j ) = A ( δ i j ) = A E AA^*=(b_{ij})=(|A|\delta_{ij})=|A|(\delta_{ij})=|A|E

注意:

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

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

证明完成!

2.2.6 共轭矩阵

A = ( a i j ) A=(a_{ij}) 为复矩阵时,

a i j \overline a_{ij} 表示 a i j a_{ij} 的共轭复数

A = ( a i j ) \overline A=(\overline a_{ij})

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

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

共轭矩阵满足的规律

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

结语

说明:

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

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

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

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

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

谢谢支持 ❤️

在这里插入图片描述

猜你喜欢

转载自juejin.im/post/7018754595245539335