SymPyでラプラス変換
先駆者様
Qiitaでは
という記事がありました。しかしインターネット上を調べてみるとSymPyなる便利なモジュールがあるようなので、それでラプラス変換をしてみましょう。
ラプラス変換
SymPy
のラプラス変換機能を用いるためにはlaplace_transform
関数を用います。
>>> import sympy as sp
>>> s, t = sp.symbols('s, t')
>>> w = sp.symbols('w', real=True)
>>> sp.laplace_transform(sp.cos(w*t), t, s)
(s/(s**2 + w**2), 0, Eq(Abs(periodic_argument(polar_lift(w)**2, oo)), 0))
上述の最終行の先頭がラプラス変換結果です。ここでは$\cos (wt)$を変数$t$から変数$s$の関数に変換しています。
ラプラス逆変換
$\frac{s}{s^2+w^2}$が逆変換によって$\cos$関数に戻ることも確認してみましょう。そのためにはinverse_laplace_transform
関数を用います。変数$s$から変数$t$への変換であることに留意しましょう。
>>> expression = sp.laplace_transform(sp.cos(w*t), t, s)
>>> print(expression)
(s/(s**2 + w**2), 0, Eq(Abs(periodic_argument(polar_lift(w)**2, oo)), 0))
>>> sp.inverse_laplace_transform(expression[0], s, t)
cos(t*w)*Heaviside(t)
となり、無事に$\cos$関数に戻ってくることができました。
結言
なんとなく我が家にラプラス変換の本が転がっていたので、「これをPythonで行うにはどうすればよいのか?」という暇つぶし程度に考えていましたが、結果SymPy
の威力を思い知らされた、そんな記事の仕上がりになりました。
Author And Source
この問題について(SymPyでラプラス変換), 我々は、より多くの情報をここで見つけました https://qiita.com/github-nakasho/items/508b301f01eb2846e847著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .