用sympy求解指数方程?

时间:2016-04-26 13:18:11

标签: sympy

我想用sympy

解决以下简单的等式
2^(x-y)=1

其中x和y是+ ve整数

我的预期结果是

x=y

当我尝试使用sympy解决时

x = Symbol('x')
y = Symbol('y')
solve(2**(x-y)-1, x)

我得到以下结果

[log(2**y)/log(2)]

我必须遵循哪些额外步骤才能获得预期结果

1 个答案:

答案 0 :(得分:5)

由于对数和指数对于复数而言是棘手的,因此变量应该被声明为真实的。在复数中,2 ^(x-y)= 1 意味着x = y。

from sympy import *
x,y = symbols('x,y', real=True)
solve(2**(x-y)-1, x)[0]

结果:y

(相关函数:expand_log,虽然在此示例中不需要它。)