目录

  • 一、python矩阵操作
  • 二、python矩阵乘法
  • 三、python矩阵转置
  • 四、python求方阵的迹
  • 五、python方阵的行列式计算方法
  • 六、python求逆矩阵/伴随矩阵
  • 七、python解多元一次方程



实验目的:

使用 jupyter 完成python矩阵基本运算实验

一、python矩阵操作

  • 创建2×3矩阵
import numpy as np
#使用mat函数创建一个2×3矩阵
a=np.mat([[1,2,3],[4,5,6]])
a

python 矩阵运算 dot python如何进行矩阵运算_矩阵转置

  • 获取矩阵的大小
a.shape

python 矩阵运算 dot python如何进行矩阵运算_numpy_02

  • 读取矩阵中的元素
a.T

python 矩阵运算 dot python如何进行矩阵运算_python_03

  • 行列转换
a.transpose()
a.T

python 矩阵运算 dot python如何进行矩阵运算_python_04

  • 用二维数组代替矩阵
b=np.array([[1,2,3],[4,5,6]])
b
b.T

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_05

  • 加减法
a+a
b+b

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_06

  • 列表不能尽兴加减
c=[[1,2,3],[4,5,6]]
c+c

python 矩阵运算 dot python如何进行矩阵运算_矩阵转置_07

二、python矩阵乘法

  • 使用二维数组创建两个矩阵 A 和 B
A=np.array([[1,2,3],[4,5,6]])
B=A.T

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_08

  • 矩阵的数乘,矩阵每个元素乘以该数
2*A
2*B

python 矩阵运算 dot python如何进行矩阵运算_python 矩阵运算 dot_09

  • dot 函数用于矩阵乘法,对于二维数组,它计算的是矩阵乘积,对于一维数组,它计算的是内积
A*B
np.dot(A,B)
np.dot(B,A)

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_10

  • 再创建一个二维数组C
C=np.array([[1,2],[1,3]])
C

python 矩阵运算 dot python如何进行矩阵运算_python 矩阵运算 dot_11

  • 验证矩阵的结合性(AB)C=A(BC)
np.dot(np.dot(A,B),C)
np.dot(A,np.dot(B,C))

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_12

  • 验证矩阵的分配性(A+B)C=AC+BC、C(A+B)=CA+CB
D=B-1
D
np.dot(A,B+D)
np.dot(A,B)+np.dot(A,D)

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_13

  • 数乘的结合性
2*(np.dot(A,B))
np.dot(A,2*B)
np.dot(2*A,B)
np.dot(A,2*B)

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_14

  • 使用 eye 创建一个单位矩阵,一个矩阵 A 乘以一个单位矩阵,还是它本身
I=np.eye(3)
I
np.dot(A,I)

python 矩阵运算 dot python如何进行矩阵运算_numpy_15

三、python矩阵转置

  • 验证矩阵转置的第一个性质:(A’)’=A
A
A.T.T

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_16

  • 验证矩阵转置的第二个性质:(A±B)’=A’±B’
(B+D).T
B.T+D.T

python 矩阵运算 dot python如何进行矩阵运算_python_17

  • 验证矩阵转置的第三个性质:(KA)’=KA’
10*A.T
(10*A).T

python 矩阵运算 dot python如何进行矩阵运算_numpy_18

  • 验证矩阵转置的第四个性质:(A×B)’=B’×A’
np.dot(A,B).T
np.dot(B.T,A.T)

python 矩阵运算 dot python如何进行矩阵运算_numpy_19

四、python求方阵的迹

方阵的迹就是主对角元素之和

  • 创建一个方阵E
E=np.array([[1,2,3],[4,5,6],[7,8,9]])
E

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_20

  • 计算方阵的迹
np.trace(E)

python 矩阵运算 dot python如何进行矩阵运算_矩阵转置_21

  • 再创建一个方阵F
F=E-2
F

python 矩阵运算 dot python如何进行矩阵运算_python_22

  • 验证:方阵的迹等于方阵的转置的迹
np.trace(E)
np.trace(E.T)

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_23

  • 验证:方阵的乘积的迹
np.trace(np.dot(E,F))
np.trace(np.dot(F,E))

python 矩阵运算 dot python如何进行矩阵运算_python_24

  • 验证:方阵的和的迹=方阵的迹的和
np.trace(E+F)
np.trace(E)+np.trace(F)

python 矩阵运算 dot python如何进行矩阵运算_逆矩阵_25

五、python方阵的行列式计算方法

计算方阵的行列式,用到的是 numpy 模块的 linalg.det 方法

二阶行列式:

python 矩阵运算 dot python如何进行矩阵运算_numpy_26


三阶行列式:

python 矩阵运算 dot python如何进行矩阵运算_矩阵转置_27

  • 已存在方阵E和F
  • 使用 det 方法求得方阵 E 和方阵 F 的行列式
np.linalg.det(E)
np.linalg.det(F)

python 矩阵运算 dot python如何进行矩阵运算_python_28

六、python求逆矩阵/伴随矩阵

设 A 是数域上的一个 n 阶方阵,若在相同数域上存在另一个 n 阶矩阵 B,使得:AB=BA=E,则我们称 B 是 A 的逆矩阵,而 A 则被称为可逆矩阵,当矩阵 A 的行列式 |A| 不等于 0 时才存在可逆矩阵。

  • 创建一个方阵A
A=np.array([[1,-2,1],[0,2,-1],[1,1,-2]])
A

python 矩阵运算 dot python如何进行矩阵运算_矩阵转置_29

  • 使用 linalg.det 求得方阵的行列式
A_abs=np.linalg.det(A)
A_abs

python 矩阵运算 dot python如何进行矩阵运算_矩阵转置_30

  • 使用 linalg.inv 求得方阵 A 的逆矩阵
B=np.linalg.inv(A)
B

python 矩阵运算 dot python如何进行矩阵运算_numpy_31

  • 接着我们利用公式计算
A_bansui=B*A_abs
A_bansui

python 矩阵运算 dot python如何进行矩阵运算_python 矩阵运算 dot_32

七、python解多元一次方程

用 python 的 numpy 包中的 linalg.solve() 方法解多元一次方程

python 矩阵运算 dot python如何进行矩阵运算_python 矩阵运算 dot_33

  • 将未知数的系数写下来,排列成一个矩阵 a
a=[[1,2,1],[2,-1,3],[3,1,2]]
a=np.array(a)
a

python 矩阵运算 dot python如何进行矩阵运算_numpy_34

  • 常数项构成一个一维数组
b=[7,7,18]
b=np.array(b)
b

python 矩阵运算 dot python如何进行矩阵运算_numpy_35

  • 使用linalg.solve 方法解方程,参数 a 指的是系数矩阵,参数 b 指的是常数项矩阵
x=np.linalg.solve(a,b)
x

python 矩阵运算 dot python如何进行矩阵运算_矩阵转置_36

  • 使用点乘的方法可以验证一下,系数乘以未知数可以得到常数项
np.dot(a,x)

python 矩阵运算 dot python如何进行矩阵运算_python_37