Sympy hängt beim Versuch, eine einfache algebraische Gleichung zu lösen

Ich habe vor kurzem neu installiert meine Python-Umgebung und ein Code, der verwendet, um sehr schnell arbeiten jetzt kriecht am besten (in der Regel nur hängt Aufnahme mehr und mehr Speicher).

Der Punkt, an dem der Code hängt, ist:

  • Deal mit Überlauf in exp mit numpy
  • Überlauf in exp, Python
  • solve(exp(-alpha * x**2) - 0.01, alpha) 

    Ich habe dieses Problem mit einem neuen IPython 0.13.1 Session reproduzieren können:

     In [1]: from sympy import solve, Symbol, exp In [2]: x = 14.7296138519 In [3]: alpha = Symbol('alpha', real=True) In [4]: solve(exp(-alpha * x**2) - 0.01, alpha) 

    Das funktioniert für ganzzahlen aber auch recht langsam In dem ursprünglichen Code schlug ich über diese Suche nach Hunderten von verschiedenen Alpha's für verschiedene Werte von x (anders als 14.7296138519) und es dauerte nicht mehr als eine Sekunde.

    Irgendwelche gedanken

  • Was ist die Bedeutung eines Einzel- und eines Doppel-Unterstriches vor einem Objektnamen?
  • Python "privater" Name mangling und Instanz vs Klassenattribute
  • 2 Solutions collect form web for “Sympy hängt beim Versuch, eine einfache algebraische Gleichung zu lösen”

    Die rationale = Falsche Flagge wurde für solche Fälle eingeführt.

     >>> q=14.7296138519 >>> solve(exp(-alpha * q**2) - 0.01, alpha, rational=False) [0.0212257459123917] 

    (Die Erläuterung ist in der oben genannten Frage gegeben.)

    Zurückrollen von Version 0.7.2 auf 0.7.1 löste dieses Problem.

     easy_install sympy==0.7.1 

    Ich habe dies als Bug gemeldet, um den Google-Code zu sympysieren.

    Python ist die beste Programmiersprache der Welt.