Python – 解决多变量的线性方程
Prerequisite: Sympy.solve()
在这篇文章中,我们将讨论如何解决有一个以上变量的线性方程。例如,假设我们有两个变量的方程。方程如下。
x+y =1
x-y =1
当我们解决这个方程时,我们得到x=1,y=0作为其中一个解决方案。在Python中,我们使用Eq()方法从表达式中创建一个方程。
语法 : Eq(expression,RHS value)
例如,如果我们有表达式为x+y=1。它可以被写成Eq(x+y,1)
用两个变量解方程
使用Eq()方法构造方程。为了解决这些方程,将它们作为参数传给solve()函数。
示例 :
# importing library sympy
from sympy import symbols, Eq, solve
# defining symbols used in equations
# or unknown variables
x, y = symbols('x,y')
# defining equations
eq1 = Eq((x+y), 1)
print("Equation 1:")
print(eq1)
eq2 = Eq((x-y), 1)
print("Equation 2")
print(eq2)
# solving the equation
print("Values of 2 unknown variable are as follows:")
print(solve((eq1, eq2), (x, y)))
输出:
Equation 1:
Eq(x + y, 1)
Equation 2
Eq(x - y, 1)
Values of 2 unknown variable are as follows:
{x: 1, y: 0}
解决有三个变量的方程
使用Eq()构建以下方程,然后求解,找出未知变量。
x +y+z =1
x+y+2z=1
示例:
# importing library sympy
from sympy import symbols, Eq, solve
# defining symbols used in equations
# or unknown variables
x, y, z = symbols('x,y,z')
# defining equations
eq1 = Eq((x+y+z), 1)
print("Equation 1:")
print(eq1)
eq2 = Eq((x-y+2*z), 1)
print("Equation 2")
print(eq2)
eq3 = Eq((2*x-y+2*z), 1)
print("Equation 3")
# solving the equation and printing the
# value of unknown variables
print("Values of 3 unknown variable are as follows:")
print(solve((eq1, eq2, eq3), (x, y, z)))
输出:
Equation 1:
Eq(x + y + z, 1)
Equation 2
Eq(x - y + 2*z, 1)
Equation 3
Values of 3 unknown variable are as follows:
{x: 0, y: 1/3, z: 2/3}