如何组合指数?(x**a)**b=>x**(a*b)?

2024-06-14 19:07:18 发布

您现在位置:Python中文网/ 问答频道 /正文

如何简化共形方程中的指数

from sympy import symbols 
a,b,c,d,e,f=symbols('abcdef')
j=(a**b**5)**(b**10)
print j 
(a**(b**5))**(b**10) #ans even after using expand simplify 
# desired output 
a**(b**15)

如果sympy不可能,我应该在python中导入哪个模块?在

编辑 即使我把“b”定义为真的,还有其他所有的符号

b=符号('b',real=真) 没有得到简化指数 只有当指数是常数时,它才会简化

^{pr2}$

Tags: fromimport符号指数expandusingeven方程
3条回答

这可能与this bug有关。在

(xmn=xmn为真only if m, n are real。在

>>> import math
>>> x = math.e
>>> m = 2j*math.pi
>>> (x**m)**m      # (e^(2πi))^(2πi) = 1^(2πi) = 1
(1.0000000000000016+0j)
>>> x**(m*m)       # e^(2πi×2πi) = e^(-4π²) ≠ 1
(7.157165835186074e-18-0j)

AFAIK,sympy supports complex numbers,所以我认为除非你能证明b是真实的,否则不应该进行这种简化。在


编辑:如果x不是正的,它也是错误的。在

^{pr2}$

编辑(作者:gnibbler):这是应用Kenny限制的原始示例

>>> from sympy import symbols 
>>> a,b=symbols('ab', real=True, positive=True)
>>> j=(a**b**5)**(b**10)
>>> print j
a**(b**15)
a,b,c=symbols('abc',real=True,positive=True)
(a**b**5)**b**10
a**(b**15)#ans

相关问题 更多 >