Sympy:有没有办法将 collect() 函数应用于指数?
Sympy: Is there a way to apply the collect() function to exponents?
我有以下等式:
$$ f(x,y) = x^{-a} \cdot x^{-b} \cdot y^{a} \cdot y^{-b} \cdot z^{-a} $$
我想表达如下:
$$ f(x,y) = \left( \frac{x}{yz}\right)^{a} \cdot \left( \frac{x}{y} \right)^{b} $$
为此,我尝试了 collect() 函数和 powsimp() 函数等,但无法获得所需的结果。
是否可以如我所愿?
这是我的代码:
a,b = symbols('a,b', constant = True, positive=True, real=True)
x,y,z = symbols('x,y,z', positive=True, real=True)
eq = x**a * x**b * y**-a * y**-b * z**-a
collect(eq,a, exact = True)
#powsimp(eq)
Returns:
$$ x^{a+b}y^{-a-b}z^{-a} $$
您可以使用 powsimp
的 combine='base'
参数来做到这一点:
In [11]: eq
Out[11]:
a b -a -b -a
x ⋅x ⋅y ⋅y ⋅z
In [12]: powsimp(eq)
Out[12]:
a + b
-a ⎛x⎞
z ⋅⎜─⎟
⎝y⎠
In [13]: powsimp(eq, combine='base')
Out[13]:
b a
⎛x⎞ ⎛ x ⎞
⎜─⎟ ⋅⎜───⎟
⎝y⎠ ⎝y⋅z⎠
In [14]: powsimp(eq, combine='exp')
Out[14]:
a + b -a - b -a
x ⋅y ⋅z
https://docs.sympy.org/latest/modules/simplify/simplify.html#powsimp
我有以下等式:
$$ f(x,y) = x^{-a} \cdot x^{-b} \cdot y^{a} \cdot y^{-b} \cdot z^{-a} $$
我想表达如下:
$$ f(x,y) = \left( \frac{x}{yz}\right)^{a} \cdot \left( \frac{x}{y} \right)^{b} $$
为此,我尝试了 collect() 函数和 powsimp() 函数等,但无法获得所需的结果。 是否可以如我所愿?
这是我的代码:
a,b = symbols('a,b', constant = True, positive=True, real=True)
x,y,z = symbols('x,y,z', positive=True, real=True)
eq = x**a * x**b * y**-a * y**-b * z**-a
collect(eq,a, exact = True)
#powsimp(eq)
Returns:
$$ x^{a+b}y^{-a-b}z^{-a} $$
您可以使用 powsimp
的 combine='base'
参数来做到这一点:
In [11]: eq
Out[11]:
a b -a -b -a
x ⋅x ⋅y ⋅y ⋅z
In [12]: powsimp(eq)
Out[12]:
a + b
-a ⎛x⎞
z ⋅⎜─⎟
⎝y⎠
In [13]: powsimp(eq, combine='base')
Out[13]:
b a
⎛x⎞ ⎛ x ⎞
⎜─⎟ ⋅⎜───⎟
⎝y⎠ ⎝y⋅z⎠
In [14]: powsimp(eq, combine='exp')
Out[14]:
a + b -a - b -a
x ⋅y ⋅z
https://docs.sympy.org/latest/modules/simplify/simplify.html#powsimp