Python Sympy计算圆的区域积分时出错

时间:2014-09-14 11:04:25

标签: python integration typeerror sympy

我正在使用iSympy来计算圆形区域的积分,但继续得到" TypeError:符号布尔表达式没有真值。"

In [2]: x, y, r = symbols('x, y, r')

In [3]: integrate(sqrt(r**2 - x**2), (x, -r, r))

错误:

C:\Python27\lib\site-packages\sympy\core\relational.pyc in __nonzero__(self)
109
110     def __nonzero__(self):
--> 111         raise TypeError("symbolic boolean expression has no truth value.")
112
113     __bool__ = __nonzero__

TypeError: symbolic boolean expression has no truth value.

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

这是SymPy中的一个错误,将在下一个版本中修复。

答案 1 :(得分:0)

在最新版本的SymPy中,除非你使'r'变量为正

,否则你将无法获得综合结果
>>> var('r',positive=1)
r
>>> integrate(sqrt(r**2 - x**2), (x, -r, r))
pi*r**2/2

请注意,您也可以获得半圆的区域。与

比较
>>> Circle((x,y),r).area
pi*r**2