python 画 图灵斑图
时间: 2024-03-30 19:32:49 浏览: 195
python画图
对于Python实现图灵斑图,你可以使用Gray-Scott模型来实现。下面是一个简单的示例代码[^1]:
```python
import numpy as np
import matplotlib.pyplot as plt
# 设置模型参数
Du = 0.16
Dv = 0.08
F = 0.035
k = 0.065
# 设置网格大小和时间步长
size = 200
dt = 1
# 初始化U和V
U = np.ones((size, size))
V = np.zeros((size, size))
# 在中心区域添加一个圆形的初始斑点
r = 20
U[(size//2-r):(size//2+r), (size//2-r):(size//2+r)] = 0.5
V[(size//2-r):(size//2+r), (size//2-r):(size//2+r)] = 0.25
# 进行模拟
for _ in range(2000):
# 计算Laplacian
laplacian_U = np.roll(U, 1, axis=0) + np.roll(U, -1, axis=0) + np.roll(U, 1, axis=1) + np.roll(U, -1, axis=1) - 4 * U
laplacian_V = np.roll(V, 1, axis=0) + np.roll(V, -1, axis=0) + np.roll(V, 1, axis=1) + np.roll(V, -1, axis=1) - 4 * V
# 计算反应项
reaction_U = U * V**2
reaction_V = F * (1 - V) - reaction_U
# 更新U和V
U += (Du * laplacian_U - reaction_U) * dt
V += (Dv * laplacian_V + reaction_V) * dt
# 绘制图像
plt.imshow(U, cmap='hot', vmin=0, vmax=1)
plt.colorbar()
plt.title('Turing Pattern')
plt.show()
```
这段代码使用了NumPy和Matplotlib库来进行数值计算和图像绘制。首先,我们设置了Gray-Scott模型的参数,然后初始化了U和V两个网格。接下来,通过迭代计算Laplacian和反应项来更新U和V的值。最后,使用Matplotlib库将结果绘制成图像。
阅读全文