2016-04-26 8 views
2

mag ich folgende einfache Gleichung sympyLösen der Exponentialgleichung mit Sympy?

2^(x-y)=1 

wo x und y + ve ganze Zahlen

mein erwartetes Ergebnis ist

x=y 

mit lösen Wenn ich versuche, sympy

mit zu lösen
x = Symbol('x') 
y = Symbol('y') 
solve(2**(x-y)-1, x) 

Ich bekomme folgendes Ergebnis

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

Welche zusätzlichen Schritte muss ich folgendes zu erwarten Ergebnisse anzeigen

Antwort

4

Da Logarithmus und Exponenten für komplexe Zahlen heikel sind, sollten die Variablen in Echt deklariert werden. In komplexen Zahlen, 2^(x-y) = 1 bedeutet nicht implizieren, dass x = y.

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

Ergebnis: y

(Verwandte Funktion: expand_log, obwohl es in diesem Beispiel nicht benötigt wird.)