我正在搜索如何告诉 SymPy 使用指数乘法而不是总和的指数。也就是说,它当前给我 exp(a + b),我想要得到 exp(a)*exp(b)。一定有一个相当简单的方法,但我似乎找不到。
你可以使用expand() http://docs.sympy.org/0.7.1/modules/core.html#sympy.core.expr.Expr.expand函数显示基数乘法而不是指数和的表达式:
>>> from sympy import *
>>> a, b = symbols('a b')
>>> expr = exp(a + b)
>>> expr
exp(a + b)
>>> expr.expand()
exp(a)*exp(b)
该函数的文档是here http://docs.sympy.org/0.7.4/modules/core.html#sympy.core.function.expand。相关部分总结如下:
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
, and 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)