news 2026/9/15 10:33:36

3分钟跑通洛伦兹吸引子:Python + Manim 混沌系统可视化指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3分钟跑通洛伦兹吸引子:Python + Manim 混沌系统可视化指南

3分钟跑通洛伦兹吸引子:Python + Manim 混沌系统可视化指南

【免费下载链接】videosCode for the manim-generated scenes used in 3blue1brown videos项目地址: https://gitcode.com/GitHub_Trending/vi/videos

两个从仅相差 0.00001 的起点出发的点,30 秒后落在完全不相干的位置,但每一步都由固定方程决定。在 3Blue1Brown 动画源码库(GitHub 推荐项目 vi/videos)里跑一条命令,洛伦兹吸引子(一组方程把轨迹卷成的形状)就转起来:这是混沌系统可视化最直接的形态,核心代码只有几十行。

三步跑通:装依赖、拉仓库、一条命令出画面

场景代码在 _2024/manim_demo/lorenz.py,需要三样东西:3b1b 版 Manim(命令行工具叫manimgl,社区版装出来跑不了这个场景)、SciPy、以及渲染 LaTeX 公式的 texlive。

pip install numpy scipy # manimgl 按 3b1b 官方说明从源码安装,Ubuntu 再装: # sudo apt install texlive texlive-latex-extra git clone https://gitcode.com/GitHub_Trending/vi/videos cd videos manimgl _2024/manim_demo/lorenz.py LorenzAttractor -p

这段先装依赖、拉仓库,最后一条命令直接渲染并预览场景;嫌慢就先加-ql用低分辨率试跑。

看图说话:洛伦兹吸引子为什么是两片"翅膀"

动画里,黑色背景上立着 3D 坐标轴,左上角写着三个微分方程,x、y、z 分别染成红、绿、蓝。十条深浅不同的蓝色曲线从同一位置出发,每条后面跟一个发光小点,摄像机绕着缓缓转圈。曲线整体卷成两片镜像对称的"翅膀",轨迹在左右两翼之间不断切换,30 秒内不重复经过同一个位置。

这个形状不是画出来的,是方程自己卷出来的。模型描述热空气对流:z 表示上下温差(高度),x、y 是水平流速。轨迹停在某一翼时,"热气流"会把它推向另一侧,而何时推、推多重,取决于状态里极细微的差别。吸引子(轨迹最终被卷入、反复绕行的那片区域)恰好是两翼并排的结构,所以只能左右横跳。十条线一开始重叠、随后逐条分开,是因为起点在 z 方向只差了 1e-5——系统把这个差别指数级放大,最后各落在不同翅膀上。这就是"蝴蝶效应"的完整机制。

原理拆解:洛伦兹方程 + 一次数值积分

整个文件的核心只有两个函数。第一个定义洛伦兹方程组——一组非线性微分方程(变化率由当前位置算出,解不出封闭公式,只能逐步推进):

def lorenz_system(t, state, sigma=10, rho=28, beta=8/3): x, y, z = state return [sigma*(y-x), x*(rho-z)-y, x*y-beta*z] def ode_solution_points(function, state0, time, dt=0.01): sol = solve_ivp(function, (0, time), y0=state0, t_eval=np.arange(0, time, dt)) return sol.y.T # (n_points, 3) 轨迹点

第一个函数给出任意状态点的三个变化率:σ(y−x) 让 x、y 速度差互相混匀,x(ρ−z)−y 让高度 z 调制放大强度,xy−βz 是耗散。第二个函数把方程交给solve_ivp做数值积分(反复计算"下一时刻在哪",每 0.01 秒记一个点拼成轨迹),返回的数组直接就是可绘制的点云。

三个参数各管一摊:σ=10 是混合比例,β=8/3 是耗散强度,ρ=28 是对流强度——低于约 24.7 时系统收敛到静止点,升到 28 进入经典混沌区。场景真正的主角在初始条件这一行:

epsilon = 1e-5 states = [[10, 10, 10 + n*epsilon] for n in range(10)]

沿 z 方向以 0.00001 的间隔取 10 个起点,后面的动画就是求解这 10 条轨迹,再用ThreeDAxes.c2p把数据坐标映射到屏幕、set_points_smoothly连成光滑曲线。

动手实验:改三个地方看混沌轨迹分岔

  1. 把 epsilon 改成 0:十条轨迹完全重合为一条,证明分岔确实来自初始条件,而不是求解器引入的随机性。
  2. 把 rho 从 28 改成 16.8:翅膀消失,轨迹螺旋收敛到一个固定点;再调大到 99,还是那个吸引子,但换翼明显更剧烈。同一个方程组,改一个数就换了一种状态。
  3. 换另一个混沌系统:用 Rössler 方程替换lorenz_system:dx/dt=−y−z,dy/dt=x+a·y,dz/dt=b+z·(x−c),取 a=0.2、b=0.2、c=5.7。你会看到一条平面盘旋很久、再猛地一翻的"过山车"轨道——形状变了,对初值敏感的脾气没变。

延伸方向:把同一套绘制管线用到别的系统

  • 算出差别的放大速度:每帧记录相邻两点的距离,画 ln(距离) 对时间的折线,斜率就是李雅普诺夫指数的近似,这是衡量混沌强度的标准量。
  • 复用solve_ivp+c2p+set_points_smoothly这条 3D 轨迹管线:换掉方程函数,就能画天体轨道、捕食者-猎物模型等任何 ODE 系统的相图。
  • 仓库里同门的例子:_2018/turbulence.py 做流场与湍流的可视化,_2015/ka_playgrounds/fluid_flow.py 演示对流类流场的演化,都和本文的例子同源。

【免费下载链接】videosCode for the manim-generated scenes used in 3blue1brown videos项目地址: https://gitcode.com/GitHub_Trending/vi/videos

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 10:33:23

Windows虚拟内存与OOM排查:从pagefile.sys到配置调优指南

我接过很多同事和网友的机器排查请求,十次里有三四次是同一个前奏:内存条明明还有空位,Windows 却弹“系统虚拟内存不足”,或者某个程序跑着跑着直接消失,事件日志里躺着一个大大的 OOM。再加内存条之前,建…

作者头像 李华
网站建设 2026/9/15 10:32:01

管状中空芯光纤拉制参数计算与Matlab标定方法

简介:面向光纤通信与特种光纤制备方向的Matlab计算资源,用于求解管状中空芯光纤拉制过程中的关键参数,帮助研究者与相关专业学生建立起从光纤结构到拉制条件的计算路径。代码采用参数化编程,用户可方便调整几何与工艺参数&#xf…

作者头像 李华
网站建设 2026/9/15 10:31:52

UI自动化测试选型生存指南:6大工具底层逻辑与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/15 10:29:38

房颤信号特征提取:从RR间期到样本熵的MATLAB实现全流程

简介:基于MATLAB的房颤信号特征提取项目,面向生物医学工程、信号处理专业的研究者与学生,围绕心电图(ECG)中房颤这一常见心律失常,系统实现从原始信号导入、滤波预处理、R波检测到特征参数提取与分类评估的…

作者头像 李华
网站建设 2026/9/15 10:29:26

DeepSeek Harness 技术详解:从入门到实践

摘要:本文系统介绍 DeepSeek Harness 这一面向大规模推理与模型评测的统一框架。文章从批量推理显存与并发管理、评测一致性和多任务维护等痛点出发,解析其“任务、数据集、模型适配器、推理引擎、评测器”的分层架构与配置驱动设计,并结合环…

作者头像 李华
网站建设 2026/9/15 10:28:52

网站建设单位有哪些方面?这份避坑指南帮你省10万

网站建设单位有哪些方面?这份避坑指南帮你省10万 网站上线三个月,后台流量曲线一条直线趴在零轴上,点击量只有个位数。你是不是觉得只要把网页做漂亮了,客户就会自动找上门?大错特错。很多老板花几万甚至几十万做的网站,最后变成“电子名片”,没人看、没人点、更没人咨询。这不仅是设计问题,更是选型和落地环节全…

作者头像 李华