用python写蝴蝶效应的代码
时间: 2023-12-17 17:16:50 浏览: 115
下面是一个简单的 Python 代码来模拟蝴蝶效应,使用了 Matplotlib 库来可视化结果:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义微分方程
def f(x, y, z):
return 10 * (y - x)
def g(x, y, z):
return x * (28 - z) - y
def h(x, y, z):
return x * y - 8/3 * z
# 定义初始状态和时间范围
x0, y0, z0 = (1.0, 1.0, 1.0)
t = np.arange(0, 100, 0.01)
# 使用欧拉方法求解微分方程
dt = 0.01
x, y, z = [x0], [y0], [z0]
for i in range(len(t) - 1):
xn = x[i] + f(x[i], y[i], z[i]) * dt
yn = y[i] + g(x[i], y[i], z[i]) * dt
zn = z[i] + h(x[i], y[i], z[i]) * dt
x.append(xn)
y.append(yn)
z.append(zn)
# 绘制三维轨迹
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot(x, y, z)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
# 绘制二维轨迹
fig = plt.figure()
plt.plot(x, y)
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
```
这个代码使用了欧拉方法求解微分方程,得到了三维轨迹和二维轨迹。你可以根据需要调整初始状态、时间范围和微分方程来得到不同的结果。
阅读全文