我想求解 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,是一个非自由变量。