python - 余弦函数的python sympy计算积分错误

标签 python math python-3.x ipython-notebook sympy

所以我直接从 sympy 文档中尝试了一个例子,但我收到了一个奇怪的错误。我正在使用带有 sympy 0.7.3 的 python 3.2。我一直在使用 ipython notebook,但我认为这不会有什么不同。错误是每当我创建一个“x”符号并尝试对 math.cos(x) 求积分时,我都会收到一条错误消息“无法将表达式转换为 float 。”

这是一个代码示例。这取自 sympy documentation .

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.expsympy.cossympy.log等):

x = sympy.Symbol('x')
sympy.integrate(x**2 * sympy.exp(x) * sympy.cos(x), x)

*+-...等运算符被sympy库中的对象重载因此您可以在表达式中使用它们,但不能使用直接计算值的普通函数。

关于python - 余弦函数的python sympy计算积分错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18267470/

相关文章:

c - 如何旋转和缩放单应性

python - 使用 Pygame 加载更新的图像

python - 我们可以根据特定单词过滤数据吗?

python - 在 Windows 7 上安装 flask ?

python - 排序实体和过滤 ListProperty 而不会导致索引 explode

android - 如何使用等同于特定 dp 的 rQuadTo 创建圆角路径?

algorithm - 堆叠矩形以占用尽可能少的空间

performance - 为什么python+sqlite3特别慢?

Python 3.4 : creating an asterisk diamond

python - TF keras API with TF数据集问题-steps_per_epoch参数问题