求解常微分方程组的pathon程序例子
时间: 2023-03-02 08:16:40 浏览: 21
Hopf振荡器的一种python实现
以下是求解常微分方程组的 Python 程序示例:
假设要求解的常微分方程组为:dy1/dt = y2, dy2/dt = -y1
```
import numpy as np
from scipy.integrate import solve_ivp
def odefun(t, y):
dydt = [y[1], -y[0]]
return dydt
t_span = [0, 10]
y0 = [1, 0]
sol = solve_ivp(odefun, t_span, y0)
print(sol.t)
print(sol.y)
```
代码中首先导入了 NumPy 和 SciPy 库,然后定义了一个函数 odefun,它接受时间 t 和状态变量 y 作为参数,返回状态变量 y 的一阶导数 dy/dt。在这个例子中,dy1/dt = y2,dy2/dt = -y1。接下来定义了求解常微分方程组的时间范围 t_span 和初始状态 y0。
然后调用 SciPy 库的 solve_ivp 函数求解常微分方程组,并将结果存储在变量 sol 中。最后打印出时间数组 sol.t 和状态变量数组 sol.y。
需要注意的是,这里使用的是 solve_ivp 函数,它可以自动选择求解器,但需要提供初始时间、初始状态和时间范围。如果需要指定求解器,可以使用 ode 或 odeint 函数。
阅读全文