我正在寻找如何告诉SymPy使用指数乘积而不是指数和。也就是说,当前它给出的是exp(a+b),而我想要得到的是exp(a) * exp(b)。这应该有一个相当简单的方法,但我似乎找不到它。
expand()
函数,以乘法基数的形式展示表达式,而不是指数和的形式:>>> from sympy import *
>>> a, b = symbols('a b')
>>> expr = exp(a + b)
>>> expr
exp(a + b)
>>> expr.expand()
exp(a)*exp(b)
显然,
sympy.core.function.expand(e, deep=True, modulus=None, power_base=True, power_exp=True, mul=True, log=True, multinomial=True, basic=True, **hints)
使用给定的提示方法扩展表达式。
除非明确设置为False,否则将评估提示。可用的提示有:
basic
、log
、multinomial
、mul
、power_base
和power_exp
......
power_exp
是相关的提示。
将其设为
power_exp
Expand addition in exponents into multiplied bases.
>>> exp(x + y).expand(power_exp=True) exp(x)*exp(y) >>> (2**(x + y)).expand(power_exp=True) 2**x*2**y
False
会使表达式保持不变:>>> expr.expand(power_exp=False)
exp(a + b)