2016-12-08 134 views
5

sympyを使用してシンボリック式の逆ラプラス変換を計算する際に問題があります。 matlabと本の中で私は式s /(s^2 + w^2)から作業して、cos(wt)に変換します。Sympy逆ラプラス変換を計算する

私はそうのように、この使用sympyを行うにしよう:

expression = s/(s**2+w**2) 
Answer = sympy.inverse_laplace_transform(expression, s, t) 

は私が

Answer = (-I*exp(2*t*im(w))*sin(t*re(w)) + exp(2*t*im(w))*cos(t*re(w)) + I*sin(t*re(w)) + cos(t*re(w)))*exp(-t*im(w))*Heaviside(t)/2 

は私が間違って何をやっていることを取得しますか?

答えて

6

Sympyは、wが複素数であると仮定します。より簡単な方法は、シンボルの定義にオプションreal=Trueを指定することです。

s, t = sp.symbols('s, t') 
w = sp.symbols('w', real = True) 
expression = s/(s**2+w**2) 

sympy.inverse_laplace_transform(expression, s, t) 

cos(t*w)*Heaviside(t)

+5

あなたはまた 'を行うことができますが、'ヘビサイド(t)をしたくない場合はtが '' sp.Symbol( 'T'、正= true)を=。ポジティブとは、実際のことを意味します。 – chthonicdaemon