使用Genie应用对曼德尔布罗集进行交互式可视化
引言
曼德尔布罗集是最著名的分形之一,最早由法国数学家皮埃尔·法图(Pierre Fatou)和加斯顿·朱利亚(Gaston Julia)于20世纪初进行研究,但因贝诺伊特·曼德尔布罗(Benoit Mandelbrot)在20世纪70年代和80年代的研究而广为人知。 这是复平面上的一组点,当 时,迭代过程 的结果始终有界。
从数学上讲,曼德尔布罗集的定义如下。对于每个复数c,考虑以下数列:
其中:
* — 迭代过程中的当前值,通过公式 逐步计算得出。
* — 待研究的复数(复平面上一点的坐标,用于检验该点是否属于曼德尔布罗集)。
* — 当前迭代次数,表示计算过程中已进行的步数。
如果当 在 时仍处于有界状态(不超过 ),则点c属于曼德尔布罗集。实际上,我们通常将迭代次数限制在有限范围内,并在给定步数内,若数列未超出半径圆的范围,则认为该点属于该集。 。
该集的结构以其复杂性和无穷的细节而引人注目:主心形、肾形圆,以及沿边界分布的无数“丝状结构”和“花粉状结构”。 随着放大倍数的增加,会显现出越来越多与基本形状相似的新结构——这种自相似性是分形的一个典型特征。该集合已成为分形几何学的经典范例,并被广泛应用于数学、物理、计算机图形学乃至艺术领域。
本应用程序实现了一个交互式的曼德尔布罗集浏览器。通过更改初始参数,您可以实时探索该分形,在复平面上导航,放大感兴趣的区域,并观察该集边界的无限复杂性。 不同的配色方案可让您直观地看到点发散的程度——即超过阈值所需经过的迭代次数。
启动应用程序
该应用程序的脚本位于文件mandelbrot.jl 中。启动应用程序,并在新的浏览器标签页中打开它。
genie_app = engee.genie.start("$(@__DIR__)/mandelbrot.jl")
display("text/html", """<a href="$(string(genie_app.url))" target="_blank">Open in a new tab</a>""")
该应用程序是一个用于研究分形结构的数学显微镜的数字模型。
通过调整控制面板上的参数,您可以控制可视化设置:
-
坐标轴的尺寸决定了最终图像的分辨率,并允许您根据屏幕尺寸(即水平和垂直方向的像素数)进行优化。
-
迭代次数 设定了最大计算深度——该数值越高,集合边界上的精细结构就越清晰。
-
中心坐标 允许您在复平面上移动,从而选择要探索的区域。
-
缩放 可放大或缩小图像,让您以不同细节级别观察分形。
-
配色方案 决定了发散前迭代次数的显示方式,范围从单色到彩虹色盘。
请观察:当您接近集合边界时,会发现越来越多的新细节逐渐显现,基本形状在无尽的递归中不断重复。色彩渐变将帮助您观察迭代过程动态的各个方面。
将光标移至图像右上角并点击相机图标,即可保存该分形图像。
.png)
使用完毕后,请关闭该应用程序。
engee.genie.stop("$(@__DIR__)/mandelbrot.jl");
结论
本应用程序是一款用于研究现代数学中最著名对象之一的数字工具。此类虚拟实验室使您无需自行编写可视化程序,即可学习分形几何。 通过建模复平面的各个区域并调整计算参数,用户可以实验性地探索分形的特性:自相似性、无限细节和边界复杂性。该应用程序可作为分形几何、动力系统理论和复分析的教材。 Engee与Genie的结合,为创建交互式教学资源开辟了新途径,使抽象的数学概念得以可视化,并让广大受众能够轻松理解。