线性代数学习笔记3-2:矩阵乘法的理解

矩阵向量乘法

计算矩阵乘法,有多种理解方式

  • 矩阵与向量的乘法,可以理解为矩阵各个列向量的线性组合
    [ a b c d ] [ x y ] = [ a x + b y c x + d y ] = x [ a c ] + y [ b d ] \begin{bmatrix}a&b\\c&d\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}ax+by\\cx+dy\end{bmatrix}=x\begin{bmatrix}a\\c\end{bmatrix}+y\begin{bmatrix}b\\d\end{bmatrix} [acbd][xy]=[ax+bycx+dy]=x[ac]+y[bd]

这就是说,计算矩阵乘法有两种方式;手算时显然用第二种”列向量的线性组合“更容易计算

  • 同样的,行向量与矩阵相乘,可以理解为矩阵各个行向量的线性组合
    [ x y ] [ a b c d ] = [ a x + c y b x + d y ] = x [ a b ] + y [ c d ] \begin{bmatrix}x&y\end{bmatrix}\begin{bmatrix}a&b\\c&d\end{bmatrix}=\begin{bmatrix}ax+cy&bx+dy\end{bmatrix}=x\begin{bmatrix}a&b\end{bmatrix}+y\begin{bmatrix}c&d\end{bmatrix} [xy][acbd]=[ax+cybx+dy]=x[ab]+y[cd]
    这样的观点非常重要,一定要习惯将矩阵线向量乘法视为向量的线性组合

矩阵与矩阵的乘法

矩阵A与矩阵B的乘法(A的列数必须等于B的行数),定义为
c 23 = ∑ k = 1 n a 2 k b k 3 c_{23}=\sum_{k=1}^{n}a_{2k}b_{k3} c23=k=1na2kbk3

【观点1】两个矩阵相乘AB=C,结果中的元素 c i j c_{ij} cij来自于矩阵A的第 i i i行和B的第 j j j列的点积

  • 这就是说,结果只的第 i i i行第 j j j列,来自于矩阵A的第 i i i个行向量和矩阵B的第 j j j个列向量

例如,
[ 1 0 0 2 1 0 0 0 1 ] [ 1 0 1 0 1 0 0 0 1 ] = [ 1 0 1 2 1 2 0 0 1 ] \begin{bmatrix}1&0&0\\2&1&0\\0&0&1\end{bmatrix}\begin{bmatrix}1&0&1\\0&1&0\\0&0&1\end{bmatrix}=\begin{bmatrix}1&0&1\\2&1&2\\0&0&1\end{bmatrix} 120010001 100010101 = 120010121
结果 c 23 = [ 2 1 0 ] [ 1 0 1 ] = 2 c_{23}=\begin{bmatrix}2&1&0\end{bmatrix}\begin{bmatrix}1\\0\\1\end{bmatrix}=2 c23=[210] 101 =2

矩阵向量乘法的推广:用向量的观点看矩阵与矩阵的乘法

进一步的,我们将矩阵看作向量组矩阵与矩阵相乘    ⟺    \iff 矩阵与向量组相乘

  • 两个矩阵相乘AB=C,C的第 j j j列,来自矩阵A 乘以 B的第 j j j个列向量(矩阵A的列向量的线性组合)
  • 两个矩阵相乘AB=C,C的第 i i i行,来自A的第 i i i个行向量 乘以 矩阵B(矩阵B的行向量的线性组合)

由上面可,得矩阵乘矩阵,数值上就是对其中一个矩阵做行/列变换:(这个“做变换”是相对的,可以看作左侧矩阵对右侧矩阵做列变换,也可以看作右侧矩阵对左侧矩阵做行变换)

  • 矩阵B右乘矩阵A,就是对A做列变换
    具体而言,【观点2】B的第 j j j个列向量,指出了A的列向量,是如何线性组合到C矩阵的第 j j j
    并且,B的其余列向量,不会参与到运算中,不会影响C的第 j j j列结果

任何向量右乘矩阵,一定得到矩阵列向量的线性组合,因此结果仍然位于矩阵的列空间中,这就是为什么矩阵视为线性变换时,其列向量就是“新的坐标系的基向量”

  • 矩阵A左乘矩阵B,就是对B做行变换
    具体而言,【观点3】A的第 i i i个行向量,指出了B的行向量,是如何线性组合得到C矩阵的第 i i i行的
    并且,A的其余行向量,不会参与到运算中,不会影响C的第 i i i行结果

例如,
[ 1 0 0 2 1 0 0 0 1 ] [ 1 0 1 0 1 0 0 0 1 ] = [ 1 0 1 2 1 2 0 0 1 ] \begin{bmatrix}1&0&0\\2&1&0\\0&0&1\end{bmatrix}\begin{bmatrix}1&0&1\\0&1&0\\0&0&1\end{bmatrix}=\begin{bmatrix}1&0&1\\2&1&2\\0&0&1\end{bmatrix} 120010001 100010101 = 120010121
可以看作:
①C的第二行源于B中行向量的线性组合:矩阵A左乘矩阵B,就是B的第一行x2,加到B的第二行
②C的第三列源于A中列向量的线性组合:矩阵B右乘矩阵A,就是A的第一列x1,加到A的第三列

又如,一种特殊的情况是,列向量乘以行向量,得到矩阵
[ 2 3 4 ] [ 1 4 ] = [ 2 8 3 12 4 16 ] \begin{bmatrix}2\\3\\4\end{bmatrix}\begin{bmatrix}1&4\end{bmatrix}=\begin{bmatrix}2&8\\3&12\\4&16\end{bmatrix} 234 [14]= 23481216
①C的第一/二/三行,就是行向量B的2/3/4倍
②C的第一/二列,就是列向量A的1/4倍

由此,产生【观点4】矩阵C= ∑ k = 1 n ( A 的第 k 列 ⋅ B 的第 k 行 ) \sum_{k=1}^n(A的第k列\cdot B的第k行) k=1n(A的第kB的第k)

例如, [ 1 2 2 3 3 4 ] [ 1 2 0 0 ] = [ 1 2 3 ] [ 1 2 ] + [ 2 3 4 ] [ 0 0 ] \begin{bmatrix}1&2\\2&3\\3&4\end{bmatrix}\begin{bmatrix}1&2\\0&0\end{bmatrix}=\begin{bmatrix}1\\2\\3\end{bmatrix}\begin{bmatrix}1&2\end{bmatrix}+\begin{bmatrix}2\\3\\4\end{bmatrix}\begin{bmatrix}0&0\end{bmatrix} 123234 [1020]= 123 [12]+ 234 [00]

一个矩阵可以对其他矩阵做行/列变换,我们也能复原这样的变换,工具就是逆矩阵
矩阵 [ 1 0 0 2 1 0 0 0 1 ] \begin{bmatrix}1&0&0\\2&1&0\\0&0&1\end{bmatrix} 120010001 在其他矩阵的第二行中加上2倍第一行
如果要还原,就要从其他矩阵的第二行中减去2倍第一行,这对应了其逆矩阵 [ 1 0 0 − 2 1 0 0 0 1 ] \begin{bmatrix}1&0&0\\-2&1&0\\0&0&1\end{bmatrix} 120010001

置换矩阵

置换矩阵(permutation matrix) P \mathbf P P:即行重新排列过的单位阵

  • 置换矩阵一定可逆,(通过行交换一定能回到单位阵),并且其逆矩阵 P − 1 = P T \mathbf P^{-1}=\mathbf P^T P1=PT
  • 从而有: P P T = P T P = I \mathbf P\mathbf P^T=\mathbf P^T\mathbf P=\mathbf I PPT=PTP=I

根据上面“矩阵乘法就是对矩阵做行/列变换”的观点,我们就能理解置换矩阵的作用了
例如, [ 0 1 0 1 0 0 0 0 1 ] \begin{bmatrix}0&1&0\\1&0&0\\0&0&1\end{bmatrix} 010100001 这个置换矩阵

  • 如果左乘另一矩阵,相当于交换该矩阵的一行和二行
  • 如果右乘另一矩阵,相当于交换该矩阵的一列和二列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值