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()方法解多元一次方程
- 调整方程格式,按照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