Реализация в Matlab алгоритмов построения фрактальных объектов - Курсовая работа

бесплатно 0
4.5 112
Рассмотрение алгоритма, основанного на использовании рекурсивной функции. Пример построения простого самоподобного фрактала - ковра Серпинского, снежинки Коха, кривых Пеано и Гильберта. Понятие L-система и терл-графика. Составление программы "Koch.m".


Аннотация к работе
Фракталы - математические объекты дробной размерности, название которых было введено в математику Б. Мандельбротом, являются в настоящее время, как предметом самостоятельных математических исследований, так и инструментарием, используемым в целом ряде прикладных задач нелинейной динамики, теории хаоса, обработки сигналов. Однако только относительно недавно появилось первое полноценное учебное пособие по новой быстро развивающейся математической дисциплине, основой которого стал учебный курс, преподававшийся автором книги в течение ряда лет в университете Миссури Колумбия.Рассматривается алгоритм, основанный на использовании рекурсивной функции. В рассматриваемом в данном разделе алгоритме используется способ построения, основанный на последовательном удалении из начальной области внутренних подобластей в соответствии с заданными правилами. Выберем в качестве начального множества S0 равносторонний треугольник вместе с областью, которую он замыкает. Из построения видно, что ковер является объединением N=3 непересекающихся уменьшенных в два раза копий (коэффициенты подобия по горизонтали и вертикали в данном случае оказываются одинаковыми, r = 1/2). Фрактальная размерность ковра Серпинского d равна: Для построения рассматриваемого фрактала, очевидно, можно использовать следующий алгоритм.Рисунок 1 - Ковер Серпинского 0 порядка Рисунок 2 - Ковер Серпинского 1 порядкаАлгоритм визуализации фрактального объекта, основные этапы построения которого представлены на рисунках 7 - 12, реализуется следующей последовательностью действий. Построить квадрат ABCD и залить его синим цветом. Построить квадрат Ниже приведен листинг файла Serpinsky2.m, который содержит описание функции, возвращающей изображение квадратного ковра Серпинского. % функция, возвращающая изображение квадратного ковра СерпинскогоРисунок 7 - Квадратный ковер Серпинского 0 порядка Рисунок 8 - Квадратный ковер Серпинского 1 порядкаЕще одним примером фрактального объекта, для построения которого оказывается удобным использовать рекурсивный алгоритм, является кривая Коха. Построение данной кривой начинается с отрезка K0 единичной длины. Удалим из отрезка K0 отрезок длины 1/3 и добавим два новых отрезка такой же длины. На следующем шаге разделим каждый отрезок длины 1/3 на три части длины 1/9 и повторим описанную процедуру, заменяя на каждом шаге среднюю ветвь двумя новыми отрезками. % функция, возвращающая изображение кривой Коха x1=0; y1=0; % левая точка начального отрезка x2=1; y2=0; % праваяя точка начального отрезка figure(1); axis([0 1 0 1]); set(gca,"XCOLOR","w","YCOLOR","w");Рисунок 13 - Кривая Коха 0 порядка Рисунок 14 - Кривая Коха 1 порядка"Мгновенное" положение "черепашки" задается тремя параметрами (x, y, ?), где (x, y) - координаты "черепашки", ? - направление следующего шага (угол, отсчитываемый от положительного направления оси x). Кодовое слово, представляющее собой результат работы L-системы, может включать в себя следующие буквы: · F - переместиться на один шаг вперед, прорисовывая след; Формально, детерминированная L-система состоит из алфавита, слова инициализации, называемого аксиомой или инициатором, и набора порождающих правил, указывающих как следует преобразовывать слово при каждой следующей итерации. Например, L-система, соответствующая снежинке Коха, представленной на рисунке 19, задается следующим образом: Аксиома: F F F "Черепашка" делает один шаг вперед, затем угол увеличивается на 2?/3 и "черепашка" делает еще один шаг вперед, далее угол вновь увеличивается на 2?/3 и "черепашка" делает еще один шаг.Рисунок 19 - Снежинка Коха 4 порядкаОднако при построении других фракталов, например, дракона Хартера-Хайтвея (рисунок 20), на некоторых шагах возникает необходимость в изменении направления чтения правила (не слева направо, а справа налево). Для решения данной проблемы вводят две дополнительные команды, обозначаемые X и Y, которые используются для создания соответствующей L-системы, но игнорируются "черепашкой" при перемещении. При использовании этих команд порождающее правило для дракона имеет вид: Аксиома: FX В соответствии с данными правилами L-система имеет следующий вид: 1 шаг: FX YF Ниже приводится листинг файла Dracon.m, содержащего описание функции, возвращающей изображение дракона, в соответствии с описанной выше L-системой.Рисунок 20 - Дракон Хартера - Хайтвея 12 порядкаЗаменяя в описанной выше программе порождающие правила, можно получить и другие фрактальные кривые, например, кривую Гильберта.Порождающие правила: Newx = X YF YF - FX --FXFX-YF Порождающие правила: Newf = FКогда в L-системе встречается символ [(открыть ветвь), необходимо запомнить координаты точки нахождения "черепашки" и направление ее движения, т. е. переменные (x, y,?). К сохраненным переменным следует вернуться после обнаружения символа ] (закрыть ветвь). В пакете MATLAB оказывается более удобным использовать матрицу с переме

План
Содержание

Введение

1. Рекурсивный алгоритм

1.1 Ковер Серпинского

1.1.1 Код программы "Serpinsky.m"

1.1.2 Изображения ковра Серпинского

1.2 Квадратный ковер Серпинского

1.2.1 Код программы "Serpinsky2.m"

1.2.2 Изображения ковра Серпинского

1.3 Кривая Коха

1.3.1 Код программы "Koch.m"

1.3.2 Изображения кривой Коха

2. L - системы и терл - графика

2.1 Снежинка Коха

2.1.1 Код программы "RULEKOCH.m" (возвращает функцию)

2.1.2 Код программы "Snowflake.m" (вывод изображения)

2.1.3 Изображение снежинки Коха

2.2 Дракон Хартера-Хайтвея

2.2.1 Код программы "Dracon.m"

2.2.2 Изображение дракона Хартера-Хайтвея

2.2.3 Изображение кривой Гильберта

2.2.4 Изображение кривой Госпера

2.2.5 Изображение кривой Серпинского

2.3 Ветвление

2.3.1 Код программы "Flower.m"

2.3.2 Изображение цветка

2.3.3 Изображение куста

2.3.4 Изображение Снежинки

3. Системы итерированных функций

3.1 Построение ковра Серпинского с помощью ДСИФ

3.1.1 Код программы "SERPDSIF.m"

3.1.2 Изображение ковра Серпинского построенного при помощи ДСИФ

3.2 Кристалл построенный по алгоритму РСИФ

3.2.1 Код программы "Cristal.m"

3.2.2 Изображение кристалла

3.2.3 Код программы "Maple.m"

3.2.4 Изображение Листа

3.2.5 Код программы "Paporotnic.m"

3.2.6 Изображение папоротника

Заключение

Список использованных источников

Введение
Фракталы - математические объекты дробной размерности, название которых было введено в математику Б. Мандельбротом, являются в настоящее время, как предметом самостоятельных математических исследований, так и инструментарием, используемым в целом ряде прикладных задач нелинейной динамики, теории хаоса, обработки сигналов. Однако только относительно недавно появилось первое полноценное учебное пособие по новой быстро развивающейся математической дисциплине, основой которого стал учебный курс, преподававшийся автором книги в течение ряда лет в университете Миссури Колумбия. Так как при изучении фракталов и хаоса большую роль играет компьютерное моделирование, в курсе предусмотрено параллельное изучение теоретических вопросов и проведение компьютерных экспериментов. Это отличает его структуру от традиционной структуры большинства математических курсов: теорема-доказательство-пример-задача. В обобщенном виде подробно описаны известные алгоритмы построения фрактальных объектов (L-системы и терл-графика, аффинные преобразования, системы итерированных функций, случайные системы итерированных функций). Однако соответствующих программ, созданных на каком-либо языке программирования или в математическом пакете, не приводится. В то же время опыт практической реализации алгоритмов построения фрактальных объектов, описанных в каком-либо из современных математических пакетов (MATLAB, Mathcad, Maple, Matematica и т. д.), широко используемых в настоящее время в преподавании целого ряда физико-математических дисциплин, показывает, что существует необходимость внесения в них определенных корректировок, учитывающих особенности выбранного пакета (в первую очередь графические). В курсовой работе отражены алгоритмы построения классических фракталов и их программные реализации в пакете MATLAB.
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?