sympy hangs when trying to solve a simple algebraic equation

二次信任 提交于 2019-12-31 02:14:15

问题


I recently reinstalled my python environment and a code that used to work very quickly now creeps at best (usually just hangs taking up more and more memory).

The point at which the code hangs is:

solve(exp(-alpha * x**2) - 0.01, alpha)

I've been able to reproduce this problem with a fresh IPython 0.13.1 session:

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)

this works for integers but also quite slow. In the original code I looped over this looking for hundreds of different alpha's for different values of x (other than 14.7296138519) and it didn't take more than a second.

any thoughts?


回答1:


The rational=False flag was introduced for such cases as this.

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

(The explanation is given in the issue cited above.)




回答2:


Rolling back from version 0.7.2 to 0.7.1 solved this problem.

easy_install sympy==0.7.1

I've reported this as a bug to sympy's google code.



来源:https://stackoverflow.com/questions/17087629/sympy-hangs-when-trying-to-solve-a-simple-algebraic-equation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!