Python 使用SymPy';s的新假设

Python 使用SymPy';s的新假设,python,sympy,Python,Sympy,我对SymPy目前的假设有一些疑问。 看这条线。使用假定模块的提示之一(参考) 我尝试执行以下计算$\lim{x\to\infty}\frac{\ln{x}}{x^k}$。我想评估$k>0$的此限制 所以我试了一下: with assuming(k>0): limit((log(x))/(x**k),x,oo) eval(limit((log(x))/(x**k),x,oo),k>0) 我也试过: with assuming(k>0): limit(

我对SymPy目前的假设有一些疑问。 看这条线。使用假定模块的提示之一(参考)

我尝试执行以下计算$\lim{x\to\infty}\frac{\ln{x}}{x^k}$。我想评估$k>0$的此限制

所以我试了一下:

 with assuming(k>0):
     limit((log(x))/(x**k),x,oo)
eval(limit((log(x))/(x**k),x,oo),k>0)
我也试过:

 with assuming(k>0):
     limit((log(x))/(x**k),x,oo)
eval(limit((log(x))/(x**k),x,oo),k>0)
但不管怎样,我得到了这个错误:

NotImplementedError: Result depends on the sign of -sign(k)
TypeError: 'module' object is not callable

with assume(k>0):
    limit((log(x))/(x**k),x,oo)
我得到这个错误:

NotImplementedError: Result depends on the sign of -sign(k)
TypeError: 'module' object is not callable

你知道我做错了什么吗?

这似乎行得通。你链接到的第一个答案是“现在的SymPy假设系统有点混乱”。我不确定从那以后情况是否有所改变

k = Symbol('k', positive=True)
print limit((log(x))/(x**k),x,oo)

目前有两种假设系统。这使用了旧的假设系统,该系统更为稳健,因此更为常用。我们希望在1.0发布之前推出新的假设。从某种意义上说,新的假设(
假设
询问
Q
优化
)没有在任何地方使用,这就是为什么它不起作用的原因。嗯,这一点,它还没有认识到不平等。您必须使用
Q.positive(k)
而不是
k>0
eval
是Python内置的。它永远不会做你在这里期待的事情。可能起作用的函数是
refine
(它现在不起作用,但最终会起作用)。