Вход

Различие алгоритмов моделирования фракталов в Maple и Delphi

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 203746
Дата создания 15 мая 2017
Страниц 60
Мы сможем обработать ваш заказ (!) 19 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 600руб.
КУПИТЬ

Описание

-
...

Содержание

Содержание
Введение 4
Теоретические основы понятия «Фрактальная графика» 6
1.1 Анализ понятии, связанных с фрактальной графикой 9
Размерность Хаусдорфа 10
Фрактальная размерность Минковского 10
1.2 Этапы работы над проектом 13
Глава 1. Применение фракталов в ЭВМ 14
1.1 Технологии создания программ под управлением СКМ Maple. 14
1.2 Базовые управляющие структуры Maple-языка. 16
1.2.1 Организация программных модулей и механизма процедур в Maple-языке 17
1.2.2 Средства Maple-языка для обеспечения доступа к внешним файлам данных BINARY-типа 18
1.3 Графические средства Maple. 19
1.3.1 Графическая интерпретация алгебраических выражений и уравнений в среде Maple 19
1.3.2 Двухмерное представление функциональных зависимостей и данных в среде Maple 20
1.3.3 Трехмерное представление функциональных зависимостей и данных в среде Maple 20
1.3.4 Создание графических объектов на основе базовых примитивов 20
1.4 Создание и работа с библиотеками пользователя 20
1.5 Технологии создания объектно-ориентированных проектов решения математических задач в Delphi. 20
1.6 Основы Графики в системе Delphi. 20
Глава 2 Алгоритмы и программы по теме «Фрактальная графика» 21
2.1 Тема «Введение в Фрактальную графику» (базовый понятийный аппарат. базовым понятием для фрактальной компьютерной графики являются «Фрактальный треугольник». Затем идет «Фрактальная фигура», «Фрактальный объект», «Фрактальная прямая», «Фрактальная композиция», «Объект-родитель» и «Объект наследник». Основные свойства фракталов 21
2.1.1 Тема «Классификация фракталов 22
2.1.2 Тема «Геометрические фракталы. Кривая Коха, снежинка Коха, Дракон Хартера–хейтуэяю Использование L-систем для построения «дракона. Ковер и треугольник Серпинского 23
2.1.3 Тема «Алгебраические фракталы. Построение множества Мандельброта. Построение множества Жюлиа 27
2.1.4 Тема «Стохастические фракталы. Системы итерируемых функций для построения фракталов. Сжатие изображений с использованием системы итерируемых функций. 31
Список библиографии 36

Введение

Фракталы – это математическое множества, обладающее эффектом самоподобия. Фракталы является сравнительно новым направлением в теории множеств, геометрии и в целом в математики.
Изучением фракталов приходится на 70-80 года 20 века, само название- фрактал было предложено ученым – математиком Мандельбротом. Дословно с латинского языка слово фрактал обозначает дробный. Развитие фракталов тесно связано с развитием электронно-вычислительных машин, ввиду необходимости их графического построения.
В силу данных обстоятельств, именно развитие электронно-вычислительных машин, позволило по настоящему рассмотреть всю красоту фракталов.
Фракталы, как правило, состоят из очень простых математических формул и вычисляются посредством итеративных алгоритмов. Есть много споров о том, почему фракталы не изучались ранее. Одной из причин как уже было сказано ранее – это необходимость итеративного вычисления, что представляет сложным в плане построения множества. Также сама математическая школа, развитая в 18-19 веках, представляла собой абстрактный аналитический аппарат. Поэтому математики больше верили аналитическим методам, теориям доказательств, но только не геометрическим построениям. Геометрические же построения, выполнялись только для понимания сути задачи. Поэтому формулы построения фрактальных множеств были известны давно, но никто не обращал внимания на то, что данные множества представляют при графическом их построении. Сегодня данное направление науки получило свое наименование - фрактальная графика.



Если сравнить те ресурсы, которыми обладали ученные в начале 70 годов, для построения даже простых фракталов требовалось огромное процессорное время и для построения небольших изображении фрактального множества требовались часы. Сегодня такие задачи разрешимы на персональных электронных вычислительных машинах, причиной тому многократно возросшая производительность и доступность электронно-вычислительных машин.
Проводятся исследования по сжатию графики, и архивированию данных посредством фракталов. В алгоритмах сжатия предполагается замена исходного изображения или файла фрактальным множеством. Основной проблемой в данных вычислениях является сложность замены исходных данных фрактальным множеством. Вполне возможно в будущем будут найдены методы по быстрому нахождению функции для любых видов данных.
В живой природе фракталы встречаются повсеместно, начиная от простейших, растительного мира и многих объектов материального мира.
Один из известных примеров фракталов можно назвать листья папоротника, капусты кольраби. Известно, что в человеческом организме фрактальную природу имеют отпечатки пальцев, кровеносная система, и много различных систем организма.

Фрагмент работы для ознакомления

Для обеспечения доступа к внешним файлам Maple–язык использует следующие конструкции:
Fopen(F,’READ’, ‘temp.txt’) – для открытия файлового потока, в данном случае F- поток, ‘READ’- обозначает, что поток открывается для чтения. Последним параметром поступает адрес файла на диске компьютера в данном случае это ‘temp.txt’’.
Для чтения из потока служит функция readline и readbytes. Для записи в файловый поток служит функция writeline и writebytes. Также стоит отметить для записи в поток, файл должен быть открыт для записи. Для проверки корректности открытия потока используется функции assign. Также после окончания работы с файловым потоком необходимо указать завершение посредством функции fclose параметром, которого будет выступать файловый поток.
3 Графические средства Maple.
Среда Maple позволяет также строить графики функции. Для использования в своем проекте графических построений используется подключаемая библиотека plots. Для подключения к своему проекту данной библиотеки в начале программы указывается данная библиотека посредством конструкции with(plots):. Данная конструкция обозначает, что к проекту подключается библиотека для построения графиков функций. После объявления данной библиотеки, возможно применение следующих функции - это plot для построения двухмерных графиков функций и plots3d для построения трехмерных графиков функций.
3.1 Графическая интерпретация алгебраических выражений и уравнений в среде Maple
Графическая интерпретация результатов, требует задание функций, которая будет строить множество в виде отображения его дискретного аналога. При построении множества выбирается область, в которой строится изображения для двухмерного случая - это ось абсцисс и ординат и указывается шаг, с которым строится изображение, в качестве дополнительных параметров могут передаваться размеры изображений. Конечно, в Maple есть возможность построения без указания в явном виде области построения, но в таком случае область графика может быть выбрана некорректно. Так как точное построение требует скрупулезного исследования графика функции предлагаемого множества
3.2 Двухмерное представление функциональных зависимостей и данных в среде Maple
Для двухмерного представления данных в Maple используется функция plot, которая позволяет строить вектора, функции заданные в зависимости от двух переменных. В качестве выходного значения функция plot строит график функции на экране интерпретатора Maple.
3.3 Трехмерное представление функциональных зависимостей и данных в среде Maple
Также как в двухмерном случае для построений использовалась функция plot используется аналогичная трехмерная функция plot3d, которая также в качестве параметра получает функцию, область построения графика функции. Если область значений будет не указана, то Maple , будет строить в соответствии со своим алгоритмом, предполагающий автоматическое исследование функции.
3.4 Создание графических объектов на основе базовых примитивов
4 Создание и работа с библиотеками пользователя
5 Технологии создания объектно-ориентированных проектов решения математических задач в Delphi.
Парадигма объектно- ориентированного программирования, предполагает взаимодействие классов, наследование, полиморфизм.
Объектно-ориентированное программирование предполагает при написание программного кода следующих понятий:
- Инкапсуляции – это возможность объединения различных функции в одном классе, и возможность разграничения доступа.
- Наследование –это возможность создания потомка класса, который будет использовать все функции которые содержаться в базовом классе или родительском.
- Полиморфизм – это возможность использования объектов с одинаковым интерфейсом.
Для математических задач возможно использовании средств объектно - ориентированного программирования. Конкретно в нашей задаче, возможно создания класса фрактал, с методом рисования, и изменения точности построения, увеличения области фрактала. В качестве наследуемых классов могут выступать различные виды фракталов. Соответственно, в базовом классе фрактал, методы должны быть виртуальными и абстрактными, для того чтобы они переопределялись в наследуемом классе. Это необходимо в связи с тем, что фракталы имеют различные способы построения
6 Основы Графики в системе Delphi.
Для создания графических приложений в интегрированной среде разработки Delphi используется библиотека визуальных компонентов VCL. Библиотека визуальных компонентов (англ. Visual Component Library, VCL) — объектно-ориентированная библиотека для разработки программного обеспечения, разработанная компанией Borland для поддержки принципов визуального программирования. В курсовой работе использовались визуальные компоненты такие как: TPaintBox, TProgressBar, TSpinEdit,TButton, TRadioGroup и другие классы.
TPaintBox – представляет собой класс для отображения графики и является надстройкой над графической библиотекой Windows – GDI. GDI имеет базовые шаблоны для построения графических построении. С помощью GDI возможны построении точек, шаблонных примитивов таких как: круг, прямоугольник, линия, полилиния, сплайн. Данных возможностей достаточно для построения любых видов фракталов.
TProgressBar представляет собой компонент, для отображения прогресса вычисления. В курсовой работе, данный визуальный класс использовался для отображения прогресса построения фрактального множества. TProgressBar позволяет пользователю видеть прогресс создания и тем самым показывая пользователю, что программа не зависла и продолжает построения. Это необходимо в связи с тем некоторые построения могут занимать значительное время.
TSpinEdit – визуальный компонент позволяющий изменять числовые параметры, удобен при работе с изменяемыми данными, параметрами которых выступают целые числа.
TButton- компонент кнопки, позволяет обрабатывать выполнение операции пользователя.
Глава 1 Алгоритмы и программы по теме «Фрактальная графика»
7 Тема «Введение в Фрактальную графику» (базовый понятийный аппарат. базовым понятием для фрактальной компьютерной графики являются «Фрактальный треугольник». Затем идет «Фрактальная фигура», «Фрактальный объект», «Фрактальная прямая», «Фрактальная композиция», «Объект-родитель» и «Объект наследник». Основные свойства фракталов
7.1 Тема «Классификация фракталов
На сегодняшний день фракталы подразделяют на три основных класса – это геометрические, алгебраические и стохастические. Геометрические фракталы имеют общую особенность изначально, для построения берется прямая линия, в дальнейшем производятся операция деления либо переноса или поворота на определенный угол. Любые изменения в геометрических фракталах могут быть получены посредством геометрических построений, поэтому геометрические фракталы, возможно были одними из первых фракталов которые были известны. Алгебраические фракталы, представляют собой фракталы, которые могут вычислены посредством алгебраической формулы, системы. В которых следующее значение получается зная предыдущее значение функции. Стохастические фракталы представляют собой фракталы, которые больше применяются для получения практических результатов. А именно генераторы трехмерных деревьев, различных объектов не обладающих симметрии. Главной отличием данных видов фракталов является использование генератора случайных чисел, для получения разнообразных результатов. Проще говоря стохастическая фрактальная функция производит каждый раз новые значения, новые изображения соответственно новый объекты в многомерном случае.
7.2 Тема «Геометрические фракталы. Кривая Коха, снежинка Коха, Дракон Хартера–хейтуэяю Использование L-систем для построения «дракона. Ковер и треугольник Серпинского
Кривая Коха – это фрактальная кривая, описанная шведским математиком Хельге фон Кохом.
Кривая Коха относится к геометрическим фракталам. Для построения кривой Коха берется единичный отрезок. Данный отрезок делится на три равные части и заменяется равносторонним треугольником у которого убран сегмент основания. В процессе первой итераций образуется ломанная состоящая из 4 сегментов длины 1/3. Если продолжать процесс бесконечно, то получается интересный фрактальный объект. Интересно что, данный фрактал используется при построении береговой линии на картах, при создании трехмерных карт местности для моделирования эрозии местности.
Рисунок 11. –
Кривая Коха, показывается процесс увеличения сегментов по мере увеличения количества разбиения
Снежинка Коха является продолжением идеи разделения прямой на равномерные отрезки для построения, но в качестве базиса берется равносторонний треугольник. Соответственно по мере увеличений количества итераций происходит увеличение количества сегментов, соответственно объект начинает больше напоминать снежинку.
Рисунок 12 –
Снежинка Коха.
Рисунок 13. –
Пример кривой Коха, построенной с помощью Delphi
Исходный код построения кривой Коха
procedure FractalKoch(a,b:TPoint;level:integer);
procedure Draw(b,e:TPoint);
begin
with Form1.Image1.Canvas do begin
moveto(b.x,b.y);
lineto(e.x,e.y);
end;
end;
var
c,d,e,f, e1, f1, g:TPoint;
begin
c.x:=trunc((b.x-a.x)/3+a.x);
c.y:=trunc((b.y-a.y)/3+a.y);
d.x:=trunc(b.x-(b.x-a.x)/3);
d.y:=trunc(b.y-(b.y-a.y)/3);
e1.x:=a.y;
e1.y:=b.x;
e.x:=b.y;
e.y:=a.x;
f.x:=trunc((b.x-a.x)/2+a.x);
f.y:=trunc((b.y-a.y)/2+a.y);
f1.x:=trunc(f.x+(e1.x-e.x));
f1.y:=trunc(f.y+(e1.y-e.y));
g.x:=trunc(f.x+(f1.x-f.x)/3);
g.y:=trunc(f.y+(f1.y-f.y)/3);
if Level=0 then
Draw(a,b)
else if Level=1 then
begin
Draw(a,c);
Draw(c,g);
Draw(g,d);
Draw(d,b);
end else
begin
FractalKoch(a,c,Level-1);
FractalKoch(c,g,Level-1);
FractalKoch(g,d,Level-1);
FractalKoch(d,b,Level-1);
end;
end;
7.3 Тема «Алгебраические фракталы. Построение множества Мандельброта. Построение множества Жюлиа
Множество Мандельброта, это множество точек с на комплексной плоскости, для которых справедливо рекуррентное соотношение
при z0= 0
является ограниченным. Множество Мандельброта это множество таких c, для которых существует такое действительное R, что неравенство |zn|<R выполняется при всех натуральных n;
В курсовой работе также рассмотрен данный вид фрактала. Построение его довольно простое, общий вид алгоритма предполагает выбор области построения, и его попиксельное сканирование. Далее происходит проверка точки на принадлежность фракталу Мандельброта, если точка принадлежит фракталу с заданным эпсилон ставим соответствующий цвет.
Ввиду того, что фрактал Мандельброта обладает эффектом самоподобия, сделали механизм увеличения фрактала, чтобы увидеть, что действительно малые фракталы при увеличении повторяет изображения большого фрактала.
Также сделали механизм увеличений точности, который влияет на эпсилон, с которым строится фрактал. При повышении точности скорость построения фрактала падает, поэтому в качестве исследования использовали компонент, который отображает прогресс построения графического изображения фрактала. Прогресс построения, фрактала позволяет прогнозировать примерное время построения фрактала. Но не во всех случаях, возможно, определить время построения, к примеру: в рекурсивных алгоритмах, стохастических алгоритмах. Очень сложное определение примерного времени построения в стохастических алгоритмах так как время зависит и от того какие случайные числа выпадают, соответственно алгоритм может строить за разное время.
Рисунок 14. –
Фрактал множества Мандельброта , реализованный в программе Delphi.
Рисунок 15. –
Фрактал множества Мандельброта, при увеличении в 700 раз и увеличении точности построения.
Исходный код построения фрактала Мандельброта
procedure TForm1.DrawMondelbrot;
const
MaxXValue = 310;
var
zi, zr, ci, cr, tmp: Extended;
i, j, k, m: Integer;
Depth: Integer;
aParametr: Extended;
begin
Depth := SpinEdit1.Value;
aParametr:= SpinEdit2.Value;
ProgressBar.Max := MaxXValue-160;
ProgressBar.Position := 0;

for i:= -160 to MaxXValue do begin
ci := i/aParametr;
ProgressBar.Position:= ProgressBar.Position+1;

for j:= -190 to 400 do begin
cr := j/aParametr;
zi := 0.0;
zr := 0.0;
for k:=0 to DEPTH do begin
tmp := zr*zr - zi*zi;
zi := 2*zr*zi + ci;
zr := tmp + cr;
if (zr*zr + zi*zi > 1.0E16) then begin
break; end;
end;
if (k < DEPTH) then begin
m := k mod 255 + 1;
Image1.Canvas.Pixels[i + 160, j + 190] := RGB(m*15, 40 , m*15);
end;
end;
end;
ProgressBar.Position := 0;
end;

7.4 Тема «Стохастические фракталы. Системы итерируемых функций для построения фракталов. Сжатие изображений с использованием системы итерируемых функций.

Список литературы


Список библиографии
1. Архангельский А.Я. Программирование в Delphi 7. - М.: ООО "Бином-Пресс", 2005 г.
2. Шабетник В. Д. Фрактальная физика: наука о мироздании. - М., 2000. - 415 с.
3. Ильяшенко Ю. С. Аттракторы и их фрактальная размерность. - М.: МЦНМО, 2005. - 16 с.
4. Автоволновые процессы в нелинейных сре­дах с диффузией / Е. Ф. Мищенко, В. А. Садовничий, А. Ю. Колесов и др. - М.: ФИЗМАТЛИТ, 2005. - 432 с.
5. P. M. Кроновер. Фракталы и хаос в динамических системах. Основы теории. М., 2000. — 352 с.
6. Визуализация трехмерных фракталов средствами GPU Бакалаврская работа А.В.Жаренова, 2013 г.
7. О.В. Чумак ЭНТРОПИИ И ФРАКТАЛЫ В АНАЛИЗЕ ДАННЫХ 2011 г.Ижевск

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00471
© Рефератбанк, 2002 - 2024