Sympy找不到逆拉普拉斯变换的宽松条件

问题描述:

一笔我计算逆拉普拉斯变换它是一种表达的比较基础条件的总和反转:Sympy找不到逆拉普拉斯变换的宽松条件

>>> t = symbols('t', positive=True) 
>>> s = symbols('s') 
>>> inverse_laplace_transform(1 - 9/(s + 2) + 5/(s+1) - 1/(s+1)**2, s, t) 

这似乎是能计算出每一个人罚款:

>>> inverse_laplace_transform(-1/(s+1)**2, s, t) 
-t*exp(-t) 
>>> inverse_laplace_transform(5/(s-1), s, t) 
5*exp(t) 
>>> inverse_laplace_transform(9/(s+2), s, t) 
9*exp(-2*t) 
>>> inverse_laplace_transform(1, s, t) 
InverseLaplaceTransform(1, s, t, _None) 

然而,当我把这些的总和,我弄了半天错误说,它不能找到多项式

inverse_laplace_transform(1-9 /(s + 2)+5 /(s + 1)-1 /(s + 1)** 2,s,t) sympy.polys.polyersrors.PolynomialDivisionFailed:无法降低程度在分割[EX(-1728 * 3 **(1/3)(9 + sqrt(93))*(1/3)*(27 + 3 * sqrt(93))**时的多项式除法算法中, (2/3)+1728 * 3 **(5/6)I(9 + sqrt(93))**(1/3)*(27 + 3 * sqrt(93))**(2/3))]通过[EX(1)]。 如果系数域中无法检测到零,则可能发生这种情况。计算的领域是EX。 您可能想要使用不同的简化算法。 请注意,通常无法保证在此域中检测到零。

有没有人知道为什么sympy不应该能够做到这一点的部分总和,当它可以在每个部分分别做到这一点?

可能是新版本中的一个错误。 SymPy 1.0曾经工作得很好:

>>> inverse_laplace_transform(1 - 9/(s + 2) + 5/(s+1) - 1/(s+1)**2, s, t) 
-t*exp(-t) + InverseLaplaceTransform(1, s, t, _None) + 5*exp(-t) - 9*exp(-2*t) 
+0

我正在使用版本1.1.1,并得到与问题中相同的错误。我使用问题中提到的's'和't'的定义,然后我从这里复制你的表达式,但是没有bueno。 – Reti43

+0

@ Reti43也许我已经过时了:P在上面,现在检查 – Uriel

+0

@ Reti43好,看起来像新版本是越野车,因为老年人给出了正确的结果 – Uriel