Python求解线性方程组子集
所以我知道sympy和numpy的线性代数解算器,但我想做的是不同的。我没有形成可解矩阵的方程,所以我可以用这些库来求解,所以我尝试通过组合2个或更多的方程来求解单个变量。例如: A+B+C=2Python求解线性方程组子集,python,python-3.x,numpy,differential-equations,Python,Python 3.x,Numpy,Differential Equations,所以我知道sympy和numpy的线性代数解算器,但我想做的是不同的。我没有形成可解矩阵的方程,所以我可以用这些库来求解,所以我尝试通过组合2个或更多的方程来求解单个变量。例如: A+B+C=2 B+C=1 通过组合这些方程,我们可以得到A+1=2或A=1 既然我不能创建一个矩阵并求解它,那么我如何在python中实现类似的东西呢?最终目标是以一个等于0或1的变量结束,如果这不可能,那么通过组合方程,它可以得到最短的形式。加起来,变量系数总是1,所以换句话说,永远不会有像2A+B=3这样的东西
B+C=1 通过组合这些方程,我们可以得到A+1=2或A=1 既然我不能创建一个矩阵并求解它,那么我如何在python中实现类似的东西呢?最终目标是以一个等于0或1的变量结束,如果这不可能,那么通过组合方程,它可以得到最短的形式。加起来,变量系数总是1,所以换句话说,永远不会有像2A+B=3这样的东西
from sympy import *
a, b, c = symbols('a, b, c')
f1 = a+b+c
f2 = b+c
result = solve([f1-2, f2-1], (a, b, c))
输出:
输出:
你最好在数学堆栈交换中问这个问题。本质上,听起来您需要消除“正确”变量(在您的示例中表示为D=B+C)以获得所需的表达式。这是一般线性代数,与python无关。在一般情况下,可以使用Colspace上的Gram Schmidt来查找消去法。您最好在数学堆栈交换中询问它。本质上,听起来您需要消除“正确”变量(在您的示例中表示为D=B+C)以获得所需的表达式。这是一般线性代数,与python无关。在一般情况下,可以使用colspace上的Gram Schmidt找到消去法
{b: 1 - c, a: 1}