¿Cómo combinar exponentes?(x**a)**b => x**(a*b)?
Pregunta
cómo simplificar exponentes en ecuaciones en sympy
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)
y si no es posible con sympy ¿qué módulo debo importar en python?
editarincluso si defino 'b' como real y también todos los demás símbolos
b = símbolos ('b', real = true) no obtener exponentes simplificados, simplifica solo si los exponentes son constantes
a=symbols('a',real=True)
b=symbols('b',real=True)
(a**5)**10
a**50 #simplifies only if exp are numbers
(a**b**5)**b**10
(a**(b**5))**b**10 #no simplification
Solución
(Xmetro)norte =xMinnesota es verdad sólo si m, n son reales.
>>> 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)
HASTA DONDE SE, Sympy soporta números complejos, por lo que creo que esta simplificación no debe hacerse a menos que puedas demostrar b
es real.
Editar:También es falso si x no es positivo.
>>> x = -2
>>> m = 2
>>> n = 0.5
>>> (x**m)**n
2.0
>>> x**(m*n)
-2.0
Editar (por gnibbler):Aquí está el ejemplo original con las restricciones de Kenny aplicadas.
>>> from sympy import symbols
>>> a,b=symbols('ab', real=True, positive=True)
>>> j=(a**b**5)**(b**10)
>>> print j
a**(b**15)
Otros consejos
a,b,c=symbols('abc',real=True,positive=True)
(a**b**5)**b**10
a**(b**15)#ans
Esto puede estar relacionado con este error .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow