[英]Unexpected result for solving ordinary linear differential equation of second order with SymPy
我正在尝试解决这个二阶普通线性微分方程 使用SymPy并获得意外结果。
import sympy as sym
k, t = sym.symbols('k, t')
s = sym.Function('s')
diff_eq = sym.Eq(s(t).diff(t, 2) + s(t) * k**2, 0) # everything fine here, when I print this I get what I expected.
solution_diff_eq = sym.dsolve(diff_eq, s(t))
print(solution_diff_eq)
哪些印刷品
Eq(s(t), C1*exp(-I*k*t) + C2*exp(I*k*t))
有任何想法我做错了吗?
结果打印为
Eq(s(t), C1*exp(-I*k*t) + C2*exp(I*k*t))
这是正确的,因为I
是虚构单位。 您可能更喜欢实数形式,但是没有通知sympy,并且以指数项的总和生成了最简单的形式,尤其是因为不清楚k
是否为实数。
如果您明确指出k
是通过
k = sym.Symbol('k', real=True, positive=True)
正如您所期望的,该解决方案实际上是真实的形式
Eq(s(t), C1*sin(k*t) + C2*cos(k*t))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.