我正在尝试使用 sympy 对以下形式的广义有理函数进行拉普拉斯逆变换:D/(A*s**2 + B*s + C)。
from sympy import *
from sympy import inverse_laplace_transform as ilt
from sympy.abc import s, t
var('A:D')
eq = D/(A*s**2 + B*s + C)
solution = ilt(eq, s, t)
从数学分析中知道答案是:
-(A (e^(t (-1/2 sqrt(C^2-4 B)-C/2))-e^(t (1/2 sqrt(C^2-4 B)-C/2))))/sqrt(C^2-4 B)
但是 sympy 不会产生解决方案,并且代码将卡在无限 CPU 进程中,没有特定的增益。但是像这样放置eq:
eq = B/((s - A)**2 + B**2)
sympy 将产生如下形式的方程:
-I*(I*exp(t*im(B))*sin(t*(re(B) - im(A))) - exp(t*im(B))*cos(t*(re(B) - im(A)))
+ I*exp(-t*im(B))*sin(t*(re(B) + im(A))) + exp(-t*im(B))*cos(t*(re(B) + im(A))))
*exp(t*re(A))*Heaviside(t)/2
这不是我需要的。关于如何使 sympy 屈服于这样一个人类可读的答案的任何建议?