[英]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.