Python 解超定线性方程组

Python 解超定线性方程组,python,sympy,equation-solving,Python,Sympy,Equation Solving,我知道Symphy能够解决超定线性方程组,但我遇到了以下问题: 让我们从一些有用的东西开始: 输出:{(A,B,C)} 现在有一个额外的等式: 输出:清空() 虽然显然还有一个解决方案,但已经没有任何输出了。例如,Wolfram Alpha仍将提供此解决方案: 输入: 1x+0y+0z=A, 0x+1y+0z=B, 0x+0y+1z=C, 2x+y=D 输出: D = 2 A + B, x = A, y = B, z = C 在这个例子中,很明显,对于x,y,z,不需要解最后一个方程,但

我知道Symphy能够解决超定线性方程组,但我遇到了以下问题:

让我们从一些有用的东西开始:

输出:{(A,B,C)}

现在有一个额外的等式:

输出:清空()

虽然显然还有一个解决方案,但已经没有任何输出了。例如,Wolfram Alpha仍将提供此解决方案:

输入:

1x+0y+0z=A, 0x+1y+0z=B, 0x+0y+1z=C, 2x+y=D
输出:

D = 2 A + B, x = A, y = B, z = C

在这个例子中,很明显,对于x,y,z,不需要解最后一个方程,但问题是我必须解数千个这样的系统,每个系统最多有14个变量,所以我不能手动检查哪些方程可以被删除。(在这个玩具示例中也不会那么明显)

似乎是个bug。该方法提高了
ValueError:线性系统没有解决方案
,它应该能够解决欠定和超定的系统(因此在实现或文档中可能存在错误)。为什么使用
linsolve
而不是
rref
1x+0y+0z=A, 0x+1y+0z=B, 0x+0y+1z=C, 2x+y=D
D = 2 A + B, x = A, y = B, z = C