Kranover R M - Fraktaly i khaos v din sist
.pdf4-2 Реализация СИФ • 111
Таблица 4.1. Коэффициенты СИФ для окна [0,1] х [0,1]. Для перехода к экранным координатам используется алгоритм 3.4.2 (WOR2SCR).
Кристалл (рис. 4.7; см.также [37])
а |
Ь |
с |
d |
e |
/ |
0,2550 |
0,0000 |
0,0000 |
0,2550 |
0,3726 |
o,6714 |
0,2550 |
0,0000 |
0,0000 |
0,2550 |
0,1146 |
o,2232 |
0,2550 |
0,0000 |
0,0000 |
0,2550 |
0,6306 |
o,2232 |
0,3700 |
-0,6420 |
0,6420 |
0,3700 |
0,6356 |
-o,0061 |
Папоротник (рис. 4.9) |
|
|
|
|
|
а |
Ъ |
с |
d |
e |
/ |
0,7000 |
0,0000 |
0,0000 |
0,7000 |
0,1496 |
o,2962 |
0,1000 |
-0,4330 |
0,1732 |
0,2500 |
0,4478 |
o,0014 |
0,1000 |
0,4330 |
-0,1732 |
0,2500 |
0,4445 |
o,1559 |
0,0000 |
0,0000 |
0,0000 |
0,3000 |
0,4987 |
o,0070 |
Ковер А (рис. 4.6) |
|
|
|
|
|
а |
ь |
с |
d |
e |
/ |
0,5000 |
0,0000 |
0,0000 |
-0,5000 |
0,5000 |
o,5000 |
0,0000 |
-0,5000 |
-0,5000 |
0,0000 |
0,5000 |
o,5000 |
-0,5000 |
0,0000 |
0,0000 |
-0,5000 |
0,5000 |
1,0000 |
Ковер В (рис. 4.8) |
|
|
|
|
|
а |
ъ |
с |
d |
e |
|
0,5000 |
0,0000 |
0,0000 |
-0,5000 |
0,0000 |
1,0000 |
0,0000 |
0,5000 |
0,5000 |
0,0000 |
0,0000 |
o,0000 |
0,5000 |
0,0000 |
0,0000 |
0,5000 |
0, 5000 |
o,0000 |
Лист (рис. 4.4) |
|
|
|
|
|
а |
ъ |
с |
d |
e |
/ |
0,4000 |
-0,3733 |
0,0600 |
0,6000 |
0,3533 |
o,0000 |
-0,8000 |
-0,1867 |
0,1371 |
0,8000 |
1,1000 |
o,1000 |
Ковер Сериинского (рис. 2.4) |
|
|
|
||
а |
b |
с |
d |
e |
/ |
0,5000 |
0,0000 |
0,0000 |
0,5000 |
0,0000 |
o,0000 |
0,5000 |
0,0000 |
0,0000 |
0,5000 |
0,5000 |
o,0000 |
0,5000 |
0,0000 |
0,0000 |
0,5000 |
0,2500 |
o,4330 |
112 • Глава 4 I Системы итерированных функций
Дерево (рис. 4.5; см. также [37])
а |
Ъ |
с |
d |
е |
/ |
0,1950 |
-0,4880 |
0,3440 |
0,4430 |
о,4431 |
0,2452 |
0,4620 |
0,4140 |
-0,2520 |
0,3610 |
о, 2511 |
0,5692 |
-0,0580 |
-0,0700 |
0,4530 |
-0,1110 |
о, 5976 |
0,0969 |
-0,0350 |
0,0700 |
-0,4690 |
0,0220 |
о,4884 |
0,5069 |
-0,6370 |
0,0000 |
0,0000 |
0,5010 |
о,8562 |
0,2513 |
4.3. СИФ со сгущением
Будем по-прежнему понимать под К, пространство всех непустых компактных подмножеств Rn , оснащенное метрикой Хаусдорфа. Сгущающим преобразованием, или просто сгущением, называет-
ся отображение Тс '• К. —• 1С: |
|
ТС(Е) = С, |
Е£!С, |
где С — произвольное подмножество /С,которое мы будем называть множеством сгущения. Другими словами, Тс задает тривиальное отображение на К..
Сгущение Тс на К есть не что иное, как сжатие с нулевым коэффициентом, так как для любых А, В € К. имеет место:
Н(ТС(А),ТС(В)) = Н(С,С) = 0.
Пусть в нашем распоряжении имеется СИФ, заданная сжимающими отображениями Т^,г = 1,...,го. Добавим к ним сгущение Тс- Полученную систему итерированных функций будем называть
системой итерированных функций со сгущением (ССИФ). Очевидно, основная теорема п. 4.1 остается в силе для ССИФ, то есть существует и притом единственное множество Е € К. такое, что вне зависимости от выбора начального множества EQ € К,выполняется:
Е = lim |
Т( п )(£0 ), |
п—»оо |
|
где |
|
Т0(А) = ТС(А) UП(А) |
U• • • UTm(A), A € К. |
Тем самым мы уже почти доказали основную теорему о ССИФ.
4-3 СИФ со сгущением • 113
Теорема 4.3.3. Пусть ССИФ задана сжимающими отображениями Тс, Т\,Тг, ...,Тт, где Тс — сгущение:
ТС{А) = С, АеК. |
|
Пусть |
|
T(A) = T1(A)U---UTm(A), |
AeIC, |
а также |
|
Т0(А) = Tc(A)UT1(A)L)---UTm(A), = ТС(А) + Т(А).
Положим
С„ = т£,п ) (С), п = 0,1,2,...
Тогда
сп =си т(С) и• • • и т(п)(С)
и
Е = lim Cn
п—>оо
— аттрактор ССИФ.
Доказательство. Для доказательства первого утверждения мы воспользуемся следующим соотношением (см. упр. 5 в конце этого параграфа):
T(AUB) = T(A)\JT(B). |
(4.3) |
Имеем:
Со = Т0 ( 0 ) (С) =С
d= Т0 ( 1 ) (С) =
=сит(сит(С))
=сит(С)ит<2)(С)
Второе утверждение, Е = Ишп-юо Сп, следует изтеоремы 4.1.2, в шторой надо положить EQ = С. •
114 • Глава 4 / Системы итерированных функций
Пример ССИФ представлен на рис. 4.10. Здесь множество сгущения С — фрактал, а именно фигура «сорняка», полученная с помощью L-системы. Данная ССИФ задается единственным сжимающим отображением, помимо тривиального:
Ti(z) = (0,7960 + 0,0799г> + (-0,2500 -I-0, 7500г).
Для вывода на экран можно использовать программу ТЕРТЛГРАФИКА, предусмотрев возможность изменения масштаба и положения изображения каждый раз, когда встречается кодовое слово для фигуры «сорняк». Само кодовое слово есть результат работы алгоритма 2.2.1 (L-СИСТЕМЫ) после двух итераций, инициализированного следующим образом:
axiom = F
newf = F[+F]F[-F]F в = 7г/7.
То есть кодовое слово задается выражением: F[+F]F[-F]F[+F[+F]F[-F]F]F[+F]F[-F]F[-F[+F]F[-F]F]F[+F]F[-F]F.
Продолжая в том же ключе, мы можем пойти дальше и использовать все множество ССИФ, показанное на рис. 4.10, в качестве множества сгущения для новой ССИФ. Добавим к тривиальному отображению сжимающее отображение, которое все уменьшает и сдвигает вправо и вверх, например такое:
T2(z) = (0,7960 - 0,0799г> + (-0,2500 + 0,7500г).
Результат показан на рис. 4.11. Полученное изображение можно рассматривать как дважды итерированную ССИФ, подобно двойному интегралу в математическом анализе.
Эта дважды итерированная ССИФ, очевидно, не эквивалентна ССИФ с тремя сжимающими отображениями Тс, Т\ и Гг. Результат одновременного применения всех трех отображений гораздо сложнее, как видно из рис. 4.12. Усложнение здесь происходит по той причине, что появляются всевозможные смешанные произведения Т(Т^ и Т£Т(, а так как отображения Т\ и Тг не коммутируют (то есть Т\Т2 ф Т2Т1), то смешанные члены разного порядка дают разный
пр^льтат.
4-3 СИФ со сгущением • 115
С помощью алгоритма ССИФ можно строить огромное количество разнообразнейших фрактальных конфигураций. Фигура «дерево» представляет собой удачный с точки зрения эстетического восприятия пример такого построения. Здесь множество сгущения С (рис. 4.13) играет роль ствола дерева с двумя главными ветвями.
Мы выбрали аффинные преобразования Т\, Гг, Тз и Т± таким образом, чтобы они уменьшали (и искажали) множество С, поворачивали его, а затем сдвигали получившийся элемент к концу одной из ветвей. На каждой итерации все ветви выпускают новые ветки, очень похожие на оригинал С, за исключением размера и ориентации (рис. 4.14).
Для компьютерной реализации описанного алгоритма применяется рекурсия. Главная программа ДЕРЕВО (которую мы не приводим) инициализирует графический режим, определяет ивыводит на экран множество сгущения С ивызывает рекурсивную подпрограмму ВЕТВЬ (алгоритм 4.3.3). Вэтой подпрограмме на каждом уровне рекурсии вычисляются новые вершины, которые соединяются отрезками с вершинами предыдущего уровня.
Множество С хранится в виде массива вершин:
|
О |
|
V = |
0,5г |
|
0,5Г + l,25ei 7 r /4 |
||
|
||
|
0,6г + 1,50ei37r/4 |
Добавление ветвей осуществляют следующие четыре аффинных преобразования (рис. 4.13):
Ti(V,z) = |
(-0,l-i)s(z-V(l)) + V(3) |
ветвь вправо |
|
T2(V, z) |
= |
(1 + 0,1г)ф - V(l)) +V(3) |
ветвь вверх |
Г3(V, z) |
= |
(1 - 0, li)s(z - V(l)) + У(4) |
ветвь вниз |
T4(V, z) |
= |
(-0,1 + i)s{z - V(l)) +F(4) |
ветвь влево |
Вследующем алгоритме команда «построить V» (или «построить
ит. п.) означает такую последовательность действий:
соединить отрезком V(l) и V(2); соединить отрезком V{2) и V(3); соединить отрезком V{2) и
116 • Глава 4 I Системы итерированных функций
fj
\
\
Рис. 4.10. ССИФ
Рис. 4.11. Итерирование предыдущей фигуры с помощью
4-3 СИФ со сгущением • 117
Рис. 4.12. Та же ССИФ, с использованием Тс, 7ь T2
(а) множество сгущения С (б) первая итерация
Рис. 4.13. Множество сгущения С и первая итерация
118 • Глава 4 I Системы итерированных функций
Рис. 4.14. Дерево, построенное с помощьюССИФ
Алгоритм 4.3.3. (ВЕТВЬ)
Назначение: рекурсивная часть кода ССИФ для фигуры «дерево»
Вход:
V (4 х 1 множество вершин в комплексной форме) s (коэффициент сжатия)
level (число итераций, порядка тысячи)
Выход:
изображение фигуры «дерево».
Шаги:
while level > О ^i=Ti(V> e ) построить V\
4-4 СИФ сосгущением • 119
V2=T2(V,s)
построить V2
V3=T3(V,s)
построить Vz
V4=T4(V,s)
построить V4
level = level — 1
ветвь (Vi, s, level)
ветвь (V2, s, level) ветвь (Vz,s,level) ветвь (V4, s, level)
end while
Использование рекурсии позволило записать алгоритм замечательно простым образом.
Упражнения 4.3.
1.Обозначим через С классическое множество Кантора, а через Тс
— тривиальное отображение Тс(А) = С. Пусть 2\(ж) = 1/2х + 1. Описать аттрактор ССИФ с отображениями Тс, Ti.
2.Построить ССИФ, порождающую бесконечную спираль из окружностей (рис. 4.15).
3.Построить такую ССИФ с множеством сгущения в виде буквы V (рис. 4.16), чтобы у нее кончик каждой ветви расщеплялся надвое.
4.Описать аттрактор отображения Т следующих ССИФ:
а) Т(А) = Ti(A), рис. 4.10; б) Т(А) = Т2(А), рис.4.11;
в) Т(А) = Т1(А)1>Т2(А), рис. 4.12;
г) Т(А) = Г!(Л) UT2(A) UТ3(А) UТА(А), рис. 4.12. 5. Доказать, что Т(А UВ) = Т(А) U Т(В).
120 • Глава 4 I Системы итерированных функций
ОО ОО О
О
О |
о |
|
о |
о о
°ОО°О
Рис. 4.15. Спираль для упр. 2
Рис. 4.16. V-множество для упр. 3