使用 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
的自由参数。
我正在自学线性代数,并尝试学习相应的 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
的自由参数。