Ручная интеграция для получения обратного преобразования Лапласа

Я хотел вычислить обратное преобразование Лапласа вручную, не прибегая к какой-либо библиотеке. В частности, я хотел вычислить двустороннее обратное преобразование Лапласа. Я хотел проверить свое понимание и попробовал следующее вручную, но не смог найти ответ. Куда я иду не так?

Я хочу вычислить преобразование Лапласа 1/(sa). Я знаю, что ответна это. Моя попытка:

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,99999999

но я знаю, что ответ exp = 2.71...

1 ответ

Основная ошибка математическая. Как говорит Википедия,

интегрирование выполняется вдоль вертикальной линии Re(s) = γ в комплексной плоскости, так что γ больше, чем действительная часть всех особенностей F(s)

Функция F(s) = 1/(sa) имеет особенность в точке a, которая в вашем примере равна 2. Так что γ должно быть больше 2. Например, при γ=3 выход quad является

(2.718278877362764, 2.911191228083254e-06)

как и ожидалось. По твоему import spicy и т.д. не может работать, правильный синтаксис импорта будет

from scipy.integrate import quad
# ....
quad(g, 0, np.inf, limit=10000)
Другие вопросы по тегам