实验七:py矩阵基本运算

本博文源于线性代数基础,旨在用python进行学习。学习用python矩阵乘积、矩阵的秩、矩阵的逆、矩阵的转置、矩阵的化简,求解线性方程组。

例题1:已知A,B矩阵(如下图),求:

在这里插入图片描述

  1. 2A-3B
  2. B的秩
  3. A的逆
  4. A的转置
  5. AB
  6. A的行简化阶梯形矩阵
>>> from sympy import *
>>> init_printing(use_unicode=True)
>>> A = Matrix([[3,-1,2],[1,5,7],[5,4,-3]])
>>> A
⎡3  -1  2 ⎤
⎢         ⎥
⎢1  5   7 ⎥
⎢         ⎥
⎣5  4   -3>>> B = Matrix([[7,5,-4],[1,1,9],[3,-2,1]])
>>> B
⎡7  5   -4⎤
⎢         ⎥
⎢1  1   9 ⎥
⎢         ⎥
⎣3  -2  1>>> 2*A-3*B
⎡-15  -17  16 ⎤
⎢             ⎥
⎢-1    7   -13⎥
⎢             ⎥
⎣ 1   14   -9>>> B.rank()
3
>>> A.inv().evalf(4)0.2057   -0.02392  0.08134 ⎤
⎢                           ⎥
⎢-0.1818  0.09091   0.09091 ⎥
⎢                           ⎥
⎣0.1005   0.08134   -0.07656>>> A.T
⎡3   1  5 ⎤
⎢         ⎥
⎢-1  5  4 ⎥
⎢         ⎥
⎣2   7  -3>>> A*B
⎡26  10  -19⎤
⎢           ⎥
⎢33  -4  48 ⎥
⎢           ⎥
⎣30  35  13>>> A.rref()[0]1  0  0⎤
⎢       ⎥
⎢0  1  0⎥
⎢       ⎥
⎣0  0  1>>> A
⎡3  -1  2 ⎤
⎢         ⎥
⎢1  5   7 ⎥
⎢         ⎥
⎣5  4   -3>>> B
⎡7  5   -4⎤
⎢         ⎥
⎢1  1   9 ⎥
⎢         ⎥
⎣3  -2  1>>>

例题2 解出下式的X

[ 1 2 3 2 2 1 3 4 3 ] X = [ 2 5 3 1 4 3 ] \left[ \begin{array}{l} 1 & 2 & 3 \\ 2 & 2 & 1 \\ 3 & 4 & 3 \end{array} \right]X=\left[ \begin{array}{l} 2 & 5 \\ 3 & 1 \\ 4 & 3 \\ \end{array} \right] 123224313X=234513
利用X= A − 1 B A^{-1}B A1B即可

>>> from sympy import *
>>> init_printing(use_unicode=True)
>>> A = Matrix([[1,2,3],[2,2,1],[3,4,3]])
>>> print(A.rank()) # 先判断矩阵A是否满秩,从而确定矩阵A是否可逆
3
>>> B = Matrix([[2,5],[3,1],[4,3]])
>>> print(A.inv()*B)
Matrix([[3, 2], [-2, -3], [1, 3]])
>>>
>>>
>>> A.inv()*B
⎡3   2 ⎤
⎢      ⎥
⎢-2  -3⎥
⎢      ⎥
⎣1   3>>>

例题3.求出AXB=C中的X

A = [ 1 2 3 2 2 1 3 4 3 ] , B = [ 2 1 5 3 ] , C = [ 1 3 2 0 3 1 ] A=\left[ \begin{array}{l} 1 & 2 & 3 \\ 2 & 2 & 1 \\ 3 & 4 & 3 \end{array} \right],B=\left[ \begin{array}{l} 2 & 1 \\ 5 & 3 \\ \end{array} \right],C=\left[ \begin{array}{l} 1 & 3 \\ 2 & 0 \\ 3 & 1 \\ \end{array} \right] A=123224313,B=[2513],C=123301

from sympy import *
init_printing(use_unicode=True)
A = Matrix([[1,2,3],[2,2,1],[3,4,3]])
print(A.rank())
B = Matrix([[2,1],[5,3]])
C = Matrix([[1,3],[2,0],[3,1]])
print(B.rank())
print(A.inv()*C*B.inv())

在这里插入图片描述

おすすめ

転載: blog.csdn.net/m0_37149062/article/details/120969682