极限不评估幂函数

Limit does not evaluate power function

我正在尝试使用 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)

然后我得到零。

一般来说,断言限制为零是不正确的。考虑 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