DLA 扩散受限聚集模型分形图形生成系统
本系统是一款基于 MATLAB 环境开发的科学计算与可视化工具,旨在模拟自然界中经典的扩散受限聚集(Diffusion-Limited Aggregation, DLA)物理现象。通过离散网格步进与布朗运动模拟,系统能够生成具有复杂树枝状自相似特征的分形结构,并提供精确的分形维数定量分析功能。
项目介绍
DLA 模型由 Witten 和 Sander 提出,用于描述粒子在随机运动中撞击并粘附于固定核心形成聚集体的过程。本系统通过构建一个 2D 网格空间,模拟大量粒子从外围释放后进行四邻域随机游走。当粒子接触到已有的聚集体时,根据粘附概率固定。这一过程模拟了诸如金属沉积、晶体生长、电介质击穿等多种自然现象。系统不仅支持动态生长过程的可视化,还内置了基于盒计数法(Box-counting)的数学分析模块,用于研究分形结构的几何特性。
功能特性
- 动态生长模拟:系统提供实时的生长可视化界面,用户可以通过动态更新的图像直接观察分形结构从中心点向周围缓慢扩张的演化过程。
- 布朗运动仿真:模拟粒子在 2D 空间内的四邻域(上、下、左、右)随机游走动力学。
- 智能边界控制:系统根据当前聚集体的最大半径(rmax)动态调整粒子的释放位置(Spawn Radius)和消失边界(Kill Radius),极大优化了模拟效率。
- 分形维数定量分析:模拟结束后,系统会自动通过盒计数法计算聚集体的分形维数,并绘制双对数坐标下的线性拟合曲线。
- 多参数可调性:允许用户调整网格分辨率、粒子总数、粘附概率以及可视化更新频率,方便探索不同物理因素对最终形态的影响。
- 科学统计展示:最终会生成模拟报告,包含总粒子数、最大生长半径以及分形维数 Df 等核心科学指标。
使用方法
- 环境准备:启动 MATLAB 环境,并确保已安装图像处理工具箱(Image Processing Toolbox,用于
blockproc 函数)。 - 参数配置:在代码顶部的参数设置区域,根据模拟需求修改网格大小(gridSize)、粒子上限(maxParticles)及粘附概率(stickProb)。
- 执行仿真:直接运行主脚本。系统将弹出交互窗口,并在黑色背景上实时显示粉紫色的分形生长动态。
- 结果解读:
* 生长过程中,标题会实时更新当前状态。
* 生成结束后,系统会自动弹出第二个分析窗口。
* 分析窗口左侧显示最终的聚集体全景(Jet 色系),右侧显示盒计数法的线性回归图。
* MATLAB 命令行会输出最终的模拟报告,包括准确的分形维数值。
系统逻辑与实现细节
1. 初始化阶段
系统首先创建一个全 0 矩阵作为物理空间,并在矩阵正中心设置值为 1 的种子点。同时设置动态半径控制变量,确保粒子释放点随聚集体增大而同步外扩,减少粒子在空白区域的无效游走时间。
2. 粒子释放与游走逻辑
- 释放:粒子在半径为
spawnRadius = rmax + 5 的圆周上随机产生。 - 移动:粒子进行四向随机步进。若粒子坐标超出
killRadius 或触碰到网格最外层边缘,则该粒子被判定为逃逸并销毁,重新释放新粒子。 - 碰撞检测:每一游走步骤后,程序检查粒子当前坐标 3x3 邻域(8 邻域)的状态。如果邻域内存在已粘附粒子且满足
stickProb 概率,则当前粒子固定。
3. 动态扩展与优化
每当有粒子粘附,系统会对比更新当前最大半径
rmax。可视化模块不会每一帧更新,而是根据
visualUpdateFreq 参数设定的步长进行间歇性刷新,以平衡绘图性能与观察连续性。
4. 盒计数法(Box-dimension)算法实现
此模块是系统的核心数学引擎:
- 数据预处理:自动裁剪图像中的空白边缘,并将其补齐为 2 的幂次方正方形矩阵。
- 多尺度覆盖:利用
blockproc 函数,以不同尺寸 $s$ 的盒子(2 的指数级增长)覆盖图像。 - 统计与拟合:统计每个尺度下包含聚集体的非空盒子数量 $N$,并将 $log(1/r)$ 与 $log(N)$ 进行线性拟合,拟合直线的斜率即为分形维数 $D_f$。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 可选工具箱:Image Processing Toolbox(用于加速盒计数法的块处理操作)。
- 硬件建议:由于 DLA 模拟涉及大量循环运算,建议在具备 8GB 以上内存的计算机上运行。当粒子数超过 10,000 时,由于随机游走扩散特性的限制,计算时间将显著增长。