矩阵加减运算及Python实现
1702字,阅读需时6分钟

有下面两个矩阵A和B,试求A+B和A-B

 image.png                                            

矩阵A和矩阵B相加减的规则是同行同列的元素进行加减操作,计算结果作为结果矩阵的同行同列的元素。

A+B计算过程如下所示:

image.png

A-B计算过程如下所示:

image.png

在上面计算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的计算过程如下所示:

image.png

在上面计算-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的计算过程

#定义矩阵A和B
A = [[-1,3,2],[5,7,-2],[-3,0,1]]
B = [[8,2,-1],[6,4,0],[-2,3,5]]
 
#定义矩阵C,存储A+B的结果
C = [[0,0,0],[0,0,0],[0,0,0]]
 
#定义矩阵D,存储A-B的结果
D = [[0,0,0],[0,0,0],[0,0,0]]
 
# 遍历A矩阵的行
for i in range(len(A)):
   # 遍历A矩阵的列
   for j in range(len(A[0])):
       C[i][j] = A[i][j] + B[i][j]
       D[i][j] = A[i][j] - B[i][j]
 
#输出C矩阵
for r in C:
   print(r)
 
#输出D矩阵
for r in D:
   print(r)

在Python语言中,矩阵可以使用两层嵌套列表来存储。第一层列表元素也是一个列表,第二层列表存储矩阵的元素。使用双重for循环可以遍历矩阵的所有元素。

下面我们使用NumPy库来实现A+B和A-B的计算过程。

import numpy as np
 
#定义矩阵A和B
A = np.array([[-1,3,2],[5,7,-2],[-3,0,1]])
B = np.array([[8,2,-1],[6,4,0],[-2,3,5]])
 
#计算A+B
print(A+B)
 
#计算A-B
print(A-B)

NumPy对矩阵的初始化也是用了两层嵌套列表,计算过程就简单多了,矩阵的加减运算类似两个数的加减运算。

我要评论
全部评论
郎宏林
授课老师
授课老师简介
项目经理,系统分析和架构师,从事多年中文信息处理技术。熟悉项目管理、擅长项目需求分析和设计、精通Java、C#、Python等编程语言。
下载APP

手机、电脑同步学

用微信或手机浏览器扫描二维码,即可下载APP。

  • 备案号:鲁ICP备15001146号
  • @1997-2018 潍坊米粒花网络技术有限公司版权所有