Фракталы в природе
Андрей Игонин
Изучая разнообразные геометрические фигуры на уроках математики, я задумался о том, что мир вокруг нас мало представлен подобными фигурами. А как же описать с точки зрения математики все природное разнообразие, которое мы ежедневно наблюдаем? Так я впервые узнал о понятии «фрактал». Понятия «фрактал» и «фрактальная геометрия» появились в 70-80-х годах прошлого века и прочно вошли в обиход математиков и программистов. Слово фрактал образовано от латинского «fractus», что переводится как «состоящий из фрагментов». Оно было предложено Бенуа Мандельбротом в 1975 году для обозначения нерегулярных самоподобных структур, изучением которых он занимался. Рождение фрактальной геометрии принято связывать с выходом в 1977 г. книги Мандельброта «The Fractal Geometry of Nature». В ней он впервые заговорил о фрактальной природе нашего многомерного мира. Существует большое число математических объектов, называемых фракталами (треугольник Серпинского, снежинки Коха, кривая Пеано, множество Мандельброта и др.). Фракталы с большой точностью описывают многие физические явления и образования реального мира: горы, облака, турбулентные (вихревые) течения, корни, ветки и листья деревьев, кровеносные сосуды и т.д. Роль фракталов в компьютерной графике на сегодняшний день достаточна велика. Они позволяют нам легко представить сложные объекты, похожие на природные, создавать различные модели миров, стереокартинки и многое другое. В своей проектной работе я хотел бы подробнее узнать о фракталах и о возможности их применения в компьютерной графике.

Теоретическая часть исследовательской работы
Что такое фрактал?
Термин «фрактал» ввел Бенуа Мандельброт (от лат. fractus — дроблёный, сломанный, разбитый). Определение фрактала, данное Мандельбротом, звучит так: «Фракталом называется структура, состоящая из частей, которые в каком-то смысле подобны целому». Сегодня под словом «фрактал» чаще всего принято подразумевать графическое изображение структуры, которая в более крупном масштабе подобна сама себе. Фракталы задаются простым правилом, но позволяют создавать очень сложные структуры. Это настолько эффективно, что было взято на вооружение природой! Например, снежинка, ветви деревьев, молнии, горы, кровеносные система – всё это представляет собой фракталы. В математике фрактал – математическое множество, обладающее свойством самоподобия, то есть однородности в различных шкалах измерения (любая часть фрактала подобна всему множеству целиком). Физическая энциклопедия (1998) определяет фракталы как множества с крайне нерегулярной разветвленной или изрезанной структурой.
Слово «фрактал» употребляется не только в качестве научного термина. Фракталом может называться предмет или геометрическая фигура, обладающие, по крайней мере, одним из указанных ниже свойств:
• обладает нетривиальной структурой на всех масштабах – то есть один и тот же фрагмент фигуры повторяется при каждом уменьшении или увеличении масштаба. В этом отличие фрактала от элементарных геометрических фигур (таких как окружность, эллипс или квадрат): если мы рассмотрим небольшой фрагмент такой фигуры в очень крупном масштабе, то он будет похож на фрагмент прямой. Для фрактала увеличение масштаба не ведёт к упрощению структуры, то есть на всех шкалах мы увидим одинаково сложную картину;
• является самоподобным или приближённо самоподобным – то есть фигура содержит в себе элементы, подобные целой фигуре. Простым примером фрактала может служить дерево, ствол которого разделен на две ветви, каждая из которых, в свою очередь, разделяется на две более мелкие ветви и т. д. В результате мы будем иметь древовидный фрактал с бесконечным числом ветвей. Каждую отдельную ветвь можно, в свою очередь, рассматривать как отдельное дерево.
Выделяют несколько разновидностей фракталов: геометрические, алгебраические и стохастические.

Примеры фракталов в природе
Геометрические фракталы
Фракталы этого класса самые наглядные. Некоторые предпочитают называть эти фракталы классическими, детерминированными или линейными. Эти фракталы являются самыми наглядными. Они обладают так называемой жесткой самоподобностью, не изменяющейся при изменении масштаба. Это значит, что, независимо от того, насколько вы приближаете фрактал, вы видите все тот же узор. В двухмерном случае их получают с помощью некоторой ломаной (или поверхности в трехмерном случае), называемой генератором. За один шаг алгоритма каждый из отрезков, составляющих ломаную, заменяется на ломаную-генератор, в соответствующем масштабе. В результате бесконечного повторения этой процедуры, получается геометрический фрактал.
Рассмотрим один из таких фрактальных объектов – триадную кривую Коха. Построение кривой начинается с отрезка единичной длины (рис.1) – это 0-е поколение кривой Коха. Далее каждое звено (при n=0 один отрезок) заменяется на образующий элемент, обозначенный на рис.1 через n=1. В результате такой замены получается следующее поколение кривой Коха. В 1-ом поколении – это кривая из четырех прямолинейных звеньев, каждое длиной по 1/3. Для получения 3-го поколения проделываются те же действия – каждое звено заменяется на уменьшенный образующий элемент. Итак, для получения каждого последующего поколения, все звенья предыдущего поколения необходимо заменить уменьшенным образующим элементом. На рис.1 представлены четыре поколения кривой. При n стремящемся к бесконечности кривая Коха становится фрактальным объектом.

Рис. 1. Построение триадной кривой Коха
Для получения другого фрактального объекта (рис.2) нужно изменить правила построения. Пусть образующим элементом будут два равных отрезка, соединенных под прямым углом. В нулевом поколении заменим единичный отрезок на этот образующий элемент так, чтобы угол был сверху. Можно сказать, что при такой замене происходит смещение середины звена. При построении следующих поколений выполняется правило: самое первое слева звено заменяется на образующий элемент так, чтобы середина звена смещалась влево от направления движения, а при замене следующих звеньев, направления смещения середин отрезков должны чередоваться. На рис.2 представлены несколько первых поколений и 11-е поколение кривой, построенной по вышеописанному принципу. Предельная фрактальная кривая (при n стремящемся к бесконечности) называется драконом Хартера-Хейтуэя.

Рис. 2. Построение "дракона" Хартера-Хейтуэя
Для построения треугольника Серпинского начальный элемент – треугольник со всеми внутренними точками. Образующий элемент исключает из него центральный треугольник. На рис.3 показаны пять поколений предфракталов. Фрактальное множество получается в пределе при бесконечно большом числе.

Рис. 3. Построение треугольника Серпинского
Представленные примеры геометрических фракталов не являются единственными, существует огромное количество других, еще более сложных и интересных фракталов. Геометрические фракталы имеют огромное практическое значение. Применяя их в компьютерной графике, ученые научились получать сложные объекты, похожие на природные: изображения снежинок, горных вершин, искусственных облаков, деревьев, кустов, веток, береговой линии и так далее. Двухмерные геометрические фракталы используются для создания объемных текстур.
Алгебраические фракталы
Эти фракталы могут быть описаны с помощью алгебраических уравнений или рекурсивных формул. Эти уравнения и формулы определяют правила, по которым точки или фигуры повторяются и изменяются на каждой итерации.
Алгебраические фракталы могут иметь сложную и красивую геометрию, которая может быть воспроизведена и визуализирована с помощью компьютерной графики. Они могут быть двухмерными или трехмерными, и их формы могут быть симметричными или случайными.
Алгебраические фракталы имеют множество применений в различных областях, включая компьютерную графику, науку, искусство и дизайн. Они могут быть использованы для создания красивых и сложных изображений, моделирования природных явлений, анализа данных и многого другого.
Основной метод представляет собой многократный (итерационный) расчет функции Zn+1=f(Zn), где Z - комплексное число, а f - некая функция. Комплексное число - это число, состоящее из двух частей - действительной и мнимой, и обозначается оно a+b∙i. Действительная часть a - это обычное число в нашем представлении, а вот мнимая часть b∙i интересней. i называют мнимой единицей. Почему мнимой? А потому, что i 2 = -1. Комплексные числа можно складывать, вычитать, умножать, делить, возводить в степень и извлекать корень, нельзя только их сравнивать. Комплексное число можно изобразить как точку на плоскости, у которой координата х - это действительная часть a, а y - это коэффициент при мнимой части b. Расчет данной функции продолжается до выполнения определенного условия. И когда это условие выполнится - на экран выводится точка определенного цвета. Результатом оказывается странная фигура, в которой прямые линии переходят в кривые, появляются, хотя и не без деформаций, эффекты самоподобия на различных масштабных уровнях. При этом вся картина в целом является непредсказуемой и очень хаотичной. Неожиданностью для математиков стала возможность с помощью примитивных алгоритмов порождать очень сложные нетривиальные структуры. Вот несколько примеров алгебраических фракталов:
Множество Мандельброта – это один из самых известных алгебраических фракталов. Он создается путем итеративного применения простой математической формулы к каждой точке на комплексной плоскости. Результатом является изображение, которое состоит из бесконечного количества деталей и самоподобных структур.
Фрактал Жюлиа – это еще один пример алгебраического фрактала, который создается с помощью итеративного применения формулы к каждой точке на комплексной плоскости. Он имеет разнообразные формы и структуры, которые зависят от выбранной формулы и параметров.
Бассейны Ньютона также являются примерами алгебраических фракталов. Области с фрактальными границами появляются при приближенном нахождении корней нелинейного уравнения алгоритмом Ньютона на комплексной плоскости (для функции действительной переменной метод Ньютона называют методом касательных, который обобщается для комплексной плоскости).
Алгебраические фракталы обладают приближенной самоподобностью. Фактически, если вы увеличите маленькую область любого сложного фрактала, а затем проделаете то же самое с маленьким участком этой области, то эти два увеличения будут значительно отличаться друг от друга. Два изображения будут очень похожи в деталях, но они не будут полностью идентичными.
Множество Жюлиа́
Множество Мандельброта
Бассе́йны Нью́тона, фракталы Ньютона
Стохастические фракталы
Стохастические фракталы Термин «стохастичность» происходит от греческого слова, обозначающего «предположение». Фракталы, при построении которых в итеративной системе случайным образом изменяются какие-либо параметры, называются стохастическими. Типичный представитель данного класса фракталов – «плазма». Для ее построения возьмем прямоугольник и для каждого его угла определим цвет. Далее находим центральную точку прямоугольника и раскрашиваем ее в цвет равный среднему арифметическому цветов по углам прямоугольника плюс некоторое случайное число. Чем больше случайное число - тем более «рваным» будет рисунок. Стохастическим природным процессом является броуновское движение. С помощью компьютера такие процессы строить достаточно просто: надо просто задать последовательности случайных чисел и настроить соответствующий алгоритм.
Двумерные стохастические фракталы используются при моделировании рельефа местности и поверхности моря, процесса электролиза. При этом получаются объекты, очень похожие на природные – несимметричные деревья, изрезанные береговые линии и так далее. С помощью алгоритма, похожего на плазму строится карта высот.

Плазма
Практическая часть исследовательской работы
Как программировать фракталы?
Изучив фракталы в теории, мне стало интересно, как это работает на практике? Я решил начать построение простых геометрических фракталов с помощью языка программирования Лого. Черепашья графика позволяет наглядно представить геометрические фракталы. Мне удалось сделать такие общеизвестные фракталы, как треугольник Серпинского, ковёр Серпинского, снежинка Коха, а также придумать свой собственный фрактал, работающий по аналогичному алгоритму - "Плюсы". Результаты моей работы в виде графических изображений (серии картинок с усложнением после каждой итерации) и алгоритмов представлены ниже.
Алгоритмы построения геометрических фракталов на ЛОГО
Программные коды
Треугольник Серпинского
сг пр 30
это Треугольник_Серпинского :a :r
по если :r > 0 [ повтори 3 [ вп :a пр 120 Треугольник_Серпинского :a / 2 :r - 1] ]
конец

Снежинка Коха
это Снежинка_Коха :a :r
сг по повтори 3 [ снежиночка_коха :a :r пр 120 ]
конец

это снежиночка_коха :a :r
если_иначе :r > 1 [ снежиночка_коха :a / 2 :r - 1 лв 60 снежиночка_коха :a / 2 :r - 1 пр 120 снежиночка_коха :a / 2 :r - 1 лв 60 снежиночка_коха :a / 2 :r - 1 ] [ снежиночка :a ]
конец

это снежиночка :a
пр 90 вп :a лв 60 вп :a пр 120 вп :a лв 60 вп :a лв 90
конец

Ковёр Серпинского
это Ковер_Серпинского :a :r
сг по ковер_серпинскога2 :a :r
конец

это ковер_серпинского2 :a :r
если_иначе :r > 1 [ по
ковер_серпинского2 :a / 3 :r - 1 пр 90 вп :a / 3 лв 90
ковер_серпинского2 :a / 3 :r - 1 пр 90 вп :a / 3 лв 90
ковер_серпинского2 :a / 3 :r - 1 лв 90 вп :a / 3 * 2 пр 90
вп :a / 3 ковер_серпинского2 :a / 3 :r - 1 пр 90 вп :a / 3 * 2 лв 90
ковер_серпинского2 :a / 3 :r - 1 лв 90 вп :a / 3 * 2 пр 90
вп :a / 3 ковер_серпинского2 :a / 3 :r - 1 пр 90 вп :a / 3 лв 90
ковер_серпинского2 :a / 3 :r - 1 пр 90 вп :a / 3 лв 90
ковер_серпинского2 :a / 3 :r - 1 лв 90 вп :a / 3 * 2 пр 90 нд :a / 3 * 2 ] [ ковер :a ]
конец

это ковер :a
пп вп :a / 3 по повтори 2 [ нк 0 пр 90 вп :a нд :a лв 90 вп :a / 3 ] пр 90 повтори 2 [ вп :a / 3 пр 90 вп :a нд :a лв 90 ] вп :a / 3 пр 90 вп :a пр 90 вп :a пр 90 вп :a нд :a
конец

Плюсы
это плюсы :a :r
сг по
плюсики :a :r
конец

это плюсики :a :r
по
плюс :a
если :r > 1 [ пп лв 90 вп :a - :a / 2.5 пр 90 вп :a - :a / 2.5 по плюсики :a / 2.5 :r - 1 пр 90 пп вп ( :a - :a / 2.5 ) * 2 по плюсики :a / 2.5 :r - 1 пр 90 пп вп ( :a - :a / 2.5 ) * 2 по плюсики :a / 2.5 :r - 1 пр 90 пп вп ( :a - :a / 2.5 ) * 2 по плюсики :a / 2.5 :r - 1 пп нд ( :a - :a / 2.5 ) пр 90 вп ( :a - :a / 2.5 ) по ]
конец

это плюс :a
повтори 4 [ вп :a нд :a пр 90 ]
конец


Построение фрактального дерева
На языке программирования Scratch
Используя Scratch я сделал фрактальное дерево. Кроме того, чтобы фрактальную закономерность можно было бы увидеть наглядно, я добавил возможность пользователю менять параметры дерева и наблюдать, что получается в итоге. Таким образом, вы можете редактировать фрактал-дерево изменяя его параметры, тем самым создавать свои фракталы.
Для того, чтобы узнать об это программе подробнее, в том числе изучить созданный мной код, достаточно нажать на кнопку "Попробовать" и перейти на оригинальную страницу этой программы.

Программный код построения фрактального дерева на Scrstch:

Определить ( вп ( число ) ) {
           Идти ( число ) шагов
}

Определить ( пр ( число ) ) {
           Повернуть вправо на ( число ) градусов
}

Определить ( лв ( число ) ) {
           Повернуть влево на ( число ) градусов
}

Определить ( нд ( число ) ) {
           Пр ( 180 )
                      Вп ( число )
           Пр ( 180 ) }

Когда нажат флажок {
           Повторять всегда (
                      Сг
                      По
                      Дерево ( ( Начальная Длинна ) ( Изменение Длинны ) ( угол ) ( Кол-во стволов ) )
                      Ждать ( 0.005 )
           )
}

Определить ( дерево ( размер ) ( изменение_размера ) ( угол ) ( кол-во_стволов ) ) {
           Установить для пера цвет ()
           Установить размер пера (1)
           Если < ( кол-во_стволов ) > 1 > то (
                       Пр ( угол )
                      Вп ( размер )
                       Дерево ( ( ( размер ) * ( изменение_размера ) ) ( изменение_размера ) ( угол ) ( ( кол-во_стволов ) – 1 ) )
                       Нд ( размер )
                       Лв ( ( угол ) * 2 )
                      Вп ( размер )
                       Дерево ( ( ( размер ) * ( изменение_размера ) ) ( изменение_размера ) ( угол ) ( ( кол-во_стволов ) – 1 ) )
                       Нд ( размер )
                       Пр ( угол )
           )
           Иначе (
                       Пр ( угол )
                       Вп ( размер )
                       Нд ( размер )
                       Лв ( ( угол ) * 2 )
                       Вп ( размер )
                       Нд ( размер )
                       Пр ( угол )
)
}


Заключение
Изучая фракталы, я понял, как прекрасен мир математики! Фрактальная теория удивительным образом позволяет нам приблизится к познанию природных явлений, понять их логику и закономерность. Моделировать и воссоздавать окружающий нас мир во всем его многообразии. Работа над этим проектом заставила меня посмотреть на мир другими глазами и вдохновила на дальнейшее более углубленное погружение в эту тему.

Список литературы
1.    Широков М.С. Изучение фракталов на факультативных занятиях по математике, физике и информатике. Вестник Псковского государственного университета. Серия: Естественные и физико-математические науки. 2019. № 15. С. 122-131.
2.    Федер Е. Фракталы. Пер. с англ.-М.: Мир,1991. - 254 с. (Jens Feder, Plenum Press, NewYork, 1988)
3.    Физическая энциклопедия. М.: Большая Российская энциклопедия, 1998. Т. 5. С. 371
4.    Пугачёв Д. В., Тарасов А. А. Фракталы. Компьютерное моделирование фракталов. Актуальные научные исследования в современном мире. 2021. № 12-3 (80). С. 109-117.
5.    Деменюк С.Л. Просто фрактал. Санкт-Петербург:Страта, 2013. - 163 с.

This site was made on Tilda — a website builder that helps to create a website without any code
Create a website