分形、递归与计算机科学

【“皮亚诺曲线”是什么?用一根线填满正方形,它是一维还是二维?】 https://www.bilibili.com/video/BV1pg4y1Q7Vq/?share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d

希尔伯特曲线

皮亚诺曲线,或者希尔伯特曲线,希尔伯特曲线(Hilbert Curve)有一个更形式化的定义,它可以通过四个基本变换函数来构建。但在这里,我将简化其概念性表述,而不提供完整的数学公式:

希尔伯特曲线的一阶变换可以理解为:

将正方形分割成4个小正方形。
对每个小正方形内的点按特定顺序进行排列和转换。

简单说,希尔伯特曲线可以用来填满正方形

cv 领域运用还是比较广泛的

【希尔伯特曲线:无限数学怎样应用于有限世界(中英字幕)】 https://www.bilibili.com/video/BV1os411B7Hw/?share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d

豪斯多夫维数

豪斯多夫维数(Hausdorff Dimension)是一种描述集合或几何对象空间结构复杂度的数学概念,尤其在处理非整数维度和分形结构时非常有用。它是对传统欧几里得维度概念的一种扩展。

维数不一定要是整数

科赫雪花曲线
豪斯多夫维数却是log(4)/log(3)≈1.26

豪斯多夫从物体的自相似性出发定义维度,一个图形是由许多与自身相似的部分组成的。

曼德勃罗与分形几何

import numpy as np
import matplotlib.pyplot as plt

# 定义计算单个点是否属于曼德勃罗集合的函数
def is_mandelbrot(c, max_iter=256):
    z = 0
    for n in range(max_iter):
        z = z**2 + c
        if abs(z) > 2:
            return n
    return max_iter

# 设置图像的分辨率和复平面上需要计算的区域
width, height = 800, 800
x_min, x_max = -2, 1
y_min, y_max = -1.5, 1.5

# 创建网格坐标并计算每个点对应的迭代次数
X, Y = np.meshgrid(np.linspace(x_min, x_max, width), np.linspace(y_min, y_max, height))
C = X + Y * 1j
iterations = np.vectorize(is_mandelbrot)(C)

# 使用迭代次数生成颜色映射
plt.imshow(iterations.T, cmap='magma', extent=[x_min, x_max, y_min, y_max])

# 显示图形
plt.xlabel("Re(c)")
plt.ylabel("Im(c)")
plt.title("Mandelbrot Set")
plt.colorbar(label="Iterations to Escape")
plt.show()

大致了解 mandelbrot set 的图案是什么样子就行,具体背后的算法就不去深究了。

分形概念

分形的概念:
分形(Fractal)是一个在几何学和数学中描述自相似性、不规则性和复杂性的概念。它是指一种几何形态,这种形态在不同尺度上具有重复的结构模式,即整体与部分之间在某种程度上相似。简单来说,分形就是“局部类似全局”的形状,当你放大它的任何一部分时,都会发现这一部分与整个图形有着相似的结构特征。

在自然界和人造世界中都能找到分形的例子,如云朵的边缘、海岸线、植物的分支系统、血管分布以及金融市场波动等都显示出不同程度的分形特征。由于分形理论能够描述自然界中普遍存在的复杂细节和不规则性,因此被广泛应用于物理学、生物学、地理学、计算机科学以及艺术创作等多个领域。

简单说:分形现象在生活中非常常见,尤其是在生物学中。

分形与计算机科学

这里只需要知道分形同递归recursion的关系即可:
分形与递归的关联:

构造分形图形:许多分形图形如科赫曲线、谢尔宾斯基三角形等都是通过递归算法实现的。在每次递归调用时,算法将大的图形细分为若干个按照特定规则排列和变换的小图形,这些小图形往往就是原图形的缩小版或者变形版,从而实现了分形的自我相似性。
描述自然界的分形现象:自然界中的很多现象如海岸线、山脉轮廓、雪花结构等都具有分形属性,可以用递归来模拟这些结构的增长和迭代过程。
数学模型:在数学上,分形的生成方程和迭代公式常常采用递归形式来表达。递归函数能够简洁而有效地捕捉到分形内在的循环和重复构造机制。

相关推荐

intel 8086 asm 基础1

1.进入debug模式 r 查看 2. mov指令测试 指令以CS:IP 格式进行读取,后跟8086 asm实 ...

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。