课题标题:《简单分形几何图形的性质及作法研究》
分形(fractal)是一个粗糙或零碎的几何形状,
可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状,
即具有自相似的性质.
引入
分形是空间上的混沌,混沌是时间上的分形
1861 年,德国数学家魏尔施特拉斯(Karl Theodor Wilhelm Weierstraβ)发现了一个函数:
它的图像如下:
由于 Mathematica 求和无限级数出现提示无法收敛的情况,假定无限大为 1000,此处取a = 0.8
,b = 11
1 | Plot[Sum[0.8 ^ i * Cos[11 ^ i * Pi * x], {i, 0, 1000}], {x, -100, 100}] |
而且此函数不可导,这意味着它的每一个点都是拐点!这和当时人们认为万物可导的观点相悖,因此,分形几何学应运而生
弦图分形
想必大家都知道赵爽弦图,它的中央会有一个较小的正方形,如果我们在这个正方形中按照同样的比例绘制赵爽弦图,会怎么样呢?
(电脑性能缘故,此处迭代 50 次)
绘制工具:几何画板
科赫曲线
科赫曲线 (Koch snowflake) 是一种分形. 其形态似雪花,又称科赫雪花、雪花曲线.
其豪斯多夫维度是 $\log_34$ 维
生成方法
给定线段 AB,步骤如下
- 将线段分成三等份(AC, CD, DB)
- 以 CD 为底,向外(内外随意)画一个等边三角形 DMC
- 将线段 CD 移去
- 分别对 AC,CM,MD,DB 重复 1 ~ 3 的步骤.
面积公式
注:此处的面积指科赫曲线边缘围成的封闭图形的面积
首先,我们很容易得到边长为 a 的正三角形的面积公式:
每经过一次迭代,边数 N 变为原来的 4 倍,N 也是新增小正三角形的个数.
新增的小正三角形边长变为原来的 $\dfrac{1}{3}$
可得,迭代 n 次科赫曲线的面积为:
我们求其极限:
即科赫曲线面积为 $\dfrac{2}{5}\sqrt{3}a^2$
曼德勃罗集
“人类有史以来做出的最奇异,最瑰丽的几何图形”
曼德勃罗集(Mandelbrot)就是所有使得该式无限迭代后的结果能保持有限数值(即收敛)的复数 C 的集合
对于集合中的每一个元素,将其画在复平面上,可得曼德勃罗集的图形
以下为各种平台曼德勃罗集的画法
几何画板
录制耗时:4.5h,压缩耗时:2h,加速耗时:30min
最终结果如下
优点: 较为直观,不需要太深的计算机知识
缺点: 太慢了(gif 已经加速 10 倍了),若提速清晰度会降低,而且放大无法保证清晰度
C++
制作耗时:10min,运行耗时:≈0
优点: 速度极快,代码相对简单,后期上色处理容易
缺点: 清晰度不高,实现无限放大不易,有亿点丑(
Python
注:程序来自网络
运行耗时:10min(1000 × 1000), 30min(10000 × 10000)
内存消耗:未记录(1000 × 1000),3.5G(10000 × 10000)
使用 python 库 matplotlib 绘制图像,支持放大
优点: 速度较快,清晰度较高,支持放大
缺点: 耗电脑 CPU,若清晰度高,耗时无法接受,不能无限放大
Ultra Fractal
我用 Ultra Fractal 自带的曼德勃罗分形动画导出了视频
运行耗时:8h,压缩耗时:2h
压缩前视频大小:4G,压缩后视频大小:13MB
图片 & Gif
以下 gif 显示曼德勃罗集的各点对应的朱利亚集
视频
部分生成日志
1 | 2020/1/19 12:52:07: Starting job Mandelbrot Zoom. |
朱利亚集
朱利亚集合(Julia set)是一个在复平面上形成分形的点的集合.
以法国数学家加斯顿·朱利亚(Gaston Julia)的名字命名.
其迭代规则为:
其余规则和曼德勃罗集无异
引用 & 支持
Reference:
Proposer: @WXR
本文作者:Xecades
本文链接:https://blog.xecades.xyz/articles/fractal/
文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。
评论