فهرست بستن

تبدیل لاپلاس و عکس لاپلاس در پایتون

کتابخانه SymPy طیف وسیعی از محاسبات سمبولیک را برای کاربران و برنامه نویسان پایتون فراهم کرده است. یکی از این محاسبات که مورد نیاز مهندسین می باشد، تبدیل لاپلاس و عکس لاپلاس می باشد. محاسبه این تبدیل انتگرالی به سادگی با SymPy قابل انجام است و نشانگر توانمندی رقابت پایتون با متلب می باشد. در این نوشته نحوه محاسبه تبدیل لاپلاس و عکس لاپلاس را با مثال خواهیم دید.

بسم الله الرحمن الرحیم

یکی از پر کاربردترین ابزارهای ریاضی برای پردازش سیگنال و بررسی سیستم ها، تبدیل لاپلاس می باشد. مبحث سیستمهای کنترل خطی هم تماما بر روی این تبدیل انتگرالی می چرخد. اینکه بتوانیم تبدیل لاپلاس و عکس تبدیل لاپلاس را برای سیگنالهای مختلف محاسبه نماییم در کاربردهای مهندسی ارزشمند می باشد. کتابخانه SymPy با ارائه امکان محاسبه سمبولیکِ این تبدیل، کار را برای مهندسین آسان کرده است. اگر با کتابخانه SymPy آشنایی ندارید می توانید ابتدا نوشته زیر را بخوانید:

محاسبات ریاضی سمبولیک در پایتون با استفاده از کتابخانه Sympy

مثال تبدیل لاپلاس:

from sympy.integrals import laplace_transform
import sympy

s = sympy.Symbol("s")
a = sympy.Symbol("a")
t = sympy.Symbol("t")


lplc = laplace_transform(sympy.exp(-a * t) * sympy.Heaviside(t), t, s)
print(lplc)

خروجی این کد بصورت زیر می باشد:

(۱/(a + s), 0, Abs(arg(a)) < pi/2)

همانطور که می توان دید علاوه بر تبدیل لاپلاس ناحیه همگرایی هم بعنوان خروجی تبدیل لاپلاس برگردانده می شود. اگر خروجی را به شکل (F, a, cond) فرض نماییم، F تبدیل لاپلاس، operatorname{Re}(s) > a  نیم صفحه همگرایی و cond شرایط اضافی همگرایی می باشد.

مثال عکس تبدیل لاپلاس خروجی مثال قبل:

from sympy.integrals import laplace_transform, inverse_laplace_transform
import sympy

s = sympy.Symbol("s")
a = sympy.Symbol("a", positive=True)
t = sympy.Symbol("t")


lplc = laplace_transform(sympy.exp(-a * t) * sympy.Heaviside(t), t, s)
print(inverse_laplace_transform(lplc[0], s, t))

که خروجی به شکل زیر می باشد:

exp(-a*t)*Heaviside(t)

و همان تابع اولیه ماست.