我最近重新安装了我的python环境,而且过去工作得很快的代码现在最好爬行(通常只是挂起占用越来越多的内存)。
代码挂起的地方是:
solve(exp(-alpha * x**2) - 0.01, alpha)
我已经能够通过新的IPython 0.13.1会话重现这个问题:
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)
这适用于整数,但也很慢。在原始代码中,我循环查找了不同的x值(不是14.7296138519)的数百个不同的alpha,并且它不需要超过一秒。
有什么想法吗?
答案 0 :(得分:4)
对于这种情况,引入了rational = False标志。
>>> q=14.7296138519
>>> solve(exp(-alpha * q**2) - 0.01, alpha, rational=False)
[0.0212257459123917]
(在上面引用的问题中给出了解释。)
答案 1 :(得分:2)
从版本0.7.2回滚到0.7.1解决了这个问题。
easy_install sympy==0.7.1
我已经将此报告为对于与用户同意的谷歌代码的错误。