python解常微分⽅程组
美国⽓象学家洛伦兹(E.N.Lorenz)是混沌理论的奠基者之⼀。20世纪50年代末到60年代初,他的主要⼯作⽬标是从理论上进⾏长期天⽓预报研究。他在使⽤计算机模拟天⽓时意外发现,对于天⽓系统,哪怕初始条件的微⼩改变也会显著影响运算结果。随后,他在同事⼯作的基础上化简了⾃⼰先前的模型,得到了有3个变量的⼀阶微分⽅程组,由它描述的运动中存在⼀个奇异吸引⼦,即洛伦兹吸引⼦,⽅程如下。
三个⽅程定义了三维空间中的各个坐标点上度速度⽮量,其中ρ、σ、β为常数,不同的参数可以算出不同的轨迹:x(t)、y(t)、z(t)。当参数为某些值时,轨迹出现混沌现象。即最⼩的初值差别也会显著地影响运动轨迹。
import pylab as pl
import numpy as np
进制转换方法pptfrom scipy import integrate
from scipy.integrate import odeint网站视频制作
#%fig=洛伦茨吸引⼦:微⼩的初值差别也会显著地影响运动轨迹
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.tolist()
# 直接与lorenz的计算公式对应
sql2000服务器配置
气象python零基础入门教程return p*(y-x), x*(r-z)-y, x*y-b*z
t = np.arange(0, 30, 0.02) # 创建时间点
# 调⽤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)) #❸
#%hide
from mpl_toolkits.mplot3d import Axes3D
fig = pl.figure()
ax = Axes3D(fig)
ax.plot(track1[:,0], track1[:,1], track1[:,2], lw=1)
ax.plot(track2[:,0], track2[:,1], track2[:,2], lw=1);powerpoint2010视图选项卡中
linux虚拟机和实体机洛伦茨吸引⼦:即使微⼩的差别也会显著地影响运动轨迹
[1]洛伦茨吸引⼦介绍参考:
[2]《python科学计算》(张若愚著)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。