如何确定 sympy.linsolve 结果中的哪一个是自由变量



我想求解 n 维空间中 n 个给定点的线性方程,以获得超平面方程。

例如,在二维情况下,Ax + By + C = 0.

如果线性方程中有无限解,我怎么能得到一个解?

我已经尝试过scipy.linalg.solve()但它要求系数矩阵 A 是非奇异的。

我也试过sympy

A = Matrix([[0, 0, 1], [1, 1, 1]])
b = Matrix([0, 0])
linsolve((A, b), [x, y, z])

它把我送回了这个{(−y,y,0)}我必须解析结果以确定哪一个是自由变量,然后为其分配一个数字以获得解决方案。

有没有更方便的方法,因为我只想得到一个特定的解决方案?

在这里,很明显,你的方程有一个自由变量,这是你的第二个。因为第一个 (x( 由第二个变量 (y( 表示为负关系,所以第二个是"y"值,理论上可以是任何值,所以它是一个自由变量。你的第三个变量 z 是 0,是一个非自由变量。

相关内容

最新更新