Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Glam_Man
6 / 6 / 0
Регистрация: 15.10.2011
Сообщений: 73
#1

Моделирование фрактала в координатной плоскости - C++

06.05.2012, 15:10. Просмотров 712. Ответов 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-функций, в четвёртых - многое из того, чего я наверное и не подозреваю. Что порекомендуете почитать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 15:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Моделирование фрактала в координатной плоскости (C++):

Четверти на координатной плоскости - C++
Вводятся координаты точки на плоскости (X и Y, вещественные числа). Вывести номер координатной четверти, в которой расположена эта точка....

Поиск точки на координатной плоскости - C++
Помогите пожалуйста!! Нужно написать программу которая будет искать рандомную точку на координатной плоскости, относительно движущейся...

Класс ПРЯМАЯ на координатной плоскости - C++
как описать класс ПРЯМАЯ на координатной плоскости. уравнение прямой y=ax+b. Данные: угловой коэффициент a и смещение b. Конструкторы:...

Очередь, состоящая из точек координатной плоскости - C++
Доброго времени суток. Мне необходимо создать очередь, состоящую из пар чисел (х и у) и создать функции удаления, добавления элементов в...

Сравнение двух точек на координатной плоскости - C++
С++ Никак не могу сделать , помогите , пожалуйста! Предметная область: «Точка в двумерном пространстве». Данные структуры: координаты...

Создать класс Круг на координатной плоскости - C++
Для меня это тёмный лес, я только начинаю писать, а нас грузят уже такими вот заданиями. Помогите сделать, или подскажите как правильно....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2012, 15:10
Привет! Вот еще темы с ответами:

Графическое изображение геометрических фигур на координатной плоскости - C++
заданием была озобразить графически лабу, которую уже делали до этого без граф функций само задание: // Выбрать три такие разные точки...

Какая из точек b или c ближе к a на координатной плоскости - C++
Помогите изменить код так чтоб с функцией было #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std;...

В какой координатной четверти плоскости находится точка. - C++
1)определить в какой четверти координатной плоскости находится точка.

Как расчитать растояние на координатной плоскости напрямую? - C++
по пиратской карте даются указания куда идти (направление и число шагов) шаги всегда целые нужно расчитать расстояние напрямую до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru