我想手动计算逆拉普拉斯变换,而不需要求助于任何库。具体来说,我想计算双边拉普拉斯逆变换。我想检查一下我的理解并手动尝试以下操作,但无法匹配答案。我哪里错了?
我想计算1 /(s-a)的laplace变换。我知道答案是 at 。我的尝试:
a = 2
t = 0.5
f = lambda s: 1/(s-a)
def g(u):
gammah=1
s = complex(real=gammah,imag=u)
return (f(s)).real*np.cos(s.imag*t) * 2*np.exp(s.real*t)/pi
import spicy as sp
import numpy as np
sp.integrate(g,0,np.inf,limit=10000)
给了我-0.9999999
但我知道答案是exp = 2.71 ......
答案 0 :(得分:1)
主要错误是数学错误。正如Wikipedia所说,
沿复平面中的垂直线Re(s)=γ进行积分,使得γ大于F(s)的所有奇点的实部
函数F(s)= 1 /(s-a)在a处具有奇点,在您的示例中为2。所以γ需要大于2.例如,当γ= 3时,quad
的输出是
(2.718278877362764, 2.911191228083254e-06)
正如所料。通过,您的import spicy
等不可能正常工作,正确的导入语法将是
from scipy.integrate import quad
# ....
quad(g, 0, np.inf, limit=10000)