编程语言
首页 > 编程语言> > pythonMatrix2

pythonMatrix2

作者:互联网

python矩阵基本运算(下)

文章目录

四 求方阵的迹

# 1.引入numpy
import numpy as np
# 2.创建一个方阵(方阵即行数等于列数的矩阵)
E=np.array([[1,2,3],[4,5,6],[7,8,9]])
E
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
# 3.用trace计算方阵的迹
np.trace(E)
15
# 再创建一个方阵F
F=E-2
F
array([[-1,  0,  1],
       [ 2,  3,  4],
       [ 5,  6,  7]])
# 验证一下方阵的迹等于方阵的转置的迹
np.trace(E)
15
np.trace(E.T)
15
# 验证方阵的乘积的迹等于
np.trace(np.dot(E,F))
171
np.trace(np.dot(F,E))
171
# 验证方阵的和的迹等于方阵的迹的和
np.trace(E+F)
24
np.trace(E)+np.trace(F)
24

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

如何计算方阵的行列式用到的是numpy模块的linalg.det方法
二阶方阵行列式算法
在这里插入图片描述

三阶方阵行列式算法
在这里插入图片描述

# 引入numpy模块
import numpy as np
# 创建两个方阵 E,F
E
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
F
array([[-1,  0,  1],
       [ 2,  3,  4],
       [ 5,  6,  7]])
# 使用det方法求得方阵E和方阵F的行列式
np.linalg.det(E)
-9.51619735392994e-16
np.linalg.det(F)
1.0658141036401459e-15
C=np.array([[1,2],[1,3]])
C
array([[1, 2],
       [1, 3]])
np.linalg.det(C)
1.0

求逆矩阵/伴随矩阵

设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得AB=BA=E。
则我们称B是A的逆矩阵,而A则被称为可逆矩阵。当矩阵的行列式|A|不等于0时才存在
可逆矩阵。
伴随矩阵的定义
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SWaMPgvV-1617612755766)(attachment:image.png)]

# 1.求矩阵的逆,先引入numpy
import numpy as np
# 2.创建一个方阵
A=np.array([[1,-2,1],[0,2,-1],[1,1,-2]])
A
array([[ 1, -2,  1],
       [ 0,  2, -1],
       [ 1,  1, -2]])
# 3.使用linalg.det求得方阵的行列式
A_abs=np.linalg.det(A)
A_abs
-2.9999999999999996
# 4.使用linalg.inv求得方阵A的逆矩阵
B=np.linalg.inv(A)
B
array([[ 1.00000000e+00,  1.00000000e+00, -1.11022302e-16],
       [ 3.33333333e-01,  1.00000000e+00, -3.33333333e-01],
       [ 6.66666667e-01,  1.00000000e+00, -6.66666667e-01]])
# 接着利用公式 A^-1=A/\A\==> A=A^-1\A\
# numpy的计算方法:
A_bansui=B*A_abs
A_bansui
array([[-3.00000000e+00, -3.00000000e+00,  3.33066907e-16],
       [-1.00000000e+00, -3.00000000e+00,  1.00000000e+00],
       [-2.00000000e+00, -3.00000000e+00,  2.00000000e+00]])

python解多元一次方程

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

  1. 调整方程格式,按照x-y-z-常数项的顺序排列
    {x+2y+z=7
    2x-y+3z=7
    3x+y+2z=18}组
# 2.将未知数的系数写下来,排列成一个矩阵a,如下
a=[[1,2,1],[2,-1,3],[3,1,2]]
a=np.array(a)
a
array([[ 1,  2,  1],
       [ 2, -1,  3],
       [ 3,  1,  2]])
# 3. 常数项构成一个一维数组(向量)
b=[7,7,18]
b=np.array(b)
b
array([ 7,  7, 18])
# 4.使用linalg.solve方法解方程,参数a指的是系数矩阵,参数b指的是常数项矩阵
x=np.linalg.solve(a,b)
x
array([ 7.,  1., -2.])
# 使用点乘的方法验证解是否正确,系数乘以未知数可以得到常数项。
np.dot(a,x)
array([ 7.,  7., 18.])

总结

这两篇博客主要是对python矩阵的了解。
参考文档
添加链接描述

标签:00,linalg,pythonMatrix2,矩阵,np,array,方阵
来源: https://blog.csdn.net/li_de_kun/article/details/115444657