登录 注册
当前位置:主页 > 资源下载 > 31 > 史上最全的smd贴片型led封装解常微分方程组

史上最全的smd贴片型led封装解常微分方程组

  • 更新:2024-06-25 08:13:44
  • 大小:7.14MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:讲义 - 课程资源
  • 格式:PDF

资源介绍

3.6 解常微分方程组 scipy.integrate库提供了数值积分和常微分方程组求解算法odeint。下面让我们来看看如何用odeint 计算洛仑兹吸引子的轨迹。洛仑兹吸引子由下面的三个微分方程定义: dx dt = σ(y − x) dy dt = x(ρ− z)− y dz dt = xy − βz 洛仑兹吸引子的详细介绍: http://bzhang.lamost.org/website/archives/lorenz_attactor 这三个方程定义了三维空间中各个坐标点上的速度矢量。从某个坐标开始沿着速度矢量进行积分,就 可以计算出无质量点在此空间中的运动轨迹。其中 σ, ρ, β 为三个常数,不同的参数可以计算出不同的 运动轨迹: x(t), y(t), z(t)。 当参数为某些值时,轨迹出现馄饨现象:即微小的初值差别也会显著地影 响运动轨迹。下面是洛仑兹吸引子的轨迹计算和绘制程序: 1 # -*- coding: utf-8 -*- 2 from scipy.integrate import odeint 3 import numpy as np 4 5 def lorenz(w, t, p, r, b): 6 # 给出位置矢量w,和三个参数p, r, b计算出 7 # dx/dt, dy/dt, dz/dt的值 8 x, y, z = w 9 # 直接与lorenz的计算公式对应 10 return np.array([p*(y-x), x*(r-z)-y, x*y-b*z]) 11 12 t = np.arange(0, 30, 0.01) # 创建时间点 13 # 调用ode对lorenz进行求解, 用两个不同的初始值 14 track1 = odeint(lorenz, (0.0, 1.00, 0.0), t, args=(10.0, 28.0, 3.0)) 15 track2 = odeint(lorenz, (0.0, 1.01, 0.0), t, args=(10.0, 28.0, 3.0)) 16 17 # 绘图 18 from mpl_toolkits.mplot3d import Axes3D 19 import matplotlib.pyplot as plt 20 21 fig = plt.figure() 22 ax = Axes3D(fig) 23 ax.plot(track1[:,0], track1[:,1], track1[:,2]) 24 ax.plot(track2[:,0], track2[:,1], track2[:,2]) 25 plt.show() 3.6. 解常微分方程组 51