因此,我直接尝试从 sympy 文档中获取示例,但出现了一个奇怪的错误。我正在使用 python 3.2 和 sympy 0.7.3。我一直在 ipython 笔记本上工作,尽管我认为这不会有什么不同。错误是,每当我创建“x”符号并尝试集成 math.cos(x) 时,我都会收到一条错误消息“无法将表达式转换为浮点数”。
这是一个代码示例。这是取自sympy 文档 http://docs.sympy.org/dev/modules/integrals/integrals.html.
import sympy
import math
x = sympy.Symbol('x')
sympy.integrate(x**2 * math.exp(x) * math.cos(x), x)
结果的错误消息是:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-123-84e55454fb60> in <module>()
----> 1 sympy.integrate(x**2 * math.exp(x) * math.cos(x), x)
/usr/local/lib/python3.2/dist-packages/sympy/core/expr.py in __float__(self)
242 if result.is_number and result.as_real_imag()[1]:
243 raise TypeError("can't convert complex to float")
--> 244 raise TypeError("can't convert expression to float")
245
246 def __complex__(self):
TypeError: can't convert expression to float
任何建议,将不胜感激。
您不能混合由创建的符号数学表达式sympy
具有仅计算值的普通函数的库(例如来自math
图书馆。如果您要创建符号表达式,则应始终使用sympy
功能 (sympy.exp
, sympy.cos
, sympy.log
, etc.):
x = sympy.Symbol('x')
sympy.integrate(x**2 * sympy.exp(x) * sympy.cos(x), x)
运营商如*
, +
, -
... 中的对象超载sympy
库,因此您可以在表达式中使用它们,但不能使用直接计算值的普通函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)