使用 Sympy 求解齐次线性系统

Solving homogeneous linear systems using Sympy

我正在自学线性代数,并尝试学习相应的 Numpy 和 Sympy 代码。

我的书中给出了以下矩阵:

example1 = Matrix([[3,5,-4,0],[-3,-2,4,0],[6,1,-8,0]])

根据说明确定是否存在非平凡解。最终的解决方案是 x = x3 * Matrix([[4],[0],[1]])。 (使用Jupyter的数学模式,我用下面的表示解决方案:)

$$\pmb{x} = 
\begin{bmatrix}x_1\x_2\x_3\end{bmatrix} = 
\begin{bmatrix}\frac{4}{3}x_3\0\x_3\end{bmatrix} = 
x_3\begin{bmatrix}\frac{4}{3}\0\1\end{bmatrix} \
= x_3\pmb{v} \text{, where }\pmb{v} = \begin{bmatrix}\frac{4}{3}\0\1\end{bmatrix}$$

我现在如何在 Sympy 中解决这个问题?我查看了文档,但什么也没看到,我有点不知所措。我知道自由变量往往会引发错误。考虑到非平凡的解决方案依赖于自由变量,是否有一种方法可以使用 Sympy 确定非平凡的解决方案和相应的通用解决方案?还是 np.linalg 通常更适合此类问题?

这是一个线性系统所以

>>> linsolve(Matrix([[3,5,-4,0],[-3,-2,4,0],[6,1,-8,0]]))
FiniteSet((4*tau0/3, 0, tau0))

tau0 是您称为 x3 的自由参数。