限制不评估电源功能

时间:2017-01-27 16:49:02

标签: limit sympy

我试图使用sympy采取相对简单的限制:

from sympy import *
f,k,b = symbols('f k b')
test = f**b - k**b
limit(test,k,f)

我期待0,但我得到了:

>>> limit(test,k,f)
f**b - exp(b*log(f))

数学上这是正确的(和零),但为什么不评估为零?

请注意我是否定义:

from sympy import *
f,k,b = symbols('f k b')
test = exp(b*log(f)) - exp(b*log(k))
limit(test,k,f)
然后我确实得到零。

1 个答案:

答案 0 :(得分:2)

断言限制一般为零是不正确的。在Python控制台中考虑以下计算:

>>> (-1)**(1/2)
(6.123233995736766e-17+1j)
>>> (-1 - 1e-15j)**(1/2)
(5.053215498074303e-16-1j)

由于沿负实轴的复杂平方根的分支切割,基极的两个非常接近的值产生完全不同的结果(差异大约为2j)。

如果我们坚持积极的基础和真正的指数,那么这个极限确实为零

from sympy import *
k = symbols('k')
f = symbols('f', positive=True)
b = symbols('b', real=True)
test = f**b - k**b
limit(test,k,f)   # returns 0