【线性代数】【一】 1.4 矩阵运算

文章目录


前言

这篇博客写在1.5 矩阵的逆之后,很惭愧,写完了逆的部分,发现还没有完整地介绍一下矩阵的运算,直接加在逆那篇又嫌冗长,只好单独补一篇。

没写也是因为纠结需不需要写,矩阵的运算像从小就学的加减乘除四项运算一样刻入脑海,以至于都忽视了它。不过本着系列的完整性,还是写吧。


一、为什么引入矩阵的运算

怎么看待矩阵的运算呢?其实矩阵的运算是给出了一种批量进行大量运算的模式。我们从小学的四项运算很直观清楚,但是对计算机来说不够效率。如果每次只能串联的进行一次一次的两个数的运算,就没必要大费周章地集成那么多的运算单元了。所以矩阵就是把这些要进行运算的数打包起来,利用矩阵运算的规则一次性处理这些相似的计算。

二、矩阵的加法

矩阵的加法与向量的加法相同,即进行相同位置元素的标量加法即可。不同的只是矩阵中有行列两个维度,两个维度的位置都要匹配上。其实我们有三个不同的维度去看待矩阵的方式,一个是由一堆元素组成的阵列,一个是不同行列向量的排列,还有就是具有两个维度的"向量"。

减法与加法本质上是一样的,只要引入加法零元(具体内容可以参考1.5矩阵的逆 ),就可以类似相反数一样定义相反矩阵,减去矩阵 A A A就是加上 A A A的相反矩阵 − A -A −A。

三、矩阵的乘法

介绍矩阵乘法我们可以从向量点乘开始。向量点乘是对应元素相乘,然后求和。一个 1 × n 1\times n 1×n的矩阵与 n × 1 n\times 1 n×1的矩阵相乘运算过程就相当于一个行向量与列向量相乘。只是这里的相应元素与向量中相同序列号不同,这里是左边矩阵元素的列数,要对应右边矩阵元素的行数。

进一步,把左边矩阵增加一行,变成2 × n \times n ×n。其实运算过程仍然是类似的,不过是把过程重复了一次,用第一行与右边的列向量做"点乘"得到计算结果的第一行第一列的元素,用第二行与右边列向量做"点乘",得到第二行第一列的元素。可以看到,左边矩阵的行数决定了"点乘"结果的所在行数,右边矩阵的列数决定了"点乘"结果所在列数。

再扩展,就是把右边矩阵增加一列,那就是进行四次运算,左第一行与右边两列分别"点乘",得到第一行的两个元素,左第二行与右边两列分别"点乘",得到第二行的两个元素。

至此,矩阵乘法的运算规则就清楚了,对应矩阵乘积 A B = C AB=C AB=C,输出矩阵C中第 i i i行第 j j j列的元素 c i j = a i T b j = ∑ k n a i k b k j c_{ij}=\bm{a}^T_i\bm{b}j=\sum_k^na{ik}b_{kj} cij=aiTbj=∑knaikbkj,其中 a i \bm{a}_i ai为矩阵A中第 i i i行元素组成的列向量(线性代数中习惯将向量看出列向量,加上转置符号 T T T就变成了行向量。), b j \bm{b}_j bj为矩阵B中第 j j j列元素组成的列向量。

二、线性组合与分块矩阵乘法

在1.1中,我们就介绍过线性组合的概念,我们说线性方程组 A x = b Ax=b Ax=b可以看成是找到对 A A A中列向量的一组线性组合系数,去得到 b b b。上述的矩阵乘法运算规则,我们也可以用线性组合的方式去看,即右边矩阵的每一列都是在对左边矩阵的列向量做线性组合,组合完的列向量就放在输出矩阵的对应列。

类似的,也会有将左边矩阵的每一行看作是是对右边矩阵的每一行做线性组合。就不再赘述。

下面再介绍一下更一般的分块矩阵乘法。即两个矩阵 A B AB AB相乘,可以对其进行任意的分块,就像切豆腐一样,然后得到乘法结果:

A B = ( A 11 A 12 A 21 A 22 ) \mathbf{AB} = \left( \begin{array}{ccc} A_{11} & A_{12} \\ A_{21}&A_{22}\\ \end{array} \right) AB=(A11A21A12A22) ( B 11 B 12 B 21 B 22 ) \left( \begin{array}{ccc} B_{11} & B_{12} \\ B_{21}&B_{22}\\ \end{array} \right) (B11B21B12B22)
= ( A 11 B 11 + A 12 B 21 A 11 B 12 + A 12 B 22 A 21 B 11 + A 22 B 21 A 21 B 12 + A 22 B 22 ) =\left( \begin{array}{ccc} A_{11}B_{11}+A_{12}B_{21} & A_{11}B_{12}+A_{12}B_{22} \\ A_{21}B_{11}+A_{22}B_{21}&A_{21}B_{12}+A_{22}B_{22}\\ \end{array} \right) =(A11B11+A12B21A21B11+A22B21A11B12+A12B22A21B12+A22B22)

其中 A i j A_{ij} Aij与 B i j B_{ij} Bij都是矩阵,因此不要写错了乘法顺序。不过该分块有一个要求,那就是要保证分完块以后能进行矩阵乘法,只包括两方面:一方面分完的每个小块之间要能乘,即 A i j A_{ij} Aij与 B i j B_{ij} Bij要行列匹配;另一方面分完以后块也要行列匹配,即左边矩阵按列分了 n n n块的话,右边矩阵也要按行分 n n n块。

引入分块矩阵乘法以后,我们可以发现上述列向量的线性组合的方式去看待矩阵乘法,其实就是把左边矩阵按列数分块,右边矩阵按行数分块进行的分块矩阵乘法。行向量的线性组合也是同理,不再赘述。


总结

本文完善了矩阵运算的说明,其中重点是矩阵乘法中的线性组合的理解方式,以及分块矩阵乘法。在以后的计算中适当的通过分块(包括线性组合)的方式进行矩阵乘法运算,可以简化过程,并且理解到不一样的地方,让我们拭目以待。

相关推荐
foundbug9991 小时前
利用MATLAB计算梁单元刚度矩阵并组装成总体刚度矩阵
开发语言·matlab·矩阵
好奇龙猫2 小时前
大学院-筆記試験練習:线性代数和数据结构(20)
数据结构·线性代数
好学且牛逼的马2 小时前
【Hot100|18-LeetCode 54. 螺旋矩阵】
算法·leetcode·矩阵
AI科技星2 小时前
电磁光速几何耦合常数 Z‘ 的几何起源、第一性原理推导与多维度验证
人工智能·线性代数·算法·矩阵·数据挖掘
求真求知的糖葫芦18 小时前
耦合传输线分析学习笔记(八)对称耦合微带线S参数矩阵推导与应用(上)
笔记·学习·矩阵·射频工程
独自破碎E1 天前
【模拟】顺时针旋转矩阵
java·线性代数·矩阵
求真求知的糖葫芦1 天前
耦合传输线分析学习笔记(九)对称耦合微带线S参数矩阵推导与应用(下)
笔记·学习·矩阵·射频工程
AI科技星1 天前
加速运动电荷产生引力场方程求导验证
服务器·人工智能·线性代数·算法·矩阵
求真求知的糖葫芦1 天前
RF and Microwave Coupled-Line Circuits射频微波耦合线电路4.2 使用均匀耦合线的方向性耦合器学习笔记(自用)
笔记·学习·线性代数·射频工程
好奇龙猫1 天前
【大学院-筆記試験練習:线性代数和数据结构(19)】
数据结构·线性代数