Просмотр содержимого документа
«Графика в пакетах Maxima»
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ ИМЕНИ М. Е. ЕВСЕВЬЕВА»
Физико-математический факультет
Кафедра информатики и вычислительной техники
ГРАФИКА В ПАКЕТАХ РАСШИРЕНИЙ СИСТЕМЫ MAXIMA
Выполнила: студентка 5 курса МДМ-114 Косарева Д.А.
Проверила: канд. физ.-мат. н., доцент Кормилицына Т.В.
Саранск 2019
Предшественницей Maxima была одна из первых систем компьютерной алгебры Macsyma, появившаяся еще в 1960-х годах на больших ЭВМ. Работу над ней по заданию Министерства энергетики США (DOE) вел Массачусетский технологический институт. Система создавалась на языке искусственного интеллекта Lisp.
Университетская разработка, несмотря на ее фундаментальное значение, не смогла выдержать конкуренцию с коммерческими системами компьютерной алгебры для персональных компьютеров Maple и Mathematica, которые заняли первые места на рынке таких систем, развиваемых крупными коллективами ученых, математиков и программистов. И тогда один из главных разработчиков, профессор Техасского университета Уильям Шелтер получил от DOE разрешение на открытую публикацию кода программы с лицензией GPL под именем Maxima. Он же долгое время разрабатывал как саму Maxima, так и один из диалектов языка Lisp — GCL (GNU Common Lisp), на котором и разрабатывалась эта система. После смерти Уильяма Шелтера в 2001 году развитие Maxima было продолжено его последователями во главе с Джеймсом Эмундсоном.
Как система компьютерной алгебры Maхima обладает следующими возможностями:
Операции с полиномами (манипуляция рациональными и степенными выражениями, вычисление корней и т. п.).
Вычисления с элементарными функциями.
Вычисления со специальными функциями, включая эллиптические функции и интегралы.
Вычисление пределов и производных.
Аналитическое вычисление определенных и неопределенных интегралов.
Решение интегральных уравнений.
Решение алгебраических уравнений и их систем.
Операции со степенными рядами и рядами Фурье.
Операции с матрицами и списками.
Решение большого числа задач линейной алгебры.
Решение задач интерполяции и приближения различных видов зависимости.
Статистические вычисления и реализация метода наименьших квадратов.
Операции с тензорами.
Функции теории чисел, теории групп и абстрактной алгебры.
2D и 3D графическая визуализация.
Рассмотрим графические возможности данной системы.
Все варианты интерфейса для построения графиков используют две базовых функции: plot2d (построение двумерных графиков) и plot3d (построение трехмерных графиков). При использовании wxMaxima кроме них используются ещё две аналогичные команды: wxplot2d и wxplot3d.Все команды позволяют либо вывести график на экран, либо (в зависимости от параметров функции) в файл.
В позиции меню «Графики» предусмотрен вывод панелей задания 2D и 3D и их опций. Панель задания двумерного графика представлена на рис. 1, а пример построения графика дан на рис. 2.
Рис. 1. Панель задания двумерного графика
Рис. 2. Пример построения двумерного графика
Высокое качество графики демонстрирует рис. 3, на котором дискретность графики практически незаметна.
Рис. 3. Построение графика синусоиды
Двумерная графика в сочетании с большим числом встроенных элементарных и специальных функций открывает большие возможности в визуализации: большое число опций позволяет разнообразить графики с помощью изменения цвета и стиля линий, выбора типа координатных осей, нанесения на график различных надписей и т. д.
График явной функции y = f(x) на отрезке [a, b] можно построить с помощью функции plot2d(f(x), [x,a,b], [y,c,d], опции). Опции не обязательны, однако, для изменения свойств графика их нужно задавать.
Если вы хотите построить график с дополнительными настройками, их нужно перечислить через запятую, причём каждый параметр записывается в квадратных скобках в виде [параметр, значение]. Вот некоторые из них.
[y, c, d] - ограничение диапазона графика по оси ординат y.
[box, true] - если указано true, отображает рамку, если false - нет.
[color, цвет1, цвет2, ...] - цвета линий (red, blue, green, yellow и т.д.).
[legend, стр1, стр2, ...] - легенда.
[logx],[logy] - логарифмический масштаб по x и y соответственно.
[point_type, тип1, тип2, ...] - тип линий (points, linespointc, circle и др.).
Параметр [y, c, d] можно не задавать, тогда высота графика выбирается по умолчанию. Пример представлен на рисунке 4.
Рис. 4. Построение графиков с дополнительными параметрами
Для построения графиков функций, заданных параметрически, используется опция parametric. Для построения графика указывается область изменения параметра. Пример графика параметрической функции представлен на рисунке 5.
Рис. 5. График параметрической функции
Для построения графика в полярных координатах нужно задать изменение значений полярного радиуса и полярного угла. Пусть r = r(f) (a ≤ f ≤ b) зависимость полярного радиуса r от полярного угла f. Тогда график этой функции в полярных координатах можно построить, задав у функции plot2d опцию [gnuplot_preamble, setpolar; set zeroaxis]. Результат приведён на рисунке 6.
Рис. 6. Пример построения двумерного графика
Трехмерная графика является основой для представления сложных сигналов и визуализации построения пространственных фигур. Панель задания трехмерного графика представлена на рис.7. В поле «Формат» можно установить следующие форматы графики: по умолчанию, встроенный, gnuplot и openmath. В обычно пустом поле «Опции» можно установить дополнительные опции графики.
Рис. 7. Панель задания трехмерного графика
На рис. 8 дано построение простого графика sin(x*y). Как нетрудно заметить, wxMaxima при построении графика по умолчанию окрашивает построенную поверхность. Характер и стиль графиков можно менять с помощью опций.
Рис. 8. Построение графика функции sin(xy)
Основная команда для построения трёхмерных графиков – plot3d. Рассмотрим технологию построения графиков с использованием интерфейса gnuplot. Поверхность функции в цветном изображении строится с использованием опции pm3d (рисунок).
Для расширения возможностей графики используется предварительно загружаемый пакет расширения draw. Его функции имеют множество опций, существенно повышающих возможности 3D-графики.
Сеточная модель объемной параболы, построенная с применением функции draw3d, представлена на рис. 9. Замечательным свойством графики, построенной этой функцией, является возможность масштабирования и поворота графика мышкой.
Рис. 9. Построение сеточной модели параболы функцией draw3d
Большие возможности в построении трехмерных графиков открывает параметрическое задание функций. Это демонстрирует рис. 10.
Функция plot3d, также благодаря опциям, обеспечивает построение очень большого числа различных графиков. Она позволяет строить графики функций, заданных в цилиндрических или сферических координатах за счёт использования преобразования координат (опция [transform_xy, polar_to_xy] или функция make_transform (vars, fx, fy, fz)).
На рис. 11 показан график сложной поверхности, заданной уравнением , а на рисунке 12 представлен график функции .
Рис. 11. График сложной поверхности
Рис. 12. График сложной поверхности 2
Новейшая реализация свободно распространяемой системы компьютерной алгебры wxMaxima способна почти на равных соперничать с возможностями лидеров рынка — системами Maple и Mathematica. В математическом смысле Maxima часто работает более строго, но проигрывает в скорости решения трудоемких задач численного математического моделирования. Система имеет современный графический интерфейс пользователя и превосходные функциональные и особенно графические возможности. Систему wxMaxima можно рекомендовать школам и университетам, а также научным работникам, проектировщикам и инженерам для выполнения массовых и повседневных научно-технических расчетов. Эту систему можно применять также для решения фундаментальных задач математического моделирования в различных областях науки и техники. Maxima включена как подсистема в состав мощной системы компьютерной математики Sage.
Список использованных источников
www.maxima.sourceforge.net
Стахин Н. А. Основы работы с системой аналитических (символьных) вычислений Maxima. М.: Федеральное агентство по образованию, 2008.
Чичкарев Е. А. Компьютерная математика с Maxima. Руководство для школьников и студентов. М.: ALT Linux, 2012.
Дьяконов В. П. Энциклопедия компьютерной алгебры. М.: ДМК-Пресс, 2009.
Дьяконов В. П. Maple 10/11/12/13/14 в математических расчетах. М.: ДМК-Пресс, 2011.
Дьяконов В. П. Mathematica 5.1/5.2/6 в математических и научно-технических расчетах. М.: Солон-Пресс, 2012.