#範例8-5:二階常係數非齊性ODE之特解:y''(x)+2y'(x)-3y(x)=3x**2,邊界條件為y(0)=0, y'(0)=0 #因為多一個4x**2,這個是非齊性項(全部的係數都是固定常數) #ode :y''(x)+2y'(x)-3y(x)=3x**2 #邊界條件或起始條件:y(0)=0, y'(0)=0 #語法:dsolve(eq, f(x), ics={y(0):0,y(x).diff(x).subs(x,0):-0}) #所解出的原方程式:y(x) = -x**2 - 4*x/3 + 3*exp(x)/2 - 14/9 + exp(-3*x)/18 from sympy.interactive import printing printing.init_printing(use_latex=True) from sympy import * x = symbols('x') y = Function('y')(x) #注意:ode是個方程式,不是函數 ode = y.diff(x,2)+2*y.diff(x)-3*y - 3*x**2 ans = dsolve(ode, y, ics={y.subs(x,0):0, y.diff(x).subs(x,0):0}) print('二階常係數非齊性ODE之特解:',ans.args[0],'=',ans.args[1]) #畫圖y(x) plot(ans.args[1],(x,-10,0), line_color='red')