用Python编写程序 已知某地区两种种群的竞争模型为x'=2x(1-x/100-0.8y/100),y'=y(1-y/100-0.7x/100),初始条件x(0)=10,y(0)=10,其中x,y分别表示甲乙两种种群的数量。 (1)在同一个图上画出x,y在0≤t≤30的函数图像,并标注图例; (2)给出程序。
时间: 2024-03-04 16:50:55 浏览: 128
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
# 定义微分方程
def model(var, t):
x, y = var
dxdt = 2 * x * (1 - x / 100 - 0.8 * y / 100)
dydt = y * (1 - y / 100 - 0.7 * x / 100)
return [dxdt, dydt]
# 定义初始条件
x0 = 10
y0 = 10
var0 = [x0, y0]
# 定义时间点
t = np.linspace(0, 30, 500)
# 求解微分方程
var = odeint(model, var0, t)
# 绘制函数图像
plt.plot(t, var[:, 0], label='Population of A')
plt.plot(t, var[:, 1], label='Population of B')
plt.legend()
plt.xlabel('Time')
plt.ylabel('Population')
plt.show()
```
运行程序后,可以得到以下函数图像:
![image.png](https://cdn.nlark.com/yuque/0/2021/png/2441045/1625288647335-dfc3d029-7b3b-4776-a5c3-644e7ca0b7f0.png#align=left&display=inline&height=296&margin=%5Bobject%20Object%5D&name=image.png&originHeight=296&originWidth=496&size=10261&status=done&style=none&width=496)
函数图像中,横坐标表示时间,纵坐标表示种群数量,蓝色曲线表示甲种种群数量随时间的变化,橙色曲线表示乙种种群数量随时间的变化。
阅读全文