数学要素(全彩图解 + 微课 + Python编程)
上QQ阅读APP看书,第一时间看更新

2.4 矩阵乘法第一视角

这一节探讨矩阵乘法的第一视角。

两个2×2矩阵相乘

上一节最后介绍,ab均是形状为n×1的列向量,aTb结果为标量,相当于标量积a·b。我们可以把式(2.20)中A写成两个行向量a(1)a(2),把B写成两个列向量b1b2,即

这样AB矩阵乘积可以写成

也就是说,将位于矩阵乘法左侧的A写成行向量,右侧的B写成列向量。然后,行向量和列向量逐步相乘,得到乘积每个位置的元素。

用符号代替具体数字,可以写成

式(2.27)展示的是矩阵乘法的基本视角,它直接体现出来的是矩阵乘法规则。

再次强调:a(1)是行向量,b1是列向量。

更一般情况

矩阵乘积AB中,左侧矩阵A的形状为m×p,将矩阵A写成一组上下叠放的行向量ai,即

其中:行向量ai列数为p,即有p个元素。

矩阵乘积AB中,右侧矩阵B的形状为p×n列,将矩阵B写成左右排列的列向量,即

其中:列向量bj行数为p,也有p个元素。

AB相乘,可以展开写成

热图

图2.10所示为热图(heatmap)可视化矩阵乘法。

图2.10 矩阵乘法热图展示

具体如图2.11所示,A中的第i行向量ai乘以B中的第j列向量bj,得到标量aibj,对应乘积矩阵C中第i行、第j列元素ci,j,即

这就是矩阵乘法的第一视角。

图2.11 矩阵乘法第一视角

代码文件Bk3_Ch2_10.py中Bk3_Ch2_10_A部分代码用于绘制图2.10。

代码用numpy.random.uniform()函数产生满足连续均匀分布的随机数,并用seaborn.heatmap()绘制热图。热图采用的colormap为'RdBu_r','Rd'是红色的意思,'Bu'是蓝色,'_r'代表“翻转”。

此外,我们还用Streamlit制作了展示矩阵乘法运算规则的App,请大家参考代码文件Streamlit_Bk3_Ch2_10.py。文件中还展示了如何使用try-except。