6 / 6 / 3
Регистрация: 15.10.2011
Сообщений: 73
|
|
1 | |
Моделирование фрактала в координатной плоскости06.05.2012, 15:10. Показов 1468. Ответов 0
Метки нет (Все метки)
Требуется написать программу, которая будет строить множество Мандельброта на координатной плоскости и выполнять некоторые функции. Цитирую текст задания:
-------------------------------------------------------------------------------------------------------- Отображение f(z)=z^4+c, где c комплексная постоянная. Последовательность z(n) определим соотношением z(n+1)=f(z(n)) и начальным условием z(0). Последовательность z(n) зависит от c. Множеством Мандельброта M отображения f(z) назовём множество таких значений параметра c (комплексных чисел), что zn не стремится к бесконечности. Обозначим через M_N(R) множество таких комплексных чисел c? xnj d gjcktljdfntkmyjcnb я(т) gthdst Т xktyjd eljdktndjhz.n cjjnyjityb. |z(k)|<R (k=0,1,...,N). При подходящем выборе R и достаточно большом N vножества M_N(R) и M будут очень похожи. 1) Напишите программу, которая при заданных значениях параметров z(0) (например, z(0)=0 или другое комплексное число) Необходимо перебрать с небольшим шагом всевозможные комплексные значения c, лежащие в некотором квадрате -a<Rec<a, -a<Imc<a (a - параметр). Для каждой точки c необходимо проверить, что первые N элементов последовательности z(n) тоже лежат внутри круга радиуса R с центром в нуле. Если это условие выполняется, то по определению текущая точка c принадлежит множеству M_N(R) - отмечаем её на рисунке одним цветом, если же какой-то из элементов z(n) лежит вне этого круга (то есть условие нарушилось), то соответствующую точку c отмечаем другим цветом (возможно, в зависимости от номера n элемента z(n), который первый вышел из круга). 2) Определите "эффективные" значения a и R. Если эти параметры слишком большие, то программа будет работать довольно долго - много перебирать. С другой стороны, если взять их слишком маленькими, то можно потерять часть множества. Определите опытным путём "наилучшие" значения для a и R. Для этого при достаточно больших значениях N (порядка 100-500) постройте множества M_N(R) при разных значениях a и R. Нам нужно наименьшее из таких значений, что их увеличение не изменяет получившийся рисунок. 3) Использую программу, подберите несколько значений параметра z(0) (помните, что он комплексный), чтобы построенное множество обладало фрактальной природой. Имейте ввиду, что при разных z(0) "эффективные" значения R и a могут отличаться. Ожидаемые результаты 1) Программа (исходный код и исполняемый файл), строящая изображение множества Мандельброта (M_N(R)), в зависимости от z(0), N, R, a. 2) Определённые опытным путём "эффективные" значения a и R. 3) Определённые опытным путём значения z(0), при которых наблюдается наиболее интересная (с вашей точки зрения) картинка. Дополнительно 1) Сделайте возможность сохранения построенной картинки в jpeg-файл. 2) Дайте возможность пользователю изменять параметры z(0) (не забывайте, что он комплексный), a, R и N. 3) Сделайте возможность изменения масштаба по осям сдвига координатной сетки, чтобы можно было детально рассмотреть любую часть построенного множества 4) Докажите, что сущетвует такое R*, что при z(0)=0 всё множество лежит внутри круга радиуса R*. -------------------------------------------------------------------------------------------------------- Всё, что я знаю - основные функции библиотеки работы со строками, ввод/вывод, алгоритмы сортировки массивов (ну и само собой динамические массивы, разумеется), ну и ещё некоторые функции, позволяющие, например, написать простенькую программу для работы с базой данных в оперативной памяти из консоли. Читаю том Страуструпа, но ничего подходящего для этого задания пока не нашёл. Во-первых: нужна либа работы с комплексными числами, во-вторых - координатная плоскость, в третьих - множество Windows API-функций, в четвёртых - многое из того, чего я наверное и не подозреваю. Что порекомендуете почитать?
0
|
06.05.2012, 15:10 | |
Ответы с готовыми решениями:
0
Четверти на координатной плоскости Поиск точки на координатной плоскости Класс ПРЯМАЯ на координатной плоскости Задача на определение координатной плоскости |
06.05.2012, 15:10 | |
06.05.2012, 15:10 | |
Помогаю со студенческими работами здесь
1
Сравнение двух точек на координатной плоскости Очередь, состоящая из точек координатной плоскости Создать класс Круг на координатной плоскости В какой координатной четверти плоскости находится точка. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |