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
当我尝试反变换 (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