带有时滞的常微分方程组的画图代码
时间: 2023-10-17 13:05:35 浏览: 157
matlab微分方程代码-LLEF:具有时滞反馈的Lugiato-Lefever方程
5星 · 资源好评率100%
以下是一个简单的 Python 代码示例,用于画出带有时滞的常微分方程组的相图:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp
# 定义常微分方程组
def f(t, y):
a = 0.8
b = 0.2
tau = 1.5
y1, y2 = y
dy1 = a * y1(t) - b * y2(t - tau)
dy2 = a * y2(t) - b * y1(t - tau)
return [dy1, dy2]
# 定义解初值问题
y0 = [2, 1]
t_span = [0, 50]
# 解方程
sol = solve_ivp(f, t_span, y0)
# 画图
plt.plot(sol.y[0], sol.y[1])
plt.xlabel('y1')
plt.ylabel('y2')
plt.title('Phase Portrait of Delayed Differential Equations')
plt.show()
```
上述代码中,我们定义了一个带有时滞的常微分方程组,并使用 `solve_ivp` 函数求解了该方程组的解初值问题。然后,我们使用 `matplotlib` 库画出相图。在这个例子中,我们使用了一个常见的带有时滞的常微分方程组:
$$
\begin{aligned}
\frac{dy_1}{dt} & = a y_1(t) - b y_2(t - \tau) \\
\frac{dy_2}{dt} & = a y_2(t) - b y_1(t - \tau)
\end{aligned}
$$
其中,$a$ 和 $b$ 是常数,$\tau$ 是时滞参数。
阅读全文