5.1 矩阵与多项式

5.1.1 矩阵运算

SymPy中的矩阵运算重载了Python标准运算符,其含义与一般数学含义相同,具体运算结果,请见下例:

例:设A=(1324)A= \begin{pmatrix} 1 & 3 \\ 2 & 4 \end{pmatrix} ,$$B= \begin{pmatrix} -2 & 0 & 4 \ 1 & 3 & -1 \ 1 & 3 & -1 \end{pmatrix}

在本例中,我们使用矩阵的gauss_jordan_solve()方法,解线性方程组。也即使用gass-jordan消元法来求解线性方程组。

gauss_jordan_solve(B, freevar=False)方法的使用方法如下:

B是Ax=B等式右侧的矩阵。feevar是一个list对象,如果系统是欠定的(例如A的列数多于行数),就有可能用自由变量的任意值表示无限解。如果将freeva设置为true,那么解中的自由变量(列矩阵)的索引将由freevar返回 可能有0个、1个或无穷多个解。如果存在一个解决方案,它将返回。如果存在无穷多个解,它将参数化返回。如果没有解决方案,它将抛出ValueError。gauss_jordan_solve返回两个矩阵,其中第一个矩阵为满足的矩阵,第二个矩阵当且仅当系统为欠定(A的列数多于行数)时,产生可以用任意参数得到的无限解时返回,这些任意参数作为参数矩阵返回。

>   []:L1=[2, -1, -1, 1]

>   L2=[1, 1, -2, 1]

>   L3=[4, -6, 2, -2]

>   L4=[3, 6, -9, 7]

>   B=[2, 4, 4, 9]

>   A.gauss\_jordan_solve(Matrix(B),freevar=False)

例:设矩阵A=(2153)A= \begin{pmatrix} 2 & 1 \\ 5 & 3 \end{pmatrix}B=(1320)B= \begin{pmatrix} 1 & 3 \\ 2 & 0 \end{pmatrix} ,求矩阵方程XA=BXA=B的解XX.

[]:A=Matrix([[2, 1], [5, 3]])

B=Matrix([[1, 3], [2, 0]])

X=B\*A\*\*(-1)

X

5.1.2 行列式运算

矩阵的det()方法可以用来求行列式值。

例:计算$$ D=\left| \begin{array}{cccc} 1 & 1 & 1 & 1 \ 2 & 1 & 1 & -3 \ 1 & 2 & 2 & 5 \ 4 & 3 & 2 & 1 \end{array} \right|

Last updated