а б Рис. 3.68. Логистическое преобразование для а) к - 0,85 и б) к = 0,9
Случай X - 0,9 приведен на рис. 3.68, б. Для большинства начальных точек орбита еще остается периодической, однако количество орбит, наблюдаемых между повторами, теперь очень велико. Другие начальные точки приводят к действительно апериодическому движению, и небольшие изменения начальной точки могут повлечь за собой существенные различия в поведении. До того, как этот воистину замечательный феномен был впервые обнаружен Митчеллом Фейгенбаумом (Mitchell Feigenbaum) в 1975 году, большинство исследователей были уверены, что малые изменения в системе должны приводить к соответственно малым изменениям в ее поведении и что простые системы, подобные этой, не могут демонстрировать сколь угодно сложное поведение. Работа Фейгенбаума породила новую область исследования природы сложных нелинейных систем, известную как теория хаоса. Чрезвычайно интересно поэкспериментировать с этим логистическим преобразованием.
Напишите и выполните программу, позволяющую пользователю изучать поведение повторяющихся итераций логистического преобразования, как показано на рис. 3.68. Установите подходящие окно и порт просмотра - так, чтобы все логистическое преобразование было хорошо видно. Пользователь задает значения .v0 и X, а программа рисует предельные циклы, создаваемые системой
3.10. Тематические задания Тематическое задание 3.2. Реализация отсекателя Кохена-Сазерленда на С или С++
Уровень сложности II.
Основы алгоритма Кохена-Сазерленда (Cohen-Sutherland) были приведены в разделе «Алгоритм отсечения Кохена-Сазерленда». В данном тематическом задании мы конкретизируем некоторые подробности его реализации на языках С или С++ в силу эффективности поддерживаемого этими языками низкоуровневого управления битами.
Прежде всего нам необходимо сформировать кодовые слова «внутри/вне», определяющие, как точка Р расположена относительно окна (см. рис. 3.15). Для этого достаточно единственного восьмибитового слова code: четыре его бита используются для записи четырех элементов информации. Точка Р поочередно проверяется относительно каждой границы окна; если Р расположена вне этой границы, то соответствующий бит в слове code устанавливается в 1, что означает TRUE.