Python 绘制 Lorenz 模型混沌吸引子图
以下是使用 Python 绘制 Lorenz 模型混沌吸引子图形的示例代码:
import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def lorenz(t, xyz, sigma, rho, beta):
x, y, z = xyz
dxdt = sigma * (y - x)
dydt = x * (rho - z) - y
dzdt = x * y - beta * z
return [dxdt, dydt, dzdt]
# 设定Lorenz模型的参数值
sigma = 10.0
rho = 28.0
beta = 8.0 / 3.0
# 定义Lorenz模型的初始条件
xyz0 = [1.0, 1.0, 1.0]
# 解Lorenz模型的微分方程
sol = solve_ivp(lorenz, [0, 100], xyz0, args=(sigma, rho, beta), dense_output=True)
# 在时间范围内生成均匀的点
t_eval = np.linspace(0, 100, 10000)
# 根据解的结果计算各个时刻的xyz值
xyz = sol.sol(t_eval)
# 绘制Lorenz模型的混沌吸引子
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(xyz[0], xyz[1], xyz[2], color='b', linewidth=0.5)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('Lorenz Attractor')
plt.show()
以上代码使用scipy库的solve_ivp函数来求解 Lorenz 模型的微分方程,并使用matplotlib库绘制混沌吸引子的三维图形。可以根据需要修改参数和初始条件,并调整绘图的样式。执行代码后,将会显示 Lorenz 模型的混沌吸引子图形。
原文地址: https://www.cveoy.top/t/topic/5Fw 著作权归作者所有。请勿转载和采集!