0

我想手动计算拉普拉斯逆变换而不求助于任何库。具体来说,我想计算双边拉普拉斯逆变换。我想检查我的理解并手动尝试以下操作,但无法匹配答案。我哪里错了?

我想计算 1/(sa) 的拉普拉斯变换。我知道答案是 e 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...

4

1 回答 1

1

主要错误是数学上的。正如维基百科所说,

沿复平面中的垂直线 Re(s) = γ 进行积分,使得 γ 大于 F(s) 的所有奇点的实部

函数 F(s) = 1/(sa) 在 a 处具有奇点,在您的示例中为 2。所以 γ 需要大于 2。例如,当 γ=3 时,输出quad

(2.718278877362764, 2.911191228083254e-06)

正如预期的那样。通过,您的import spicyetc 不可能工作,正确的导入语法将是

from scipy.integrate import quad
# ....
quad(g, 0, np.inf, limit=10000)
于 2017-11-01T11:47:08.510 回答