Sympy:powsimp 不适用于一个简单的例子

Sympy : powsimp does not work on a simple example

在尝试解决我的问题 () 时,我发现了一个 powsimp 不起作用的简单示例。

这样的话,幂简化就完成了

x,y,n=sp.symbols("x y n",positive=True,real=True)
expr=sp.Pow(x,n)*sp.Pow(y,-n)
expr.powsimp()

但在这种情况下不是:

expr=sp.Pow(x,n+1)*sp.Pow(y,-n-1)
expr.powsimp()

当指数是一个表达式(当然是实数和正数)时,是否可以进行幂简化?

powsimp 应该寻找这种情况,但在那之前,将指数转换为单个变量(并且 subs 将为您计算否定情况的关系):

>>> expr
x**(n + 1)*y**(-n - 1)
>>> powsimp(expr.subs(n + 1, var('z',positive=1))).subs(z, n + 1)
(x/y)**(n + 1)