Sympy inverse_laplace_transform 不工作?

Sympy inverse_laplace_transform isn't working?

当我尝试反变换 (s + 0.2)/(s*(s + 0.2) + 1) 时,sympy 中的逆拉普拉斯变换遇到了一个大问题。

我使用的代码:

from sympy import *
s = symbols('s')
t = symbols('t')
f = (s + 0.2)/(s*(s + 0.2) + 1)
inverse_laplace_transform(f,s,t)

该代码破坏了程序,我不明白为什么,因为对于其他函数,该方法不会崩溃。

显然mpmath 有问题,它是一个用于任意精度算术的模块,或者这个模块与sympy 的集成。

您可以通过将 0.2 替换为有理数来规避该错误。这样的事情对我有用:

from sympy import *
s = symbols('s')
t = symbols('t')
a  = Rational(1, 5)
f = (s + a)/(s*(s + a) + 1)
inverse_laplace_transform(f,s,t)

那个returns:

sqrt(11)*(sin(3*sqrt(11)*t/10) + 3*sqrt(11)*cos(3*sqrt(11)*t/10))*exp(-t/10)*Heaviside(t)/33