MuPAD 3.0: заявка на лидерство

9 июль, 2004 - 23:00Константин Носов
Речь идет о СКМ MuPAD - совместном проекте SciFace Software и исследовательской группы университета города Падерборн (Германия). На наш взгляд, это действительно некий компромисс - при вполне приемлемой цене (студенческая лицензия на версию 3.0 обойдется в 65 EUR, индивидуальная или преподавательская -- в 90 EUR) программа ни в чем не уступает наиболее известным разработкам данного класса. Впрочем, давайте по порядку.

СКМ MuPAD появилась на рынке научного ПО совсем недавно -- в 1997 г., когда многие именитые продукты типа Maple или MathCad уже были признанными торговыми марками и имели внушительную историю. Однако проект оказался вполне жизнеспособным, и новичок довольно быстро стал завоевывать собственное место под солнцем. Версию 3.0, вышедшую в начале текущего года, сегодня без всяких скидок можно поставить в первый ряд ведущих СКМ, представленных на мировом рынке.

В чем же заключается секрет такого успеха? Собственно говоря, секрета как такового у создателей MuPAD нет. Решающую роль в становлении продукта сыграл профессионализм разработчиков и заведомая ориентация на высшие мировые стандарты. К тому же MuPAD -- идеально сбалансированная система. Она практически не имеет слабых мест, и все поддерживаемые ею функции (численные, аналитические и т. д.) действуют эффективно и стабильно.

MuPAD 3.0 заявка на лидерство
Рис. 1
Остановимся вкратце на внутреннем устройстве приложения. Как и многие другие продукты данного класса, MuPAD состоит из ядра, осуществляющего все вычисления, и оболочки, включающей рабочую область пользователя, справочную систему и пакеты расширений, в которых собраны функции, относящиеся к различным областям математики. Такая двухкомпонентная структура позволяет экономно расходовать системные ресурсы, а также создавать на основе MuPAD распределенные вычислительные системы. Под-держиваются четыре важнейшие компьютерные платформы -- Windows, Macintosh, Linux и Solaris, однако нужно отметить, что новые версии для разных ОС выходят не всегда синхронно.

MuPAD имеет достаточно традиционный для приложений данного типа интерфейс (рис. 1): вы вводите команды и формулы, ядро возвращает ответы и результаты - таким образом, основной документ напоминает рабочую тетрадь, "Notebook" в терминах MuPAD. Однако кроме ячеек ввода/вывода он также может содержать форматированный текст, графические и OLE-объекты, его допускается сохранять не только в собственном формате (MNB), но и в HTML, RTF, DOC.


Численные операции

Изучать математические возможности MuPAD начнем с простейших вычислительных операций -- численных. Прежде всего отметим, что при любых расчетах программа стремится представить результат в наиболее точной, аналитической форме, поэтому все вычисления с целыми числами выполняются без округлений, причем, как и другие ведущие СКМ, MuPAD оперирует с алгоритмически неограниченной разрядной сеткой. При операциях с плавающей точкой есть, правда, свои особенности: точность результата ограничена примерно 4,5 миллиардами значащих цифр, чего, впрочем, достаточно для большинства практических задач.

Для приближенного решения сложных задач в системе имеется специальный пакет numeric, содержащий численные алгоритмы для дифференциальных уравнений, линейной алгебры, нахождения корней функциональных уравнений и систем, а также численного интегрирования. При его использовании можно осуществлять непосредственный контроль над точностью результата (с учетом упомянутого ограничения).


Аналитические расчеты и линейная алгебра

Возможность оперировать аналитическими выражениями и проводить с ними сложные преобразования -- одна из сильных сторон MuPAD. Данная СКМ поддерживает как все стандартные операции анализа, так и некоторые довольно сложные и нечасто встречающиеся в других продуктах. Например, функции, относящиеся к интегрированию, позволяют находить интегралы по бесконечному интервалу, главные значения, вычислять сингулярные интегралы, выполнять интегрирование по частям и с использованием замены переменных. При исследовании вещественнозначных функций большую помощь окажет процедура discont, которая по аналитическому выражению определяет все точки нарушения непрерывности (полюсы, разрывы и интервалы неопределенности) и выдает результат в общепринятой математической нотации.

Другой сферой применения аналитики являются различные преобразования и разложения. В данной области MuPAD также позволяет осуществлять полный контроль над производимой операцией. Так, функция Simplify, имеющая аналоги практически во всех СКМ и предназначенная для упрощения введенного выражения, дает возможность управлять форматом выводимого результата (отображать лучший или все доступные варианты), указывать максимальное число шагов преобразования и правила его останова и, что наиболее важно в аналитических исследованиях, задавать произвольные принципы трансформации и упрощения для работы с выражениями из специальных областей, к которым неприменимы общематематические приемы.

За выполнение линейно-алгебраических операций в MuPAD отвечает обширный пакет linalg. С его помощью можно преобразовывать матрицы, вычислять их спектральные и другие характеристики, решать системы линейных уравнений. Хотя пакет linalg базируется на переменных матричного типа (Matrix), представляющих собой, как это принято в математике, прямоугольную таблицу чисел или выражений, возможности MuPAD по работе со структурированными данными матрицами не ограничены. Наиболее гибким и абстрактным типом является таблица (table), состоящая из индексированных элементов. В этом случае как индексом, так и значением элемента таблицы может выступать любой корректный объект MuPAD.

Дополнительно MuPAD содержит пакеты, поддерживающие функции комбинаторики, линейного программирования, интегральных преобразований, статистики, теории чисел, теории графов и других. Не обойдены вниманием разработчиков и учащиеся, только осваивающие математику. С помощью небольшого пакета student можно получить наглядное представление о важнейших понятиях теории конечномерных линейных пространств и технике приближенного интегрирования.


Графические возможности

MuPAD 3.0 заявка на лидерство
Рис. 2
Как сообщают сами разработчики, в процессе создания новой версии совершенствованию графических возможностей было уделено особое внимание. Графика системы настолько богата и разнообразна, что в рамках журнального обзора не стоит и пытаться затронуть какие-либо содержательные вопросы ее использования (справочное руководство, поставляемое с системой, отводит этой теме более 600 электронных страниц). Мы лишь отметим, что MuPAD позволяет строить практически все основные виды двух-, трехмерных и специальных графиков с тонкой настройкой их свойств, создавать анимационные эффекты, включать в документы внешние графические файлы. Ори-гинальная технология VCam дает возможность провести интерактивную настройку каждого рисунка, изменить цвета, заливку, масштаб, точку обзора, вид координатных осей, шрифт надписей и десятки других параметров -- вплоть до выражения, задающего кривую или поверхность. Все необходимые свойства вводятся в специальных панелях, расположенных рядом с рисунком (рис. 2), и дают пользователю возможность, не вникая в сложный синтаксис графических команд, с помощью этого наглядного инструмента добиваться тре-буемых эффектов. По-стро-енные в MuPAD графики легко сохраняются в распространенных растровых и векторных форматах, а также в формате цифрового видео AVI.


Средства разработки

Без средств создания собственных приложений не обходится ни одна современная СКМ, и MuPAD в этом отношении не исключение. Система обладает мощным и развитым языком для написания программ, вобравшим в себя наиболее общие конструкции C/C++, Pascal и Fortran -- он располагает стандартными операторами циклов, условных переходов, ввода/вывода и, что особенно важно, обеспечивает доступ к обширным библиотекам алгоритмов, входящим в ядро и пакеты расширений системы.

MuPAD позволяет программировать на нескольких уровнях, в зависимости от решаемых задач и квалификации разработчика. Простейший уровень - процедурное программирование, состоящее в определении собственных процедур и функций, но, тем не менее, представляющее собой довольно развитый инструмент для организации собственных приложений. С целью его поддержки в систему включены два специализированных пакета -- fp (functional programming) и prog (библиотека для работы с кодом для анализа и выявления ошибок в процедурах).

Более высоким уровнем является модульное программирование, используемое при создании внешних прикладных пакетов, подобных поставляемым с системой. В отличие от процедурного программирования, происходящего в рабочей среде и на внутреннем языке системы, в данном случае применяется язык С, познакомиться с которым придется весьма основательно.

Наконец, высшим уровнем программирования в MuPAD можно назвать создание пользовательских доменов (типов данных) и категорий (классов, объединяющих близкие домены). Домены в MuPAD используют, как правило, для описания сложных алгебраических структур с оригинальными свойствами. В рамках этой концепции, в частности, может быть реализован объектно-ориентированный подход. Надо сказать, что из-за достаточно высокой сложности доменно-категориального программирования лишь очень немногие математические пакеты имеют аналогичные инструменты (они присутствуют в прекратившем активное развитие проекте AXIOM и отчасти в Maple).

К средствам разработки можно также отнести функции экспорта операторов MuPAD в код на языках С и Fortran. А начинающим постигнуть премудрости программирования в системе поможет функция expose, позволяющая получить листинг любой встроенной процедуры.


Заключение

Пожалуй, наиболее существенной и уникальной чертой представленной сегодня СКМ является "функциональная многомерность", под которой подразумевается не только широта охвата предметных областей, но и, так сказать, глубина, т. е. возможность формализации и решения задач самого разного уровня -- от школьных до сложнейших теоретических. Именно в этом, на наш взгляд, и состоит ценность MuPAD как учебного и исследовательского инструмента.

Не стоит, конечно, думать, что MuPAD полностью лишена недостатков. Одной из наиболее заметных проблем является не самая высокая (сравнительно с основными конкурентами) скорость выполнения трудоемких вычислительных и графических операций, что, впрочем, при решении типичных задач обычно не доставляет неудобств.

Однако все недостатки с лихвой компенсируются доступностью, ведь MuPAD на порядок дешевле именитых СКМ и потому имеет все шансы занять в своем классе совершенно особое место. Вероятно, столь редкое сочетание качеств будет по достоинству оценено пользователями, а составить собственное представление поможет полнофункциональная пробная версия, которую можно загрузить по адресу www.mupad.de и использовать в течение 30 дней.