math – 使用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)

但是,这个问题不会产生解决方案,并且代码将陷入无限制的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 issue tracker中报告.

点赞