为什么在下面的代码中myLe和myEq是不同的?打印出来时,它们看起来是一样的。
我需要myLe-myEq为零。
from sympy import *
var('x y')
myLe=Line(Point(2,3), Point(3,5)).equation()
myEq=-2*x + y + 1
print("#",type(x-x ),x-x )
print("#",type(myLe),myLe)
print("#",type(myEq),myEq)
print("#",type(myLe-myEq),myLe-myEq)
# <class 'sympy.core.numbers.Zero'> 0
# <class 'sympy.core.add.Add'> -2*x + y + 1
# <class 'sympy.core.add.Add'> -2*x + y + 1
# <class 'sympy.core.add.Add'> -2*x + 2*x - y + y发布于 2021-11-19 15:07:14
当您编写myLe=Line(Point(2,3), Point(3,5)).equation()时,sympy使用的内部变量在外部具有名称x和y,但与您之前声明的内部变量不同。
您可以通过编写Line(Point(2, 3), Point(3, 5)).equation(x=x, y=y)来强制渐近使用相同的内部变量。
from sympy import *
var('x y')
myLe = Line(Point(2, 3), Point(3, 5)).equation(x=x, y=y)
myEq = -2 * x + y + 1
print("#", type(x - x), x - x)
print("#", type(myLe), myLe)
print("#", type(myEq), myEq)
print("#", type((myLe - myEq)), myLe - myEq)
# <class 'sympy.core.numbers.Zero'> 0
# <class 'sympy.core.add.Add'> -2*x + y + 1
# <class 'sympy.core.add.Add'> -2*x + y + 1
# <class 'sympy.core.numbers.Zero'> 0根据您的应用程序,您甚至可能希望对不同的方程使用不同的名称。
var('x1 y1')
myLe = Line(Point(2, 3), Point(3, 5)).equation(x=x1, y=y1)
print("#", myLe)
# -2*x1 + y1 + 1https://stackoverflow.com/questions/70033385
复制相似问题