在制定一个限制时,我一直对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 下面是所调查的问题,由于限制不存在,所以check应该留下一条消息,或者返回任何等于0的值。
发布于 2018-04-17 21:35:38
默认情况下,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 onhttps://stackoverflow.com/questions/49886409
复制相似问题