我试图把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)包含一组生成器的元素。
发布于 2019-07-23 04:15:36
它看起来像是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
发布于 2019-07-23 09:02:06
您的表达式在exp(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但是SymPy可以处理这样的非符号生成器,因此对于这样的表达式,sym.apart(u)会给出与上面所示的结果相同的结果。当您说生成器是t时,它检测到exp(t)并引发错误,因为像t + exp(t)这样的表达式有两个依赖于t的生成器。
https://stackoverflow.com/questions/57132637
复制相似问题