Самоподобие и размерность Хаусдорфа
У фрактала может быть «полтора измерения» — и это строгое, вычислимое число.
Самоподобие — свойство фигуры состоять из уменьшенных копий самой себя.
Отрезок, квадрат, куб имеют размерность 1, 2, 3 — целые числа. Но что сказать про снежинку Коха, которая бесконечно изрезана, или про канторово множество, состоящее из «пыли» точек? Они слишком сложны для линии, но не заполняют плоскость. Им нужна дробная размерность, и придумать её помогает идея самоподобия.
Размерность через копии и масштаб
Разрежем отрезок на части, уменьшив масштаб в $s$ раз. Получим $N = s$ копий. Квадрат при уменьшении стороны в $s$ раз распадается на $N = s^2$ копий, куб — на $N = s^3$. Видна закономерность: $N = s^D$, где $D$ — размерность. Логарифмируя, получаем формулу размерности самоподобия (Хаусдорфа для самоподобных множеств):
$$D = \frac{\ln N}{\ln s}.$$
Здесь $N$ — число копий, $s$ — во сколько раз уменьшен масштаб. Для обычных фигур $D$ выходит целым, а для фракталов — дробным.
Считаем размерности фракталов
from math import log
def dimension(N, s):
return log(N) / log(s)
examples = [
("Отрезок", 2, 2), # 2 копии при масштабе 2
("Квадрат", 4, 2), # 4 копии при масштабе 2
("Куб", 8, 2), # 8 копий при масштабе 2
("Канторова пыль", 2, 3), # 2 копии при масштабе 3
("Снежинка Коха", 4, 3), # 4 копии при масштабе 3
("Треугольник Серпинского", 3, 2), # 3 копии при масштабе 2
]
for name, N, s in examples:
print(f"{name:<24} N={N}, s={s} -> D={dimension(N, s):.4f}")
Вывод:
Отрезок N=2, s=2 -> D=1.0000 Квадрат N=4, s=2 -> D=2.0000 Куб N=8, s=2 -> D=3.0000 Канторова пыль N=2, s=3 -> D=0.6309 Снежинка Коха N=4, s=3 -> D=1.2619 Треугольник Серпинского N=3, s=2 -> D=1.5850
Как работает под капотом
Дробная размерность измеряет, насколько «изрезанно» фигура заполняет пространство. Канторово множество ($D \approx 0{,}63$) — между точкой (0) и линией (1): оно «больше» набора точек, но «меньше» отрезка. Снежинка Коха ($D \approx 1{,}26$) — линия, которая «не помещается» в одно измерение: она настолько кривая, что начинает претендовать на кусочек плоскости. Треугольник Серпинского с $D \approx 1{,}585$ заполняет плоскость ещё активнее. Логарифмы в формуле берут на себя всю работу: они переводят «число копий на масштаб» в показатель степени.
Частые ошибки
Не путайте $N$ (число копий) и $s$ (масштаб уменьшения) местами — формула несимметрична. Не считайте, что размерность обязана быть меньше единицы: у Серпинского она больше единицы. И помните: эта формула работает именно для строго самоподобных множеств; для общих фракталов размерность Хаусдорфа определяется тоньше, через покрытия.
Итог
- Самоподобие: фигура состоит из уменьшенных копий себя.
- Размерность самоподобия: $D = \dfrac{\ln N}{\ln s}$.
- Для обычных фигур $D$ целое, для фракталов — дробное.
- $D$ показывает, насколько плотно фрактал заполняет пространство.