МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ
ИМЕНИ М. Е. ЕВСЕВЬЕВА»
Физико-математический факультет
Кафедра информатики и вычислительной техники
Реферат
ГРАФИКА В ПАКЕТАХ РАСШИРЕНИЙ СИСТЕМЫ MAXIMA
Выполнила: Н.Н Ушакова, студентка V курса группы МДМ-212
очной формы обучения
Направление: 050100 «Педагогическое образование»,
профиль «Математика.Информатика»
Проверила: Т.В Кормилицына, кандидат физико-математических наук, доцент
Саранск 2017
Опции пакета draw2d
draw2d— функция, предназначенная для построения графиков на
плоскости с применением большого количества дополнительных опций:
–xrange, yrange – установлены по умолчанию – определяют промежуток изменения значений переменной по осям Ox и Oy. В случае необходимости, можно изменять значений вручную. Например, xrange=[-2, 3];
–grid – в случае, если grid=true, на координатной плоскости выводятся линии сетки;
–title– позволяет выводить заголовок к графику функции. Например,title = "Exponentialfunction";
–xlabel, ylabel – позволяют выводить подписи к осям. Например, ylabel = "Population";
–xtics, ytics – позволяют устанавливать цену деления по осям Ox и Oy, с которой будут наноситься метки на оси. Имеет значение по умолчанию, однако их действием можно управлять вручную. Например, можно задать, чтобы метки по оси Ox наносились на промежутке от -3 до 3 с шагом 0,2: xtics= [ -3, 0.2, 3]. Также можно указать, в каком виде выводить подписи к осям:
–xaxis, yaxis – в случае, если значения этих опций равны true, координатные оси выводятся на экран;
–xaxis_width, yaxis_width – ширина координатных осей (по умолчанию ширина равна 1). Для изменения толщины оси необходимо изменить значение по умолчанию вручную, например, xaxis_width=3;
–xaxis_type, yaxis_type – стиль линии осей Ox и Oy. Допустимые значения: solid и dots;
–xaxis_color, yaxis_color – цвет координатных осей (по умолчанию –черный). Для изменения цвета оси необходимо изменить значение опции вручную, например, xaxis_color = red;
–color – позволяет изменять цвет графика. Например, color= «red» (задается до слова explicit);
– line_width – позволяет изменять толщину линии графика функции (значение по умолчанию – 1);
– line_type – позволяет изменять стиль линии графика функции. Допустимые значения: solid и dots и др.
В системе Maxima есть возможность выполнять построение различных
графических примитивов, например:
–polygon ([[x1,y1], [x2,y2],...])— построение замкнутой ломаной линии,соединяющей точки с координатами [x1,y1], [x2,y2], ... С помощью опцииfill_color можно заливать фигуру выбранным цветом;
–points ([[x1,y1], [x2,y2],...])— построение точек с координатами[x1,y1], [x2,y2], ... Опция point_type позволяет выбрать стиль точки, например, окружность: point_type= circle Опция point_size позволяет установить
размер точки, например, point_size = 3. Опция key позволяет выполнять
подписи к точкам;
–rectangle ([x1,y1], [x2,y2]) — построение прямоугольника, где [x1,y1],
[x2,y2] — координаты противолежащих углов;
–bars ([x1,h1,w1], [x2,h2,w2, ...]) — построение столбиковых диаграмм.
Здесь x1, x2, ... - точки, относительно которых центрируется столбик, h1,
h2, ... - высота столбиков, w1, w2, ... - ширина столбиков;
–ellipse (xc, yc, a, b, ang1, ang2) — построение эллипса с центром в точке (xc, yc) и др.
Для повышения эффективности программных продуктов предпочтительнее иметь в распоряжении пользователя – мощные встроенные функции или алгоритмы получения геометрических образов. Такими возможностями обладают, в том числе программы класса CAD систем, так и практически все системы компьютерной математики.
2D и 3D графика в настоящий момент используются в области «яркой» графики, высоко информационных сред (графиков, диаграмм, геоинформационных систем, систем проектирования и т. д.), новых возможностей в искусстве и инсталляциях, а также для работы с человеческими чувствами и впечатлениями.
История проекта, известного сейчас под именем Maxima, началась в конце 60-х в Массачусетском технологическом институте, где в рамках проекта MAC была создана программа символьных вычислений, получившая название Macsyma (MAC Symbolic MAnipulation). Языком программирования был выбран Lisp. Как показало время, это был полностью оправданный выбор, поскольку и сейчас этот язык не только существует, но и продолжает развиваться.
Macsyma была первой программой символьных вычислений, и много положений ее идеологии были позже заимствованы известными сейчас коммерческими продуктами Maple и Mathematica. Macsyma была закрытым коммерческим проектом, поскольку его финансировали, в частности, и военные организации, например, Оборонный и энергетический департамент США (DepartmentsofEnergy & Defence, DOE & DOD), Агентство перспективных разработок министерства обороны США (DAPRA – Defense Advanced Research Project Agency), на средства которого была создана первая сеть национального масштаба ARPANET. Проект с переменной активностью действовал достаточно длительное время.
В 1982 году профессор Уильям Шелтер на основе кода Macsyma начал создавать собственную версию программы под названием Maxima. В 1998 г. Шелтеру удалось получить от DOE & DOD права на публикацию кода по лицензии GPL. С этого момента Maxima позиционируется как свободное программное обеспечение с открытым кодом. Проект Macsyma прекратил свое существование в 1999 году, но Шелтер продолжал заниматься разработкой Maxima вплоть до своей смерти в 2001 году. После его смерти программа продолжает активно развиваться [13].
Инсталляция Maxima содержит два варианта: консольный (XMaxima) и с графическим интерфейсом (wmMaxima). Система имеет много локализаций, в том числе и русскую. При этом во время инсталляции автоматически выбирается та локализация, языковая раскладка которой по умолчанию является основной. Вместе с тем следует заметить, что русская локализация последних версий является достаточно несовершенной, в ней отсутствует перевод очень многих команд и текста в окнах. Остается только надеяться, что вопрос локализации – это вопрос только времени.
Базовая функциональность системы значительно расширяется специализированными пакетами, предназначенными для работы с размерными величинами, дополнительными функциями для работы с матрицами, работы с графами и т. п. Они есть в составе инсталляции системы и для работы с ними пользователю необходимо во время работы просто загрузить нужный пакет.
Основными преимуществами программы являются:
1. Возможность свободного использования (Maxima относится к классу свободных программ и распространяется на основе лицензии GNU). GNU General Public License – (Универсальная общедоступная лицензия GNU или Открытое лицензионное соглашение GNU) – наиболее популярная лицензия на свободное программное обеспечение, созданная в 1988 году. Её также сокращённо называют GNU GPL или даже просто GPL. Эта лицензия предоставляет пользователям компьютерных программ следующие права:
1) свободу запуска программы, с любой целью;
2) свободу изучения того, как программа работает, и её модификации;
3) свободу распространения копий;
4) свободу улучшения программы, и выпуска улучшений в публичный доступ.
2. Возможность функционирования под управлением различных ОС (в частности Linux и Windows).
3. Небольшой размер программы (дистрибутив занимает порядка 23 мегабайт, в установленном виде со всеми расширениями потребуется около 80 мегабайт).
4. Maxima имеет удобный графический интерфейс (wxMaxima) на русском языке, а также есть возможность работать в режиме командной строки.
5. Maxima дает возможность решать широкий класс задач [24].
В математике удобно полученное решение выводить в графическом виде. Система компьютерной математики Maxima может строить графики двумерных и трехмерных функций, заданных в явном виде, впараметрическом виде, в виде таблицы.
Графические возможности в Maxima реализованы посредством внешних программ. По умолчанию, построением графиков в Maxima занимается программа Gnuplot и разрабатываемый вместе с Maxima пакет Openmath. Рассмотрим некоторые возможности системы для графической визуализации данных.
Программирование графиков функций, заданных в явном виде. Для построения двумерных графиков используются функция:
.
Первый аргумент – список функций, второй и третий – ограничения поосям координат. Третий аргумент является необязательным. Если егоне указать – он будет подобран автоматически.
Чтобы не вводить длинный вызов функции plot2d со всеми её параметрами, заполним вспомогательные формы для построения графика.
Для этого в меню выбираем команду «Графики → Plot2d…».После выполнения данной команды появляется окно с формой, которую необходимо заполнить.
В первой строке необходимо ввести уравнение функции или название функций, если функция была задана ранее. Если функций несколько, то они отделяются запятыми. Графики в этом случае автоматически нарисуются разными цветами.
При помощи кнопки Дополнительно можно выбрать либо параметрический (функция задана параметрическом виде), либо дискретный график (функция задана по точкам). Во второй строчке формы задается диапазон изменения переменной x (можно поменять на другое название, например t). В строке Формат можно выбрать один из методов построения графиков функций. В поле Опции можно выбрать некоторые параметры графика.
Возможные форматы: встроенный – график нарисуется в том же окне, что и командная строка; gnuplot – график нарисуется в отдельном окне, и его можно масштабировать (изменять размеры за счет изменения размеров окна), причем при движении мышки внизу слева отображаются координаты положения указателя; openmath – в этом формате график может видоизменяться в интерактивном режиме, в частности его можно масштабировать не только за счет изменения размеров окна, но и с помощью кнопок; по-умолчанию – построением графиков занимается gnuplot.
Используются опции: setzeroaxis – проводит оси через начало координат, setgrid – прорисовывает сетку, setsizeratio 1– выравнивает масштабы по осям координат, чтобы круг на мониторе выглядел круглым, а не в виде овала. Отметим, что последнее обстоятельство связано с тем, что разрешение монитора по горизонтали и по вертикали разное (пиксель не является «круглым») [8].
Пример 1. Построить графики функций, заданных в явном виде на отрезке
Решение: график и этой функции представлен на рисунке 10.
Рисунок 1. График функции:
Программирование графиков функций, заданных в параметрическом виде. Для построения графика параметрически заданной функции используется команда:
где x – выражение и y – выражение задают зависимость вида x=x(t), y=y(t), где t – переменная параметризации; [t, t1, t2] задает отрезок, в пределах которого параметр t будет изменяться; nticks задает количество кусочков, на которые будет разбит интервал изменения параметра при построении графика.
Для удобства набора команды достаточно заполнить две формы: после щелчка по кнопке «Графики → Plot2d …» появляется окно диалога Двумерный график, затем нажимаем на кнопку Дополнительно, на этой форме появляется второе окно Параметрический график [19].
Пример 2. Построить окружность единичного радиуса для функции, заданной параметрически:
Решение: программа построения и график представлены на рисунке 11.
Рисунок 2 – График окружности единичного радиуса
После выполнения этой команды на мониторе появляется эллипс, а не окружность. Чтобы этого не происходило необходимо использовать опцию setsizeratio 1; которая выравнивает масштабы по осям координат. Тогда в результате получим (рисунок 3).
Рисунок 3 – График и программа построения окружности
Программирование дискретных функций. Maxima может рисовать графики функций, заданных таблично. Для этого ей нужны два списка: один – для значений абсцисс дискретных точек, второй – для значений ординат этих точек. Командная строка в этом случае выглядит так:
Стили бывают: точечный график (points), сплошная линия (lines) и
линии с точками (linespoints). Точечный график – [points,3,2,6]означает следующее:3 – толщина маркеров, 2 – номер цвета, 6 – тип маркера. Сплошная линия – [lines,2,1] означает следующее:2 – толщина линии, 1 – цвет линии. Линия с точками – [linespoints,1,2,3,4] означает следующее: 1 – толщина линии. 2 – толщина маркеров, 3 – номер цвет, 4 – тип маркера.
Предусмотрено 13 типов маркеров: 1– заполненные кружочки; 2 – не заполненные кружочки; 3 – знак +; 4 – крестик; 5 – звездочка; 6, 7– за полненный и незаполненный квадратик; 8, 9 – заполненный и незаполненный треугольник; 10,11 – повернутые заполненные и незаполненные треугольник; 12,13 – заполненные и незаполненные ромбик. Для удобства набора можно заполнить две формы: после щелчка по кнопке «Графики → Plot2d …» появляется окно диалога Двумерный график, затем нажимаем на кнопку Дополнительно, на этой форме появляется второе окно Дискретный график [19].
Пример 3. Построить пятиконечную звезду. Программа и график построения представлены на рисунке 3.
Рисунок 3 – Программа и график построения пятиконечной звезды
Программирование графики в полярной системе координат. Если использовать две окружности с одинаковыми радиусами и вращать одну вокруг другой, то получится кардиоида. По мнению математиков, получаемая кривая напоминающая сердце. В прямоугольной декартовой системе координат уравнение кардиоиды имеет сложный вид:
В полярной системе координат уравнение кардиоиды имеет простой вид:
где ρ – расстояние от точки кривой до начала координат, t– полярный
угол, a – диаметр окружности.
В Maxima графики в полярной системе координат рисует функция draw2d (); но, прежде чем пользоваться этой функцией, нужно дополнительно загрузить этот модуль оператором load(draw).Подробное описание дополнительных опций пакета приведено в приложение А.
Пример 4. Построить кардиоиду
Решение: график и программа кардиоиды на рисунке 4.
Рисунок 4 – График кардиоиды
Программирование графики функций, заданных неявно. В системе Maxima есть специальная команда, которая позволяет строить графики функций, заданных неявно. Ее синтаксис:
.
Где выражение – это уравнение, задающее неявную функцию, x_range и y_range– промежутки изменения переменных x и y.
Для того чтобы можно было использовать функцию implicit_plot, необходимо подключить пакет, содержащий эту функцию, с помощью команды load(implicit_plot).
Пример 5. Построить окружность единичного радиуса .
Решение: график и программа окружности единичного радиуса на рисунке 5.
Рисунок 5 – График окружности единичного радиуса
Приведенные выше примеры выполнялись в Maxima13.04.02 версия 5.31.2.
Следующие программы составлялись в системе Maxima 15.08.02 версия 5.37.2, которая представляет более широкие возможности для программирования геометрических образов.
Программирование построения трёхмерных графиков. Основная команда для построения трёхмерных графиков – plot3d.
Пример 6. Построение поверхности функции, заданной в явном виде:
Решение: график и программа функции представлен на рисунке 6.
Рисунок 6 – График функции
Трехмерные графики удобно строить в параметрическом виде. Для
этого используется библиотека Draw в ядре системы Maxima..
Пример 7. Построим параболоид вращения . В параметрическом виде уравнение параболоида имеет вид:
Решение: график параболоида на рисунке 7.
Рисунок 7 – График параболоида вращения
Для доступа к расширенным возможностям графики и расширения более сложных задач с геометрическими объектами следует использовать пакеты расширений, которые в Maxima можно дополнять самостоятельно.
В ходе выполнения курсовой работы использовались пакеты расширений:
– Fractals;
– Dynamics;
– Draw.
Доступ к расширенным возможностям названных пакетов можно получить после из загрузки в оперативную память с помощью распоряжения:
C помощью пакета fractals автора Jos’e Ram’ırez Labrador можно строить известные фракталы:
– треугольник Серпинского, фракталы, дерево, папоротник;
– множество Мандельброта и множества Жюлиа;
– снежинки Коха;
– отображения Пеано: кривые Серпинского и Гильберта.
Данный пакет обладает ограниченными возможностями. Однако рекомендуется изучить его исходный код, находящийся в файле fractals.mac. Параметры всех команд этого пакета, приведённых ниже, можно изменить непосредственно в тексте этого пакета или скопировать соответствующий кусок кода в свою рабочую область и изменить его.
Пример 8. Построение графика с помощью пакета расширений fractals заданная в параметрическом виде.
Решение: программа и график построения на рисунке 8.
Рисунок 8 – Программа и график построения с помощью пакета fractals
Пакет dynamics. C помощью пакета dynamics можно строить различные графически представления динамических систем и фракталов:
– паутинная диаграмма;
– бифуркационная диаграмма;
– эволюция орбиты одно- и двумерного отображений;
– «игра в хаос»;
– система итерированных функций, заданная аффинными преобразованиями;
– множества Жюлиа, Мандельброта;
В пакете реализован метод Рунге-Кутты 4-го порядка для решения систем дифференциальных уравнений.
Для вывода графики команды пакета dynamics используют команду plot2d, поэтому все опции options этой команды можно передавать в команды пакета dynamics, например, можно менять графические интерфейсы, различные стили графиков, цвета, менять масштаб осей на логарифмический и т.д. Смотрите список опций команды plot2d в справке по Maxima.
Пример 9: Построение графика с помощью пакета расширений dynamics.
Решение: программа и график представлены на рисунке 9.
Рисунок 9 – Программа и график примера 9
Пример 10. Построение графика с помощью пакета расширений draw.
Решение: программа и график на рисунке 10.
Рисунок 10 – График построения с помощью пакета расширений draw
Пример 11. Построения фигуры «Ying-Yang» с помощью пакета расширений draw.
Решение: программа и график построения (рис. 11).
Рисунок 11 – Символ Ying-Yang
Список использованных источников
Абрамов, Л. М. / Л. М. Абрамов, В. Ф. Капустин Математическое программирование. – Л. : Изд. ЛГУ, 1979. – 183 с.
Акритас, А. Основы компьютерной алгебры / А. Акритас. – М. : Мир, 1994. – 342 c.
Анисимов, Д. В. Создание единого, однородного, кросс - платформенного информационного пространства образовательного учреждения с помощью свободно-распространяемых программных продуктов / Д. В. Анисимов, В. Д. Кравченко, Д. М. Леньшин // Информационные технологии в образовании – 2007 : сб. науч. тр. – Ростов Н / Д : Ростиздат, 2007. – 111 с.
Графики онлайн «Grafikus.ru» [Электронный ресурс]. – Режим доступа : http://grafikus.ru.
Графический калькулятор онлайн «FooPlot.com» [Электронный ресурс]. – Режим доступа : http://fooplot.com.
Губина, Т. Н. Решение дифференциальных уравнений в системе компьютерной математики Maxima : учебное пособие / Т. Н. Губина, Е. В. Андропова. – Елец : ЕГУ им. И. А. Бунина, 2009. – 99 с.
Документация по текущей версии пакета [Электронный ресурс]. – Режим доступа : http:/maxima.sourceforge.net/docs/manual/en/maxima_51.html #SEC257.
Ильиных, Д. В. Дидактическая компьютерная игра в процессе изучения правильных многогранников / Д. В. Ильиных, Р. Ф. Мамалыга. – Челябинск, ЧГПУ, 2006. – 34 с.
Кетков, Ю. Л. MATLAB 7: программирование, численные методы / Ю. Л. Кетков, А. Ю. Кетков, М. М. Шульц. – СПб. : БХВ-Петербург, 2005. – 752 c.
Ким, Л. 3D Studio MAX для дизайнера. Искусство трехмерной анимации / Ким Ли. – М. : ДиаСофт, 2003. – 157 c.
Компьютерная математика с Maxima – Вики-портал образовательных ресурсов Волгоградского государственного социально-педагогического университета [Электронный ресурс]. – Режим доступа : http://wiki.vspu.ru /users/ danisrad/maxima/index.
Коновалов, А. Б. Система компьютерной алгебры GAP. Методические указания. Запорожье: Запорожский государственный университет, 1999. – 42 с. [Электронный ресурс]. – Режим доступа : http://www.zsu.zp.ua/ ppages/konoval/papers/ MetodGAP.htm.
Кормилицына, Т. В. Анализ свободно распространяемого программного обеспечения для сопровождения изучения математики в школе / Т. В. Кормилицына, А. А. Николаева // Интеграция информационных систем в образовании: материалы V междунар. конф. – Псков, 2008. – 56-59 с.
Кузьмин, А. В. Использование свободного программного обеспечения в образовательном процессе / А. В. Кузьмин, С. Ю. Петрова // Новые технологии в образовании. – 2007. – № 2 (20). – 49 с.
Лабораторный практикум «Основы работы в математическом пакете wxMaxima» [Электронный ресурс]. – Режим доступа : http://pedgazeta.ru/pages/ 2012/05/11/end_1336725923.pdf.
Малакаев, М. С. Основы работы с системой компьютерной алгебры Maxima: учеб. пособие / М. С. Малакаев, Л. Р. Секаева, О. Н. Тюленева. – Казань : Казанский университет, 2012 – 57 с.
Мамалыга, Р. Ф. Один из аспектов развития пространственного мышления / Р. Ф. Мамалыга. – Пермь, ПГПУ, 2004 – 19 с.
Математический практикум с применением пакета Maxima [Электронный ресурс]. – Режим доступа : http://www.pmtf.msiu.ru/chair31/ students/spichkov/maxima2.pdf.
Отставнов, М. Прикладные свободные программы в школе / М. Отставнов. – М. : Медиа Технолоджи сервис, 2003. – 96 с.
Подколзин, А. С. Компьютерное моделирование логических процессов. Архитектура и языки решателя задач / А. С. Подколзин. – М. : ФИЗМАТЛИТ, 2008. – 1023 c.
Романычева, Э. Т. Инженерная и компьютерная графика / Э. Т. Романычева, Т. Ю. Соколова, Г. Ф. Шандурина. – М. : ДМК Пресс, 2001. – 348 с.
Система компьютерной алгебры Maxima [Электронный ресурс]. – Режим доступа : http://maxima.sourceforge.net/ru.
Сологаев, В. И. Maxima: руководство [Электронный ресурс]. – Режим доступа : http://sologaev2010.narod.ru.
Статьи Тихона Тарнавского [Электронный ресурс]. – Режим доступа : http://maxima.sourceforge.net/ru.
Стахин, Н. А. Основы работы с системой аналитических (символьных) вычислений Maxima / Н. А. Стахин. – М. : 2008. – 86 с.
Тарасевич, Ю. Ю. Информационные технологии в математике / Ю. Ю. Тарасевич. – М. : Солон-пресс, 2003. – 144 с.
Христофорова, А. В. Основные алгоритмы динамической геометрии [Электронный ресурс]. – Режим доступа : http://ispace.mordgpi.ru/2015/ 04/24/основные-алгоритмы-динамической-гео.
Чичкарёв, Е. А. Компьютерная математика с Maxima / Е. А. Чичкарев. – М. : ALT Linux, 2012. – 384 с.
Шикин, Е. В. Компьютерная графика: Полигональные модели: практическое руководство / Е. В. Шикин, А. В. Боресков. – М. : Диалог – МИФИ, 2005. – 462 с.
|