1.矩阵的转置
numpy用来表示矩阵的2维数组的array对象的T属性,返回矩阵的转置。
例1 设
A
=
(
2
0
1
1
3
2
)
\boldsymbol{A}=\begin{pmatrix}2&0&1\\1&3&2\end{pmatrix}
A=(210312),
B
=
(
1
7
−
1
4
2
3
2
0
1
)
\boldsymbol{B}=\begin{pmatrix}1&7&-1\\4&2&3\\2&0&1\end{pmatrix}
B=
142720−131
,在Python中验证
(
A
B
)
T
=
B
T
A
T
(\boldsymbol{AB})^{\text{T}}=\boldsymbol{B}^\text{T}\boldsymbol{A}^\text{T}
(AB)T=BTAT。
import numpy as np #导入numpy
A=np.array([[2,0,-1], #矩阵A
[1,3,2]])
B=np.array([[1,7,-1], #矩阵B
[4,2,3],
[2,0,1]])
print((np.matmul(A,B)).T) #积的转置
print((np.matmul(B.T, A.T)))#转置的积
程序中第2~3行和第4~6行分别设置矩阵 A \boldsymbol{A} A和 B \boldsymbol{B} B。第7行调用numpy的函数matmal(A,B)计算积 A B \boldsymbol{AB} AB,然后访问其转置属性matmal(A,B).T输出 ( A B ) T (\boldsymbol{AB})^\text{T} (AB)T。第8行调用函数matmul(B.T,A.T)计算 B T A T \boldsymbol{B}^\text{T}\boldsymbol{A}^\text{T} BTAT。运行程序,输出
[[ 0 17]
[14 13]
[-3 10]]
[[ 0 17]
[14 13]
[-3 10]]
2. 方阵的行列式
numpy包中用于处理线性代数的linalg模块提供的det函数可用来计算方阵的行列式。
例2:在Python中验算矩阵
A
=
(
3
1
−
1
2
−
5
1
3
−
4
2
0
1
−
1
1
−
5
3
−
3
)
\boldsymbol{A}=\begin{pmatrix}3&1&-1&2\\-5&1&3&-4\\2&0&1&-1\\1&-5&3&-3\end{pmatrix}
A=
3−521110−5−13132−4−1−3
的行列式
det
A
\det\boldsymbol{A}
detA。
import numpy as np #导入numpy
A=np.array([[3,1,-1,2], #矩阵A
[-5,1,3,-4],
[2,0,1,-1],
[1,-5,3,-3]])
print(np.linalg.det(A)) #A的行列式
运行程序,输出
40.0
即 det ( 3 1 − 1 2 − 5 1 3 − 4 2 0 1 − 1 1 − 5 3 − 3 ) = 40 \det\begin{pmatrix}3&1&-1&2\\-5&1&3&-4\\2&0&1&-1\\1&-5&3&-3\end{pmatrix}=40 det 3−521110−5−13132−4−1−3 =40。
3. 方阵的逆阵
numpy.linalg的inv函数计算可逆方阵的逆矩阵。
例3 设矩阵
A
=
(
1
2
3
2
2
1
3
4
3
)
\boldsymbol{A}=\begin{pmatrix}1&2&3\\2&2&1\\3&4&3\end{pmatrix}
A=
123224313
,计算逆矩阵
A
−
1
\boldsymbol{A}^{-1}
A−1。
import numpy as np #导入numpy
from utility import adjointMatrix #导入adjointMatrix
from fractions import Fraction as F
np.set_printoptions(formatter={'all':lambda x:
str(F(x).limit_denominator())})
A=np.array([[1,2,3], #设置矩阵A
[2,2,1],
[3,4,3]])
print('%.1f'%np.linalg.det(A)) #输出A的行列式
print(np.linalg.inv(A)) #输出A的逆阵
注意程序中的第8行,调用numpy.linalg的inv函数,计算A的逆矩阵。运行程序输出
2.0
[[ 1 3 -2]
[-3/2 -3 5/2]
[ 1 1 -1]]
由于
det
A
=
2
\det\boldsymbol{A}=2
detA=2,故
A
\boldsymbol{A}
A可逆,
A
=
(
1
3
−
2
−
3
2
−
3
5
2
1
1
−
1
)
\boldsymbol{A}=\begin{pmatrix}1&3&-2\\-\frac{3}{2}&-3&\frac{5}{2}\\1&1&-1\end{pmatrix}
A=
1−2313−31−225−1
。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。