5.1. Множество Мандельброта.
Чтобы проиллюстрировать алгебраические фракталы обратимся к классике - множеству Мандельброта.
Для его построения нам необходимы комплексные числа. Комплексное число - это число, состоящее из двух частей - действительной и мнимой, и обозначается оно a+bi. Действительная часть a это обычное число в нашем представлении, а вот мнимая часть bi интересней. i - называют мнимой единицей. Почему мнимой? А потому, что если мы возведем i в квадрат, то получим -1.
Рассмотрим функцию , . Множество Мандельброта определяется как множество всех , для которых орбита точки при отображении ограничена.
Множество всех точек , для которых итерации остаются ограниченными при , называется множеством Мандельброта
Приняв, что и , раскладывая на действительную и мнимую часть, получаем:
Цвет обычно выбирают по числу итераций, но есть и другие способы.
program M2;
uses Graph, Crt;
type
TComplex = record
x : Real;
y : Real;
end;
const
iter = 50;
max = 16;
var
z, t, c : TComplex;
x, y, n : Integer;
Cancel : Boolean;
gd, gm : Integer;
mx, my : Integer;
begin
Cancel := False;
Randomize;
gd := Detect;
InitGraph(gd,gm,'e:\bp\bgi');
Mx := GetMaxX div 2;
My := GetMaxY div 2;
for y := -my to my do
for x := -mx to mx do
begin
n := 0;
c.x := x * 0.005;
c.y := y * 0.005;
z.x := 0;
z.y := 0;
while (sqr(z.x) + sqr(z.y) < max) and (n < iter) do
begin
t := z;
z.x := sqr(t.x) - sqr(t.y) + c.x;
z.y := 2 * t.x * t.y+ c.y;
Inc(n);
if KeyPressed then
Cancel := true;
end;
if n < iter then
begin
PutPixel(mx + x,my + y,16 - (n mod 16));
end;
if Cancel then
exit;
end;
Readkey;
CloseGraph;
end.
Также можно изменить вид фрактала, если контроль значения вести другим образом. Наиболее употребляемый способ уже рассмотрен — достигает определённого максимального числа. Другими способами являются:
-
действительная часть меньше определённого числа;
-
мнимая часть меньше определённого числа;
-
и мнимая, и действительная части меньше какого-либо числа.
Есть и другие способы.
Изменяя значение n в общей формуле, можно получать различные варианты изображения.
- Лекция Фрактальная графика.
- 1. Понятие о фракталах.
- 2. Определение фракталов. Классификация фракталов.
- 3. Системы итерируемых функций.
- 4. Геометрические фракталы.
- 4.1. Снежинка Коха
- Вариации на тему кривой Коха
- 4.2. Треугольник Серпинского
- Построение треугольника Серпинского с помощью рекурсии
- 4.3. Драконова ломаная
- 5. Алгебраические фракталы
- 5.1. Множество Мандельброта.
- 5.2.Множество Жюлиа
- 5.3. Фрактал Ньютона
- 7. Фракталы в природе (frakt-lecture.Pdf)