系列文章目录
hopf实现
一、python 解微分方程
python有用于求解常微分方程的库,库里面提供了不少功能,例如sympy的dsolve,以及scipy.integrate.odeint。其具体用法可参考官方文档,这里就不过多赘述,举两个例子看下效果
1、利用dsolve求解析解
f ( x ) ′ ′ + f ( x ) = 0 {f(x)}'' + f(x) = 0 f(x)′′+f(x)=0
import sympy as sy
def fun(x,f):
return sy.diff(f(x),x,2)+f(x)
x=sy.symbols('x') # 变量符号
f=sy.Function('f') # 函数符号
sy.pprint(sy.dsolve(fun(x,f),f(x))) # 打印等式
我们能得到以下方程
f(x) = C₁⋅sin(x) + C₂⋅cos(x)
取 c 1 = 1 , c 2 = 1 c_1=1, c_2=1 c1=1,c2=1,我们用matplotlab把他的图像画出来:
t = np.arange(0, 5, 0.001)
y = np.sin(t) + np.cos(t)
figure = plt.figure()
plt.grid(ls="--")
plt.plot(t, y)
plt.show()
2、利用scipy.integrate.odeint求解
我们先尝试一阶的微分方程: d y d t = y \frac{dy}{dt} = y dtdy