#範例8-8:二階聯立微分方程式,求通解(y1,y2),聯立齊性 ODE 的解法 #eq1:y1''(x) = -5y1 + 2y2 #eq1:y2''(x) = 2y1 - 2y2 #關鍵方法:dsolve()本身就可以解聯立微分方程式組 #語法:dsolve(聯立方程式list, [y1,y2]list) #ans = dsolve([[ode1, ode2]], [y1,y2]) from sympy import * x = symbols('x') y1 = Function('y1')(x) y2 = Function('y2')(x) ode1 = Eq(y1.diff(x,2), -5*y1 + 2*y2) ode2 = Eq(y2.diff(x,2), 2*y1 - 2*y2) #解聯立方程式的方法:先把所有的方程式放入一個eq 陣列 eqlis = [ode1, ode2] #dsolve(聯立方程式list, [y1,y2]list) ans = dsolve(eqlis, [y1,y2]) #print(ans) #顯示標準數學符號 from sympy.interactive import printing printing.init_printing(use_latex=True) display(ans) #ans有兩組解答,如何取得:第一個=ans[0], 第二個=ans[1] display(ans[0]) display(ans[1]) # expr = Eq(方程式,equation) 如何取得其中的函數部分 #expr.lhs:取得方程式的左邊 #expr.rhs:取得方程式的右邊 print('y1=',ans[0].rhs) print('y2=',ans[1].rhs)