Sympy计算逆拉普拉斯变换

问题描述:

我在使用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 

我在做什么错?

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 = sp.Symbol( 'T',正值=真)'如果你不希望'亥(T)'。积极也意味着真实。 – chthonicdaemon