我正在搜索如何告诉SymPy使用指数的乘法而不是指数的和。也就是说,它目前给我exp(a + b),我想得到exp(a)* exp(b)。必须有一个相当简单的方法,但我似乎无法找到它。
答案 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,否则评估提示为:
basic
,log
,multinomial
,mul
,power_base
和power_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)