如何在python中分离指数函数

如何在python中分离指数函数,python,python-3.x,sympy,Python,Python 3.x,Sympy,我试图在python中分离指数函数 import sympy as sym from sympy.abc import t from sympy import exp u = (3*(exp(4*t) - 1)*exp(-4*t))/4 apart = sym.apart(u, t) print(apart) 但我得到了一个错误: exp(4*t)包含生成器集的一个元素 看起来exp()把它弄糊涂了。为了解决问题 import sympy as sym from sympy.abc impo

我试图在python中分离指数函数

import sympy as sym
from sympy.abc import t
from sympy import exp

u = (3*(exp(4*t) - 1)*exp(-4*t))/4
apart = sym.apart(u, t)
print(apart)
但我得到了一个错误:

exp(4*t)包含生成器集的一个元素

看起来exp()把它弄糊涂了。为了解决问题

import sympy as sym
from sympy.abc import t,z
from sympy import exp

u = (3*(exp(4*t) - 1)*exp(-4*t))/4
expr = sym.apart(u.subs(exp(t),z), z)
expr = expr.subs(z,exp(t))

Out[3]: 3/4 - 3*exp(-4*t)/4

使用conda上的3.7,您的表达式是一个单变量有理函数,表示exp(t):

但是Symphy可以处理这样的非符号生成器,因此对于这样一个表达式,
sym.apart(u)
将给出与上面所示相同的结果。当您说生成器是
t
时,它检测到
exp(t)
并引发了错误,因为像
t+exp(t)
这样的表达式有两个依赖于
t
的生成器

>>> u.subs(exp(t),y)
3*(y**4 - 1)/(4*y**4)
>>> apart(_)
3/4 - 3/(4*y**4)
>>> _.subs(y, exp(t))
3/4 - 3*exp(-4*t)/4