马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
python的科学计算包可以说相当的强大,建议论坛也设置一个python的讨论区。这里给出一下经典的lorenz吸引子的一个图示效果和程序。- # -*- coding: utf-8 -*-
- from scipy.integrate import odeint
- import numpy as np
- def lorenz(w, t, p, r, b):
- # 给出位置矢量w,和三个参数p, r, b计算出
- # dx/dt, dy/dt, dz/dt的值
- x, y, z = w
- # 直接与lorenz的计算公式对应
- return np.array([p*(y-x), x*(r-z)-y, x*y-b*z])
- t = np.arange(0, 30, 0.01) # 创建时间点
- # 调用ode对lorenz进行求解, 用两个不同的初始值
- track1 = odeint(lorenz, (0.0, 1.00, 0.0), t, args=(10.0, 28.0, 3.0))
- track2 = odeint(lorenz, (0.0, 1.01, 0.0), t, args=(10.0, 28.0, 3.0))
- # 绘图
- from mpl_toolkits.mplot3d import Axes3D
- import matplotlib.pyplot as plt
- fig = plt.figure()
- ax = Axes3D(fig)
- ax.plot(track1[:,0], track1[:,1], track1[:,2])
- ax.plot(track2[:,0], track2[:,1], track2[:,2])
- plt.show()
-
复制代码
lorenz
或者使用mayavi包:添加代码:
- mlab.plot3d(track1[:,0], track1[:,1], track1[:,2],color=(1,0,0), tube_radius=0.1)
复制代码 得到下面的效果:
mayavi的可视化效果是非常好的,有兴趣的朋友可以去看看!
强烈推荐
|