Папоротник Барнсли

Папоротник Барнсли — фрактал, названный в честь британского математика Майкла Барнсли , который впервые описал его в своей книге «Фракталы повсюду» . [1] Он сделал его похожим на черную селезенку Asplenium adiantum-nigrum .
История [ править ]
Папоротник является одним из основных примеров самоподобных множеств, т.е. это математически созданный узор, который можно воспроизвести при любом увеличении или уменьшении. Подобно треугольнику Серпинского , папоротник Барнсли показывает, как графически красивые структуры могут быть построены путем многократного использования математических формул с помощью компьютеров. Книга Барнсли 1988 года «Фракталы повсюду» , который он преподавал студентам и аспирантам Школы математики Технологического института Джорджии основана на курсе « Фрактальная геометрия» . После публикации книги был разработан второй курс, получивший название «Теория фрактальной меры» . [1] Работы Барнсли были источником вдохновения для художников-графиков, пытающихся имитировать природу с помощью математических моделей.
Код папоротника, разработанный Барнсли, является примером системы итерированных функций (IFS) для создания фрактала. Это следует из теоремы о коллаже . Он использовал фракталы для моделирования широкого спектра явлений. в науке и технике, но особенно в растительных структурах.
IFS предоставляют модели для определенных растений, листьев и папоротников благодаря самоподобию, которое часто встречается в ветвящихся структурах в природе. Но природа также демонстрирует случайность и вариации от одного уровня к другому; нет двух одинаковых папоротников, и ветвящиеся листья превращаются в листья меньшего размера. Фракталы с V-переменной допускают такую случайность и изменчивость в разных масштабах, но в то же время допускают непрерывную зависимость от параметров, что облегчает геометрическое моделирование. Эти факторы позволяют нам создавать гибридные биологические модели... ... мы предполагаем, что когда обнаруживается геометрическая фрактальная модель с V-переменной, которая хорошо соответствует геометрии данного растения, тогда возникает определенная связь между этими кодовыми деревьями и информацией, хранящейся в генах растения.
—Майкл Барнсли и др. [2]
Строительство [ править ]

Папоротник Барнсли использует четыре аффинных преобразования . Формула одного преобразования следующая:
Барнсли показывает код IFS для своего фрактала папоротника черной селезенки в виде матрицы значений, представленных в таблице. [3] В таблице столбцы от « a » до « f » представляют собой коэффициенты уравнения, а « p » представляет собой коэффициент вероятности.
В а б с д и ж п Созданная порция ж 1 0 0 0 0.16 0 0 0.01 Корень ff2 0.85 0.04 −0.04 0.85 0 1.60 0.85 Листовки последовательно меньшего размера f 3 0.20 −0.26 0.23 0.22 0 1.60 0.07 Самый большой левый буклет ж 4 −0.15 0.28 0.26 0.24 0 0.44 0.07 Самый большой правый буклет
Им соответствуют следующие преобразования:
Поколение компьютеров [ править ]
Хотя папоротник Барнсли теоретически можно нарисовать вручную с помощью ручки и миллиметровой бумаги, количество необходимых итераций исчисляется десятками тысяч, что делает использование компьютера практически обязательным. Множество различных компьютерных моделей папоротника Барнсли популярны среди современных математиков. Если математические вычисления правильно запрограммированы с использованием матрицы констант Барнсли, будет получена та же форма папоротника.
Первая нарисованная точка находится в начале координат ( x 0 = 0, y 0 = 0 ), а затем новые точки итеративно вычисляются путем случайного применения одного из следующих четырех преобразований координат: [4] [5]
- ж 1
- х п + 1 = 0
- у н + 1 = 0,16 у н
Это преобразование координат выбирается в 1% случаев и просто сопоставляет любую точку с точкой в первом сегменте линии у основания стебля. При итеративной генерации он действует как сброс к основанию стебля. Важно отметить, что он не сбрасывается точно на (0,0), что позволяет ему заполнить базовый стебель, который транслируется и служит своего рода «ядром», из которого генерируются все остальные части папоротника посредством преобразований f 2 , f 3 , ф 4 .
- ff2
- х п + 1 = 0,85 х п + 0,04 у н
- y n + 1 = −0,04 x n + 0,85 y n + 1,6
Это преобразование кодирует отношение самоподобия всего папоротника с подструктурой, состоящей из папоротника, с удалением части, включающей два нижних листа. В матричном представлении это можно увидеть как небольшое вращение по часовой стрелке, немного уменьшенное и сдвинутое в положительном направлении y . При итеративной генерации это преобразование применяется с вероятностью 85% и интуитивно отвечает за генерацию основного стебля и последующую вертикальную генерацию листьев по обе стороны стебля из их «исходных» листьев у основания.
- f 3
- х п + 1 = 0,2 х п - 0,26 у н
- у н + 1 = 0,23 х п + 0,22 у н + 1,6
Это преобразование кодирует самоподобие всего папоротника с нижним левым листом. В матричном представлении это выглядит как вращение против часовой стрелки почти на 90°, уменьшенное примерно до 30% размера с перемещением в положительном направлении y . При итеративной генерации он применяется с вероятностью 7% и интуитивно отвечает за генерацию нижнего левого листа.
- ж 4
- x n + 1 = −0,15 x n + 0,28 y n
- у н + 1 = 0,26 х п + 0,24 у н + 0,44
Точно так же это преобразование кодирует самоподобие всего папоротника с нижним правым листом. Судя по его определителю, легко увидеть, что оно включает в себя отражение, и его можно рассматривать как преобразование, аналогичное преобразованию f 3, хотя и с отражением относительно оси y . При итеративной генерации он применяется с вероятностью 7% и отвечает за генерацию нижнего правого листа.
Мутантные сорта [ править ]
Играя с коэффициентами, можно создать мутантные сорта папоротников. В своей статье о фракталах с V-переменной Барнсли называет эту особенность суперфракталом . [2]
Один экспериментатор разработал таблицу коэффициентов, позволяющую получить еще один удивительно естественно выглядящий папоротник, напоминающий папоротник Cyclosorus или Thelypteridaceae . Это: [6] [7]
В а б с д и ж п ж 1 0 0 0 0.25 0 −0.4 0.02 ff2 0.95 0.005 −0.005 0.93 −0.002 0.5 0.84 f 3 0.035 −0.2 0.16 0.04 −0.09 0.02 0.07 ж 4 −0.04 0.2 0.16 0.04 0.083 0.12 0.07
Псевдокод [ править ]
draw all pixels on screen white
x = 0.0
y = 0.0
t = 0.0
xn = 0.0
yn = 0.0
while t < maximum iterations:
r = random() between 0 and 1
if r < 0.01:
xn = 0.0
yn = 0.16 * y
else if r < 0.86:
xn = 0.85 * x + 0.04 * y
yn = -0.04 * x + 0.85 * y + 1.6
else if r < 0.93:
xn = 0.2 * x - 0.26 * y
yn = 0.23 * x + 0.22 * y + 1.6
else:
xn = -0.15 * x + 0.28 * y
yn = 0.26 * x + 0.24 * y + 0.44
draw green pixel on screen at (xn, yn)
x = xn
y = yn
increment t
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б Фракталы повсюду , Бостон, Массачусетс: Academic Press, 1993, ISBN 0-12-079062-9
- ^ Jump up to: Перейти обратно: а б Майкл Барнсли и др. , " "V-переменные фракталы и суперфракталы" " (PDF) . (2,22 МБ)
- ^ Fractals Everywhere , таблица III.3, код IFS для папоротника.
- ^ Барнсли, Майкл (2000). Фракталы повсюду . Морган Кауфманн. п. 86. ИСБН 0-12-079069-6 . Проверено 7 января 2010 г.
- ^ Вайсштейн, Эрик. «Папоротник Барнсли» . Проверено 7 января 2010 г.
- ^ Другие сорта папоротников с указанными коэффициентами.
- ^ Генератор папоротника Барнсли