有下面两个矩阵A和B,试求A+B和A-B
矩阵A和矩阵B相加减的规则是同行同列的元素进行加减操作,计算结果作为结果矩阵的同行同列的元素。
A+B计算过程如下所示:
A-B计算过程如下所示:
在上面计算A+B的过程中,A[1,1]与B[1,1]相加得7,7作为结果矩阵C[1,1]的值,A[1,2]与B[1,2]相加得5,5作为结果矩阵C[1,2]的值,A[1,3]与B[1,3]相加得1,1作为结果矩阵C[1,3]的值,A[2,1]与B[2,1]相加得11,11作为结果矩阵C[2,1]的值,……,依次类推,求出结果矩阵C。
同理,可以求出A-B的结果矩阵C。
两个矩阵相减,也可以使用加法来解决。我们知道减去一个数,等于加上这个数的相反数。例如:
-1-(-7) = -1 + ((-1)(-7))= 6
求一个数的相反数,可以用-1去乘以这个数,因为互为相反数的两个数的商为-1(0除外)。
两个矩阵相减,也可以这么计算:
A-B = A + (-1)* B
在线性代数中,常数也称为标量,标量是一个单独的数,只有数值没有方向。后面的课程我们会讲到向量,向量是一组数,既有大小也有方向。
标量与矩阵相乘,结果矩阵与原矩阵的行列数相同,其元素的值是原矩阵中每个对应元素与标量相乘的数值。
(-1)* B的计算过程如下所示:
在上面计算-1 * B的过程中,-1与B[1,1]相乘得-8,-8作为结果矩阵D[1,1]的值,-1与B[1,2]相乘得-2,-2作为结果矩阵D[1,2]的值,-1与B[1,3]相乘得1,1作为结果矩阵D[1,3]的值,-1与B[2,1]相乘得-6,-6作为结果矩阵D[2,1]的值,……,依次类推,求出结果矩阵D。
然后,计算A+D,A+D的结果就是A-B的结果。
注意:两个矩阵的加减规则只能用于两个行列数相同的矩阵,当两个矩阵的行列数不同时,不能进行加减操作。
下面我们使用Python语言来实现A+B和A-B的计算过程。
在Python语言中,矩阵可以使用两层嵌套列表来存储。第一层列表元素也是一个列表,第二层列表存储矩阵的元素。使用双重for循环可以遍历矩阵的所有元素。
下面我们使用NumPy库来实现A+B和A-B的计算过程。
NumPy对矩阵的初始化也是用了两层嵌套列表,计算过程就简单多了,矩阵的加减运算类似两个数的加减运算。