在sympy

时间:2018-04-17 19:53:13

标签: python sympy

我在制定限制时遇到了SymPy的问题,该限制必须回答"不存在"正在回归无限的价值。代码部分是这样的:

x = Symbol ('x')
a = Limit ((5-x) / (x-2), x, 2, "+"). doit ()
print (a)
oo
b = Limit ((5-x) / (x-2), x, 2, "-"). doit ()
print (b)
-oo
c = Limit ((5-x) / (x-2), x, 2) .doit ()
print (c)
oo 

以下是调查问题,检查应该留下一条消息,因为限制不存在或返回任何等于0的值。

1 个答案:

答案 0 :(得分:0)

默认情况下,Limit ((5-x) / (x-2), x, 2)表示右侧的单边限制,因此c将始终与示例中的a相同。

在GitHub上的当前开发版本中,可以传递"+-"作为方向,如果它们不相同,它将计算两个限制并引发ValueError:

>>> limit((5-x) / (x-2), x, 2, "+-")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ubuntu/sympy/sympy/series/limits.py", line 66, in limit
    % (llim, rlim))
ValueError: The limit does not exist since left hand limit = -oo and right hand limit = oo

但你可能只想要一个像

这样的条件
if a != b: 
    print("One-sided limits are different")
elif a.is_infinite:
    print("Infinite limit")
# and so on