1. Cantor三分集(Cantor Set)
Cantor三分集(Cantor Set)是一个被广泛研究的分形,由德国数学家乔治·康托(Georg Cantor)于19世纪末首次描述。它是通过对实数线段进行无限次迭代生成的一个点集。
生成Cantor三分集的步骤如下:
开始时,取实数线上的单位区间[0,1]。
在每个迭代步骤中,将每个线段分为三个等长的段,然后删除中间的那个段。
对剩下的每个线段重复进行步骤2。
在无穷多次迭代后,剩下的点集就是Cantor三分集。
Cantor三分集有一些有趣的性质:
它是一个无处稠密的集合,也就是说,它在任何区间内都是稀疏的。尽管我们进行了无穷多次迭代,但是Cantor三分集的总长度仍然是0。
尽管Cantor三分集可能看起来只包含了无穷多个孤立的点,但实际上它是一个非空的、完全的集合。这是因为在每次迭代中,所有的端点都被保留下来了,而这些端点在所有的迭代中会累积成一个连续的集合。
Cantor三分集是一个自相似的集合,也就是说,如果你放大Cantor三分集的任何一部分,你会看到和原始集合相同的结构。这是分形的一个重要特性。
Cantor三分集的分形维度可以通过以下公式计算:
这里,D表示分形维度,log表示自然对数。Cantor三分集的分形维度约为0.631,这表明它比一维线段复杂,但却没有达到二维平面的复杂性。
2.MATLAB代码
clear all;clc;close all;
n=10;% 迭代次数
% n is the number of iterations
% Initialize the figure
figure;
axis([0, 1, 0, n+1])
set(gca, 'YTick', [], 'XTick', []);
% Call recursive function
cantor_recursion(0, 1, n, n);
function cantor_recursion(x0, x1, y, n)
% Draw line segment
line([x0, x1], [y, y], 'Color', 'k', 'LineWidth', 2)
if n > 0
% Recurse on left and right segments
s = (x1 - x0)/3;
cantor_recursion(x0, x0+s, y-1, n-1)
cantor_recursion(x0+2*s, x1, y-1, n-1)
end
end
3.程序结果