猿问

尝试求解简单的代数方程时,sympy挂起

我最近重新安装了我的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值,并且花费不超过一秒钟。


有什么想法吗?


神不在的星期二
浏览 155回答 2
2回答

jeck猫

对于这种情况,引入了Rational = False标志。>>> q=14.7296138519>>> solve(exp(-alpha * q**2) - 0.01, alpha, rational=False)[0.0212257459123917](在上面引用的问题中给出了解释。)

慕村225694

从版本0.7.2回滚到0.7.1解决了此问题。easy_install sympy==0.7.1我已经将其报告为sympy的Google代码的错误。
随时随地看视频慕课网APP

相关分类

Python
我要回答