下午好, 我的代码有问题。我将要展示的代码是实际代码的简化版本,但这个想法是一样的。
Var1 = Symbol('Var1')
Var2 = Symbol('Var2')
A = 20
B = 30
Var1 = solve(12+A*B+Var1, Var1)
Var2 = solve(Var1+A+B+Var2, Var2)
print(Var1,Var2)
问题是,例如print(Var1)给我回到了方程的数值解-612,但是当涉及到打印(Var2)时它显示-Var1 -50而不是认识到Var1变成了一个数字。
这是我导入的库:
from sympy.solvers import solve
from sympy import Symbol
任何想法如何让它理解Var1成为一个数字? 我确实尝试分配一个新变量然后在Var2方程中使用它,但它给了我一个错误。
答案 0 :(得分:1)
solve
返回(可能是多个)解决方案的列表。 sol[0]
将为您提供第一个(仅在您的情况下)解决方案。然后你可以subs
在你的第二个等式中使用这个解决方案:
from sympy.solvers import solve
from sympy import Symbol
Var1 = Symbol('Var1')
Var2 = Symbol('Var2')
A = 20
B = 30
sol1 = solve(12+A*B+Var1, Var1) # [-612]
eqn2 = (Var1+A+B+Var2).subs({'Var1': sol1[0]}) # Var2 - 562
sol2 = solve(eqn2, Var2) # [562]
print(sol1,sol2) # [-612] [562]
print(sol1[0],sol2[0]) # -612 562