Sympy 计算逆拉普拉斯变换
Sympy computing the inverse laplace transform
我在使用 sympy 计算符号表达式的拉普拉斯逆变换时遇到了一些问题。在 matlab 和书中,我正在将表达式 s/(s^2 + w^2) 转换为 cos(wt).
当我尝试像这样使用 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)
我在使用 sympy 计算符号表达式的拉普拉斯逆变换时遇到了一些问题。在 matlab 和书中,我正在将表达式 s/(s^2 + w^2) 转换为 cos(wt).
当我尝试像这样使用 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)