python中sympy庫求常微分方程的用法
阿新 • • 發佈:2020-04-30
問題1:
程式,如下
from sympy import * f = symbols('f',cls=Function) x = symbols('x') eq = Eq(f(x).diff(x,x) - 2*f(x).diff(x) + f(x),sin(x)) print(dsolve(eq,f(x)))
結果
Eq(f(x),(C1 + C2*x)*exp(x) + cos(x)/2)
1.利用python的Sympy庫求解微分方程的解
程式,如下
from sympy import * f = symbols('f',1)+f(x)+f(x)**2,0) print(dsolve(eq,f(x))) C1 = symbols('C1') eqr = -C1/(C1 - exp(x)) eqr1 = eqr.subs(x,0) print(solveset(eqr1 - 1,C1)) eqr2 = eqr.subs(C1,1/2) # 畫圖 import matplotlib.pyplot as plt import numpy as np x_1 = np.arange(-5,5,0.1) y_1 = [-0.5/(0.5 - exp(x)) for x in x_1] plt.plot(x_1,y_1) plt.axis([-6,6,-10,10]) plt.grid() plt.show()
結果
Eq(f(x),-C1/(C1 - exp(x)))
FiniteSet(1/2)
2.利用python的Sympy庫求解微分方程的解
程式,如下
from sympy import * y = symbols('y',cls=Function) x = symbols('x') eq = Eq(y(x).diff(x,1),y(x)) print(dsolve(eq,y(x))) C1 = symbols('C1') eqr = C1*exp(x) eqr1 = eqr.subs(x,1) # 畫圖 import matplotlib.pyplot as plt import numpy as np x_1 = np.arange(-5,0.01) y_1 = [exp(x) for x in x_1] plt.plot(x_1,y_1,color='orange') plt.grid() plt.show()
結果
Eq(y(x),C1*exp(x))
FiniteSet(1)
到此這篇關於python中sympy庫求常微分方程的用法的文章就介紹到這了,更多相關python sympy常微分方程內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!