Sympy:指数而不是指数和的乘法

时间:2015-01-23 19:59:08

标签: python sum multiplication sympy exponential

我正在搜索如何告诉SymPy使用指数的乘法而不是指数的和。也就是说,它目前给我exp(a + b),我想得到exp(a)* exp(b)。必须有一个相当简单的方法,但我似乎无法找到它。

1 个答案:

答案 0 :(得分:2)

您可以使用expand()函数来显示带有碱基乘法而不是指数之和的表达式:

>>> from sympy import *
>>> a, b = symbols('a b')
>>> expr = exp(a + b)
>>> expr
exp(a + b)
>>> expr.expand()
exp(a)*exp(b)

此功能的文档是here。相关部分总结如下:

  

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,否则评估提示为:basiclog,       multinomialmulpower_basepower_exp ...

很明显,power_exp是相关提示:

  

power_exp

     

将指数中的加法扩展为倍增基数。

>>> 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)