1. 程式人生 > 程式設計 >python中sympy庫求常微分方程的用法

python中sympy庫求常微分方程的用法

問題1:

python中sympy庫求常微分方程的用法

程式,如下

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庫求解微分方程的解 y=f(x),並嘗試利用matplotlib繪製函式影象

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)

python中sympy庫求常微分方程的用法

2.利用python的Sympy庫求解微分方程的解 y=y(x),並嘗試利用matplotlib繪製函式影象

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庫求常微分方程的用法的文章就介紹到這了,更多相關python sympy常微分方程內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!