Просмотр содержимого документа
«Обзор пакетов расширений системы Maxima»
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ ИМЕНИ М.Е. ЕВСЕВЬЕВА»
Факультет физико-математический
Кафедра информатики и вычислительной техники
РЕФЕРАТ
Обзор пакетов расширений системы Maxima
Выполнила: студентка 5 курса
группы МДМ-117 Сафаева Н.В.
Проверила: Кормилицина Т.В.
Саранск – 2021
Содержание
Введение 3
1 Назначение и возможности пакетов расширений системы Maxima 5
1.2 Исторические сведения о системе Maxima 5
1.2 Структура систем символьной математики и назначение пакетов расширений 7
2 Исследование возможностей библиотеки пакетов системы Maxima 10
2.1 Пакеты расширения визуализации решений математических задач и алгоритмы решения задач 10
2.2 Пакеты расширения для решения задач математической статистики и алгоритмы решения задач 12
Заключение 16
Список используемой литературы 17
Введение
Современный мир обусловлен активной компьютеризацией. Все области жизни человека становятся технологизированы. Наука все более информатизирована. В частности математика, как область науки, не остаётся в стороне от информационных технологий. Именно поэтому исследования в области решения специальных задач путем применения программы Maxima является особенно актуальным в наше время.
Maxima – система для работы с символьными и численными выражениями, включающая дифференцирование, интегрирование, разложение в ряд, преобразование Лапласа, обыкновенные дифференциальные уравнения, системы линейных уравнений, многочлены, множества, списки, векторы, матрицы и тензоры. Maxima производит численные расчеты высокой точности, используя точные дроби, целые числа и числа с плавающей точкой произвольной точности. Система позволяет строить графики функций и статистических данных в двух и трех измерениях.
Исходный код Maxima может компилироваться на многих системах, включая Windows, Linux и MacOS X. На SourceForge доступны исходные коды и исполняемые файлы для Windows и Linux.
Maxima – потомок Macsyma, легендарной системы компьютерной алгебры, разработанной в начале 60-х. Это единственная основанная на Macsyma система, все еще публично доступная и имеющая активное сообщество пользователей благодаря своей открытости. Macsyma произвела в свое время переворот в компьютерной алгебре и оказала влияние на многие другие системы, в числе которых Maple и Mathematica.
Работу над Maxima вел Уильям Шелтер с 1982 года и до своей смерти в 2001 году. В 1998 году он получил разрешение на публикацию исходного кода под лицензией GPL. Выживание Maxima стало возможным только благодаря его усилиям и способностям, мы очень благодарны ему за уделенные проекту время и знания эксперта, которые поддерживали код DOE Macsyma актуальным и качественным. После его смерти была сформирована группа пользователей и разработчиков, ставящая своей целью донести Maxima до широкой аудитории.
Актуальность работы: в работе исследуются ресурсы Maxima, реализованные в виде встроенных пакетов. В настоящее время пользователями активно изучается возможности данных пакетов, позволяющие использовать мощные дополнительные ресурсы системы, предназначенные для решения специфических задач. Отсутствие учебной литературы является значительным затруднением для обычных пользователей, поэтому описание этих возможностей является актуальным.
Цель работы: является рассмотрение дополнительных подгружаемых пакетов для системы Maxima, их основных свойств, функций и особенностей, используемых для решения математических задач.
Объект исследования: система компьютерной математики Maxima.
Предмет исследования: возможности пакетов расширений системы Maxima для решения математических задач.
Задачи:
1) исследование библиотеки пакетов расширений и составление каталога пакетов;
2) анализ пакетов расширений, предназначенных для решения математических задач;
3) проведение вычислительных экспериментов с эталонными алгоритмами пакетов расширений;
4) составление алгоритмов решений математических задач в пакетах расширений (фракталы, математическая статистика, графика и визуализация).
1 Назначение и возможности пакетов расширений системы Maxima 1.2 Исторические сведения о системе Maxima
История проекта, известного сейчас под именем Maxima, началась в конце 60-х в Массачусетском технологическом институте, где в рамках проекта MAC была создана программа символьных вычислений, получившая название Macsyma (MAC Symbolic MAnipulation). Языком программирования был выбран Lisp. Как показало время, это был полностью оправданный выбор, поскольку и сейчас этот язык не только существует, но и продолжает развиваться.
Macsyma была первой программой символьных вычислений, и много положений ее идеологии были позже заимствованы известными сейчас коммерческими продуктами Maple и Mathematica. Macsyma была закрытым коммерческим проектом, поскольку его финансировали, в частности, и военные организации.
В 1982 г. профессор Уильям Шелтер на основе кода Macsyma начал создавать собственную версию программы под названием Maxima. В 1998 г. Шелтеру удалось получить от DOE & DOD права на публикацию кода по лицензии GPL. С этого момента Maxima позиционируется как свободное программное обеспечение с открытым кодом. Сам проект Macsyma прекратил свое существование в 1999 г., но У. Шелтер продолжал заниматься разработкой Maxima вплоть до своей смерти в 2001 г. И после его смерти программа продолжает активно развиваться.
Инсталляция Maxima содержит два варианта: консольный (XMaxima) и с графическим интерфейсом (wmMaxima). Система имеет много локализаций, в том числе и русскую. При этом во время инсталляции автоматически выбирается та локализация, языковая раскладка которой по умолчанию является основной. Вместе с тем следует заметить, что русская локализация последних версий является достаточно несовершенной, в ней отсутствует перевод очень многих команд и текста в окнах. Остается только надеяться, что вопрос локализации - это вопрос только времени. Базовая функциональность системы значительно расширяется специализированными пакетами, предназначенными для работы с размерными величинами, дополнительными функциями для работы с матрицами, работы с графами и т. п. Они есть в составе инсталляции системы и для работы с ними пользователю необходимо во время работы просто загрузить нужный пакет.
В настоящее время Maxima – это система компьютерной математики, которая предназначена для выполнения математических расчетов (как в символьном, так и в численном виде) таких как:
– упрощение выражений;
– графическая визуализация вычислений;
– решение уравнений и их систем;
– решение обыкновенных дифференциальных уравнений и их систем;
– решение задач линейной алгебры;
– решение задач дифференциального и интегрального исчисления;
– решение задач теории чисел и комбинаторных уравнений и др.
В системе имеется большое количество встроенных команд и функций, а также возможность создавать новые функции пользователя. Система имеет свой собственный язык. Она также имеет встроенный язык программирования высокого уровня, что говорит о возможности решения новых задач и возможности создания отдельных модулей и подключения их к системе для решения определенного круга задач.
1.2 Структура систем символьной математики и назначение пакетов расширений
Современные универсальные системы имеют следующую типовую структуру: (рис.1)
Рис. 1
Центральное место занимает ядро системы. Оно представляет собой множество заранее откомпилированных функций и процедур, представленных в машинных кодах и обеспечивающих набор встроенных функций и операторов системы. Этот набор должен быть функционально полным. Роль ядра особенно велика в системах символьной математики, где в ядре хранятся многие сотни, а то и тысячи правил преобразования математических выражений. Ядро математических систем тщательно оптимизируется, поскольку от скорости его работы зависит скорость вычислений, выполняемых данной системой компьютерной математики. Этому способствует и предварительная компиляция ядра. Доступ пользователя в ядро с целью его модификации, как правило, исключен. Объем ядра может достигать нескольких мегабайт. Пишется ядро на языке реализации системы – чаще всего это С или С++ (лишь с системе Derive использован язык искусственного интеллекта MuLISP) и компилируется на фирме – разработчике системы.
Интерфейс дает пользователю возможность обращаться к ядру с своими запросам и получать результат решения на экране дисплея. Интерфейс современных систем символьной математики базируется на средствах операционных систем Windows и обладает практически всеми их возможностями: перемещаемые и масштабируемые окна документов, диалоговые и информационные окна, кнопки управления, общение с периферийными устройствами и т.д. Нередко интерфейс систем обеспечивает возможность создания и редактирования библиотечных модулей и пакетов расширения систем.
Функции и процедуры, включенные в ядро, выполняются предельно быстро. С этой точки зрения в ядро было бы выгодно включать как можно больше вычислительных средств. Однако это невольно приводит к замедлению поиска нужных средств из-за возрастания их числа, увеличению времени загрузки ядра и к другим нежелательным последствиям. Поэтому объем ядра ограничивают, но к нему добавляют библиотеки более редких процедур и функций, к которым обращается пользователь, если в ядре не обнаружена нужная процедура или функция. Некоторые системы допускают модернизацию библиотек и их расширение силами самих пользователей.
Кардинальное расширение возможностей систем и их адаптация к решаемым конкретными пользователями задачам достигается за счет пакетов расширения систем. Эти пакеты, как правило, пишутся на собственном языке программирования той или иной системы, что делает возможным их подготовку обычными пользователями, хотя в базовую поставку систем включаются профессионально подготовленные фирменные пакеты расширения. Многие фирмы практикуют поставку подобных пакетов, подготовленных многочисленными пользователями таких систем, прежде всего профессионалами-математиками, разумеется, после их тщательной проверки и фильтрации на фирме-разработчике математической системы.
Справочная система обеспечивает получение оперативных справок по вопросам работы с СКМ с примерами такой работы. В справочные системы нередко включают и такой материал, как математические таблицы, формулы для нахождения производных и интегралов, алгебраические преобразования и т. д. Большинство справочных систем написаны на английском языке, что затрудняет их применение нашими пользователями .
2 Исследование возможностей библиотеки пакетов системы Maxima 2.1 Пакеты расширения визуализации решений математических задач и алгоритмы решения задач
Пакет Draw. Загружается пакет с помощью команды load(draw), в который входят:
функция draw2d (опции, explicit (имя_функции, независимая_переменная, min, max), опции) – функция, предназначенная для построения графиков на плоскости с применением большого количества дополнительных опций:
– xrange, yrange – установлены по умолчанию – определяют промежуток изменения значений переменной по осям Ox и Oy. В случае необходимости, можно изменять значений вручную. Например, xrange = [-2, 3];
– grid – в случае, если grid=true, на координатной плоскости выводятся линии сетки;
– title – позволяет выводить заголовок к графику функции. Например, title = "Exponential function";
– 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 и др.
Заметим, что опции draw могут быть глобальными (тогда в команде draw они стоят после графического объекта) и локальными (тогда их нужно писать перед графическим объектом, поскольку, если таковых несколько, у каждого могут быть свои опции).
2.2 Пакеты расширения для решения задач математической статистики и алгоритмы решения задач
Пакет Maxima включает мощный модуль для линейного и нелинейного оценивания параметров различных моделей с использованием метода наименьших квадратов – пакет lsquares. Основная функция пакета lsquares – это функция lsquares_estimates.
Функция предназначена для оценки параметров, лучше всего соответствующие уравнению e в переменных x по набору данных D определяются методом методом наименьших квадратов. Функция lsquares_estimates сначала пытается отыскать ищет точное решение, и если это не удаётся, ищет приблизительное решение. Возвращаемое значение – список вида [a = ..., b = ..., c = ...].
Элементы списка обеспечивают минимум среднеквадратичной ошибки. Данные D должны быть матрицей. Каждый ряд - одна запись или один случай, каждый столбец соответствует значениям некоторой переменной. Список переменных x дает название для каждого столбца D (даже для столбцов, которые не входят в анализ). Список параметров содержит названия параметров, для которых отыскиваются оценки. Уравнение e является выражением или уравнением в переменных x и a; если e записано не в форме уравнения, его рассматривают как уравнение e = 0. Если некоторое точное решение может быть найдено при помощи solve, данные D могут содержать и нечисловые значения.
Дополнительные аргументы lsquares_estimates определены как уравнения и передаются дословно функции lbfgs, которая используется, чтобы найти оценки численным методом, когда точный результат не найден. Однако, если никакое точное решение не найдено, у каждого элемента D должно быть числовое значение, в том числе константы (такие как %pi и %e) или числовые литералы (целые числа, rationals, обычные плавания, и bigfloats). Численные расчеты выполнены с обычной арифметикой с плавающей запятой, таким образом все другие виды чисел преобразованы к значениям с плавающей точкой. Для работы с lsquares_estimates необходимо загрузить эту функцию командой load(lsquares).
Для расчёта невязок для уравнения при подстановке в него данных, содержащихся в матрице, можно использовать функцию lsquares_residuals (D, x, e, a) (смысл параметров тот же, что и для функции lsquares_estimates).
Система Maxima содержит ряд функций для выполнения статистических расчётов (описательной статистики), объединённые в пакет descriptive. Функции, входящие в состав descriptive, позволяют выполнить расчёт дисперсии, среднеквадратичного отклонения, медианы, моды и т.п.
Названия функций и краткое описание выполняемых ими действий приведены в таблице.
Таблица 1
Функция
Выполняемые действия
Синтаксис вызова и примечания
Mean
Вычисление среднего
mean (list) или mean (matrix)
Geometric_mean
Вычисление среднего геометрического
geometric_mean(list) или geometric_mean(matrix)
Harmonic_mean
Вычисление среднего
гармонического
harmonic_mean(list) или harmonic_mean(matrix)
Cor
Вычисляет корреляционную матрицу
cor (matrix) или cor
(matrix, logical_value);
logical_value равна true
или false (false - при расчёте по ковариационной матрице)
Cov, cov1
Вычисляет ковариационную матрицу
cov1 (matrix), cov
(matrix)
Median
Вычисляет медиану
median (list), median
(matrix)
Std, std1
Вычисляет среднеквадратичное отклонение (корень квадратный из var или var1)
аналогично var
Var, var1
Вычисляет дисперсию случайной величины
var1 (matrix), var
(matrix), var1 (list),
var (list)
Central_moment
Вычисляет центральный
момент порядка k
central_moment (list, k),
central_moment (matrix,
k)
Noncentral_moment
Вычисляет момент порядка k
noncentral_moment (list, k), noncentral_moment
(matrix, k)
Skewness
Вычисление асимметрии
Skewness (list), skewness (matrix)
Kurtiosis
Вычисление эксцесса
kurtosis(list),
kurtosis(matrix)
Quantile
Вычисление p-квантиля
quantile (list, p),quantile
(matrix, p)
Maxi, mini
Выбор наибольшего и наименьшего значения в выборке соответственно
maxi(list), maxi(matrix),
mini(list), mini(matrix)
Mean_deviation,
Median_devation
Сумма абсолютных отклонений от среднего или медианы соответственно
Аналогично mean,
median
Range
Размах вариации выборки
range (list), range
(matrix)
List_correlations
Возвращает список, включающий две матрицы - матрицу, обратную ковариационной, и матрицу частных коэффициентов корреляции
list_correlations (matrix),
list_correlations (matrix,
logical_value)logical_value равна true или false (false
- при расчёте по ковари-
ационной матрице)
Subsample
Аналог функции
submatrix
Global_variances
возвращает список, содержащий различные виды дисперсии
global_variances (matrix)
Заключение
Maxima – система для работы с символьными и численными выражениями, включающая дифференцирование, интегрирование, разложение в ряд, преобразование Лапласа, обыкновенные дифференциальные уравнения, системы линейных уравнений, многочлены, множества, списки, векторы, матрицы и тензоры. Maxima производит численные расчеты высокой точности, используя точные дроби, целые числа и числа с плавающей точкой произвольной точности. Система позволяет строить графики функций и статистических данных в двух и трех измерениях.
Исходный код Maxima может компилироваться на многих системах, включая Windows, Linux и MacOS X. На SourceForge доступны исходные коды и исполняемые файлы для Windows и Linux.
Maxima – потомок Macsyma, легендарной системы компьютерной алгебры, разработанной в начале 60-х в MIT. Это единственная основанная на Macsyma система, все еще публично доступная и имеющая активное сообщество пользователей благодаря своей открытости. Macsyma произвела в свое время переворот в компьютерной алгебре и оказала влияние на многие другие системы, в числе которых Maple и Mathematica.
Работу над Maxima вел Уильям Шелтер с 1982 года и до своей кончины в 2001 году. В 1998 году он получил разрешение на публикацию исходного кода под лицензией GPL. Выживание Maxima стало возможным только благодаря его усилиям и способностям, мы очень благодарны ему за уделенные проекту время и знания эксперта, которые поддерживали код DOE Macsyma актуальным и качественным. После его кончины была сформирована группа пользователей и разработчиков, ставящая своей целью донести Maxima до широкой аудитории.
Список используемой литературы
1. Губина, Т. Н. Решение дифференциальных уравнений в системе компьютерной математики Maxima: учебное пособие / Т. Н. Губина, Е. В. Андропова – Елец : ЕГУ им. И. А. Бунина, 2009. – 99 с.
2. Лабораторный практикум «Основы работы в математическом пакете wxMaxima» [Электронный ресурс]. – Режим доступа: http://pedgazeta.ru/pages/ 2012/05/11/end_1336725923.pdf
3. Система компьютерной алгебры Maxima [Электронный ресурс]. – Режим доступа: http://maxima.sourceforge.net/ru/.
4. Чичкарёв, Е. А. Компьютерная математика с Maxima / Е. А. Чичкарев. – М.: ALT Linux, 2012. – 384 с.