Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python求解线性方程组子集_Python_Python 3.x_Numpy_Differential Equations - Fatal编程技术网

Python求解线性方程组子集

Python求解线性方程组子集,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这样的东西

所以我知道sympy和numpy的线性代数解算器,但我想做的是不同的。我没有形成可解矩阵的方程,所以我可以用这些库来求解,所以我尝试通过组合2个或更多的方程来求解单个变量。例如:

A+B+C=2
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}