УДК 519.688
О ВЕБ-СЕРВИСЕ MATHPARTNER © Г.И. Малашонок, И.А. Борисов
Ключевые слова', веб-сервис MathPartner; символьно-численные вычисления; компьютерная алгебра.
Мы характеризуем текущее состояние веб-сервиса MathPartner. Обсуждаем пути развития проекта и приводим примеры решения некоторых задач.
MathPartner — это веб-сервис для символьных и численных расчетов [1]. Язык Mathpar, также известный как АТ^К (от Active TgX), представляет собой схожий с TgX процедурный язык.
Веб-сервис предоставляет пользователю математическую тетрадь, в которой можно удобно и эффективно производить символьно-численные расчеты, решать дифференциальные уравнения, выполнять матричные и полиномиальные вычисления, строить изображения графиков, поверхностей, показывать их в движении, сохранять на своем компьютере полученное изображение или серию изображений как анимацию для последующей демонстрации и многое другое.
Главной особенностью тетради, в отличие от других подобных средств, является явное указание на математическое окружение — SPACE. Все вычисления производятся в фиксированном пользователем пространстве.
Окружение SPACE
SPACE — это пространство, в котором решается задача. Оно задается числовым множеством, вместе с набором основных операций над этим множеством и именами переменных, которые будут использоваться в полиномах, рациональных и трансцендентных функциях. По умолчанию устанавливается окружение SPACE = R64[x, у, z, t] — это обозначение для пространства с переменными x,y,z,t над полем вещественных чисел двойной точности (64 бита). Порядок переменных определяется пользователем и фиксируется слева направо: х < у < z < t. Пользователь может изменить SPACE, например, может установить SPACE = Q[x\. Примеры:
SPACE = Z[x,y, z\\
SPACE = RM[u,v\]
SPACE = C[x).
Основы языка Mathpar
Все функции, операторы и служебные слова начинаются с обратного слеша (\), например, \sin(x), \infty. Большинство соглашений, принятых в языке ТеХ, таких, как соглашения о верхних и нижних индексах, греческих буквах и другие, переносятся в язык Mathpar. Имеется специальное соглашение об элементах некоммутативных алгебр. Имена элементов некоммутативных алгебр должны начинаться с обратного сл^ша и заглавной буквы, например, \А.
Каждое выражение отделяется точкой с запятой (;) или комментариями, которые должны быть заключены в кавычки, как прямая речь в русском языке. Чтобы распечатать результаты выражений, используется команда \print (expl, . . ., expN). Параметры «expN» — это имена переменных, которые нужно вывести на печать.
Весь текст в тетради делится на отдельные окна, которые называются еще секциями. Все выражения в одной секции вычисляются последовательно друг за другом либо в соответствии с операторами управления, если они присутствуют.
Если среди выражений секции нет функций, осуществляющих вывод (print, prints, plot и т. д.), то автоматически будет распечатан результат последнего выражения.
Пользовательский интерфейс
В верхней навигационной панели располагаются ссылки на основные страницы: страницу приветствия, рабочую тетрадь, раздел помощи, страницу с информацией
о системе. Также в этой панели находятся кнопка переключения языка интерфейса, на данный момент доступны русский и английский языки, и ссылка для скачивания руководства в формате PDF. Руководство содержит справочные материалы по работе с системой и примеры использования с ответами.
Слева на странице рабочей тетради располагается командная панель. На ней в сворачивающихся группах размещены кнопки для ввода команд, греческих букв, математических символов, загрузки/скачивания файлов, аутентификации пользователя и т. д.
Все рабочее пространство тетради делится на секции. Секции располагаются последовательно друг под другом. У каждой секции сверху есть панель инструментов с кнопками слева направо: выполнить команды из этой секции; переключить отображение текста в секции (Mathpar — PDF), в режиме Mathpar текст можно редактировать, а в режиме PDF текст можно только просматривать; добавить новую секцию ниже данной; удалить из памяти все введенные выражения, т.е. забыть назначения переменных; удалить секцию.
При наведении курсора на любую из этих кнопок появляется всплывающая подсказка с описанием функциональности этой кнопки. Это же справедливо вообще для всех кнопок, которые есть у данного сервиса.
Функции
Чтобы вычислить значение функции в точке, используется функция \value(f, [varl, var2, varn]),
где f — это функция; varl, var2, . . . , varn — значения переменных из текущего окружения SPACE. Пример вычисления значения выражения д = sin(l2 + tg(23 +1)):
SPACE = R64[х, у] ; f = \sin(x~2 + \tg(y~3 + x)); g = \value(f, [1, 2]);
\print(g);
Вывод: g — 0.52
He обязательно подставлять в функцию числовые значения, можно подставлять любые выражения и получать композицию функций:
SPACE = R[x, у] ; f = х~2 + у~2;
g = \value(f, [\sin(x), \cos(x)]);
\Factor(g);
Вывод: 1
Здесь \Factor — это функция для упрощения тригонометрических и логарифмических функций и их композиций, при котором из суммы слагаемых выделяются сомножители или она объединяется в одно выражение. В данном случае используется основное тригонометрическое тождество. Противоположная ей функция для упрощения \Expand предназначена для преобразования выражения в сумму слагаемых. Примеры интегрирования и дифференцирования функций:
SPACE = q[х]; f = (2х~2 + 1)“3;
1 = \int(f) d х; dl = \D_{x} (1); d21 = \D_{x~2} (1);
\print(f, 1, dl, d21);
Вывод:
f = 8x6 + 12a;4 + 6x2 + 1;
I = (S/7)x7 + (12/5)a;5 + 2a;3 + x\ dl = 8a;6 + 12a;4 + 6a:2 + 1; d2l = 48x5 + 48a;3 + 12®;
Полиномы
Вычислить значение полинома в точке можно так же, как для функции:
SPACE = R[x, у]; f = х~2 + БхСу^З + х); g = \value(f, [1, 2]);
Вывод: д = 46.00
Решение алгебраического уравнения:
SPACE = С64[х];
FL0ATP0S = 2;
b = \solve(x~4 + 2х + 1 = 0);
Вывод: [(0.77 + 1.1213), (0.77 - 1.1213), -0.54, -1.0]
Решение алгебраического неравенства:
SPACE = R[x] ;
b = \solve((x + l)~2(x - 3)(x + 5) \ge 0);
Вывод: (—oo, —5] U { —1} U [3, oo);
Базис Гребнера (стандартный базис) полиномиального идеала:
SPACE = Z[х, у, z];
\gbasis(x~4y~3 + 2ху~2 + Зх + 1, х~3у~2 + х~2, х~4у + z~2+xy~4 + 3);
Вывод: [22 — хА + Зх2 — Юх + 9, у — 9х4 — За;3 — х2 — 81а; + 27, х5 + 9а;2 — 6а; + 1];
Решение полиномиальной системы:
514
SPACE = R[x, у] ;
\solveNAE(x''2 + у~2 - 4, у - х~2);
Результат представлен в виде матрицы, столбцы которой соответствуют переменной, а решения записаны в строках.
/ 1.60i -2.56 \
1.24 1.56
— 1.60i -2.56 \ -1.24 1.56
Тропическая математика В Mathpar представлены несколько тропических по-луполей и полуколец, такие как: ZMaxPlus, RMinMult, R64MinMax. Полный список тропических алгебр приведен в разделе помощи.
Имя тропической алгебры состоит из трех частей: числового множества; операции, соответствующей сложению; операции, соответствующей умножению.
Каждая алгебра содержит элементы 0 и 1, — оо и оо .
Примеры простых операций:
SPACE = ZMaxMult[х, у]; а = 2; Ъ = 9; c=a+b; d = а Ь;
\print(c, d)
Вывод: с = 9; d = 18;
Пусть А — матрица, х — столбец неизвестных и Ъ — столбец свободных членов. Для решения следующих задач Ах = b, Ах ^ b, Ах = х, Ах@Ь = х в идемпотент-ных алгебрах можно воспользоваться следующими функциями: \solveLAETropic(A, b), \solveLAITropic(A, b), \BellmanEquation(A), \BellmanEquation(A, b), соответственно.
Еще две функции предназначены для решения задач из теории графов. Это функции \searchLeastDistances(A) для поиска минимальных расстояний между вершинами графа. Здесь А — это матрица, в которой записаны длины всех ребер графа. И функция \findTheShortestPath(A, i, j), которая предназначена для построения кратчайших путей между i-й и j-й вершинами.
Заключение
Веб-сервис MathPartner — удобный и дружелюбный сервис, который позволяет проводить вычисления во многих традиционных и новых разделах математики. Он будет полезным как на уроках математики, химии и физики в средней школе, так и для очень многих дисциплин в высшей школе. Он может успешно применяться в научных и инженерных расчетах.
Дополнительные сведения о системе MathPartner можно найти в работах [2] - [4|.
ЛИТЕРАТУРА
1. URL: http://mathpax.com
2. Малашонок Г. И. Руководство по языку «MATHPAR»: учебное пособие. Тамбов: Издательский дом ТГУ им. Г.Р. Державина, 2013.
3. Malaschonok G.I. Project of Parallel Computer Algebra // Tambov University Reports. Series: Natural and Technical Sciences. Tambov, 2010. V. 15. Issue. 6. P. 1724-1729.
4. Малашонок Г. И. Компьютерная математика для вычислительной сети // Вестник Тамбовского университета. Сер. Естественные и технические науки. Тамбов, 2010. Том 15. Вып. 1. С. 322-327.
БЛАГОДАРНОСТИ: Работа выполнена при поддержке гранта РФФИ № 12-07-00755-а.
Поступила в редакцию 20 декабря 2013 г.
Malaschonok G.I., Borisov I.A. ABOUT MATHPARTNER WEB SERVICE.
The report is devoted to the current state of the web service MathPartner.
We discuss the main directions of development of this project and give several examples of using it to solve selected problems.
Key words: Web service MathPartner; symbolic-numeric computation; computer algebra.
Малашонок Геннадий Иванович, Тамбовский государственный университет имени Г.Р. Державина, г. Тамбов, доктор физико-математических наук, профессор кафедры математического анализа, e-mail: [email protected].
Malaschonok Gennadi Ivanovich Tambov State University named after G.R. Derzhavin, Doctor of Physics and Mathematics, Professor of Mathematical Analysis Department, e-mail: malaschonok@gmail. com.
Борисов Иван Андреевич, Тамбовский государственный университет имени Г.Р. Державина, г. Тамбов, аспирант кафедры математического анализа, e-mail: [email protected].
Borisov Ivan Andreevich Tambov State University named after G.R. Derzhavin, Postgraduate Student of Mathematical Analysis Department, e-mail: [email protected].