в ее названии, складывающемся из первых букв слов в выражении Massachusetts computation symbolic algebra. В течение некоторого времени Macsyma занимала лидирующее положение среди универсальных программ. Правда, вскоре появились аналогичный продукт Maple и вслед за ним Mathematica, которые потеснили ее. Однако благодаря возможностям решения задач из линейной алгебры и дифференциальных уравнений она не утратила своей популярности, а в 1992 г. компания Macsyma Inc. предоставила пользователям обновленную, более эффективную Macsyma и прилагаемую к ней программу PDEase2D.

Ниже описаны последние версии Macsyma 2.2 и PDEase2D 3.0.

Интерфейс -- Macsyma Front End (MFE)

Интерфейс MFE даже более удобен и функционален, в чем у Maple 4.0 и Mathematica 3.0. Рабочим документом программы является научная тетрадь (scientific notebook), в которой имеются доступные для редактирования поля текста, команд, формул и графиков (рис. 1).

Рис. 1. Документ программы Macsyma содержит

редактируемые (сверху вниз) поля

команд, формул, текста и графиков

На инструментальной панели приведены кнопки наиболее часто используемых команд, а вид программы вид зависит от типа выделяемого объекта. Полиграфическое начертание формул возможно лишь в одноименном поле в отличие от Maple V 4.0 и Mathematica 3.0, которые обладают такими же функциями для полей команд и текста. Однако программа позволяет переносить формулы без изменения начертания в документ текстового редактора Word, а рабочий документ сохранять в формате программы с расширением .mfe. К сожалению, Macsyma не сохраняет и не преобразует файл в формат полиграфического языка LaTeX или Web-страницы, что могут конкуренты, а имеет только команды для перевода формул в формат LaTeX .

Работая с программой, можно открывать несколько рабочих документов, внедрять какой-либо из них в другой, вводить гипертекстовые связи как внутри одного, так и между несколькими. Продукт имеет хороший текстовый редактор, позволяющий работать с параграфами, отдельными словами и символами. Можно изменять тип, начертание и цвет шрифта; причем доступен любой, инсталлированный в Windows. Кроме того, имеется несколько стилей для параграфов и заголовков, а также функция поиска по шаблону.

Рис. 2. Окно просмотра математических функций

на фоне трехмерного графика поверхности

С Macsyma можно работать в интерактивном режиме, вводя команды из соответствующей строки и сразу же получая результат. Как в пакете Mathematica, каждая строка нумеруется, и поэтому легко ссылаться на ввод предыдущей команды или результат вычисления. В Macsima удобно то, что в библиотечных файлах почти все команды загружаются автоматически, а вот при работе в Maple и Mathematica приходится запоминать, какие команды находятся в библиотечных файлах, и к тому же последние нужно предварительно загружать.

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

Рис. 3. Навигатор программы Macsyma

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

Наряду со всем перечисленным, интерфейс Macsyma содержит средство просмотра данных DataViewer, расположенное в рабочем документе. Оно представляет собой редактируемую таблицу, внешним видом и некоторым функциями напоминающую специализированные электронные таблицы (рис. 4).

Рис. 4. DataViewer и график аппроксимации

данных подгоночной кривой

Кроме того, он включает математический процессор, функционирующий независимо от соответствующего процессора программы Macsyma, причем интерфейсный процессор может строить графики, вычислять, запоминать и просматривать данные, связанные с рабочим документом, который имеет собственный набор данных и имен для связи с ним. Математический процессор может получать данные из интерфейсного, а также использовать его для подключения к внешним библиотекам, в частности при взаимодействии с сопутствующим пакетом PDEase2D.

По количеству доступных пользователю видов графиков Macsyma, конечно, уступает пакету Maple, однако их вполне достаточно для иллюстрации прикладных и научных расчетов. Программа предлагает двух- и трехмерные изображения, включая параметрические кривые и поверхности, а также векторные поля и их анимацию, которые, как и в Maple, можно редактировать, однако число настраиваемых атрибутов в ней гораздо больше. Типичный трехмерный график в Macsyma имеет около 200 атрибутов, и его можно редактировать прямо в научной тетради. Соответствующие атрибуты сгруппированы в пяти легко применяемых графических диалогах.

Рис. 5. Диалог "точка наблюдения"

на фоне трехмерного графика

Так, один из диалогов (рис. 5) реализуется посредством вращения, преобразования, увеличения, для двухмерных графиков взаимодействия (перехода наверх, внутрь или через нарисованный объект), а также поворота, отделения, включения-выключения перспективы и осей. Чтобы получить координаты точки трехмерного графика, достаточно щелкнуть на ней мышкой. А такой диалог, как "украшение текста", позволяет редактировать внешний вид титула графика и до трех других текстовых комментариев.

Пакет Macsyma располагает различными видами анимации, например, прямо в рабочем документе можно производить анимацию положения камеры, цветов, освещения, планов и других атрибутов, а в Mathematica и Maple имеются лишь средства анимации формы заданной фигуры. Программа Macsyma позволяет экспортировать файлы в графических форматах .MFE, .BMP, .PCX, .GIF и .RLE, в виде Postscript-файлов или сохранять их в научных тетрадях.

Прикладная математика

В отличие от Maple V и Mathematica, пакет Macsyma ориентирован на прикладные расчеты и не предназначен для теоретических исследований в области математики. Поэтому в нем сокращены или просто отсутствуют разделы, связанные с такими собственно математическими областями, как теория чисел и групп, алгебраические поля, математическая логика и т. п. Числа в математических выражениях по умолчанию предполагаются действительными, что позволяет получать аналитические решения многих прикладных задач, содержащих алгебраические преобразования, упрощения, интегрирование, дифференциальные уравнения и т. п. В отличие от этого в программах Maple и Mathematica неизвестные величины предполагаются комплексными, а для того чтобы получить значение некоторого выражения в предположении, что неизвестные величины будут вещественными, в Maple имеется функция evalc, а в Mathematica - подобная ей функция ComplexExpand. Однако они менее эффективны и не всегда приводят к нужному результату.

Программа Macsyma содержит, помимо математических констант, основные физические, а также периодическую систему, атомные и молекулярные массы химических элементов, необходимые для прикладных расчетов. Она включает большое количество команд и дополнительные пакеты для решения задач из комбинаторики, теории вероятностей и математической статистики, полезных в обработке данных.

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

Кроме того, пакет Macsyma имеет сопоставимые с Maple и Mathematica средства, в том числе для преобразования алгебраических выражений, решения систем уравнений и неравенств, а также вычисления интегралов, сумм и произведений. Однако только она может уточнять запросы относительно переменных, от которых зависит конечный результат, (рис. 6).

Рис. 6. Пример уточняющего запроса

относительно переменных

В то же время в Maple и Mathematica для устранения неоднозначности в ответе необходимо задавать области изменения переменных. Команды геометрического пакета программы Macsyma позволяют вычислять длины кривых, площади и объемы плоских и многомерных фигур, а также производить вычисления для задач сферической и римановой геометрий.

Из других разделов математики в пакете представлены линейная алгебра, векторное и тензорное исчисления. Он обладает обширным набором алгоритмов численного решения задач линейной алгебры, которые, в свою очередь, почти полностью совпадают с имеющимся в популярном пакете матричной алгебры MatLab. Более того, почти все исполняемые подпрограммы MatLab транслируются и исполняются в Macsyma, а возможности проведения аналитических вычислений последней не ниже, чем у Maple и Mathematica.

Для задач, связанных с векторным исчислением, программа позволяет вычислять и упрощать с помощью операторов (скалярного и векторного произведения, градиента, дивергенции и Лапласа) выражения, которые могут быть приведены к конкретной системе координат. В Macsyma используется 20 таких систем, и в этом она не уступает Maple и Mathematica.

Кроме выше перечисленных, Macsyma содержит средства для решения задач индексного и компонентного тензорного исчисления. Пакет tensor этой программы позволяет писать тензорные уравнения в частных производных в произвольных дифференциальных координатах, а Maple не имеет средств индексного тензорного исчисления. Только в профессиональных приложениях, использующих MathTensor и CARTAN, программы пакета Mathematica, распространяемые в виде самостоятельных продуктов, включены функции тензорного исчисления, превосходящие возможности Macsyma.

По количеству интегральных преобразований, включенных в пакет, Macsyma уступает конкурентам. Она позволяет вычислять лишь прямые и обратные преобразования Лапласа и Фурье, но этого обычно достаточно для большинства прикладных задач.

Описываемый пакет позволяет аналитически решать дифференциальные уравнения линейные и нелинейные первого порядка, линейные второго порядка и системы линейных уравнений первого порядка. Кроме того, он содержит возможности для приближенного решения большого класса обыкновенных дифференциальных уравнений, реализованные методы используют разложение в ряд Тейлора и три метода возмущений. В отличие от Maple V 4.0 и Mathematica 3.0 программа Macsyma 2.2 не имеет средств аналитического решения дифференциальных уравнений выше второго порядка, но по другим параметрам не уступает своим основным конкурентам.

Среди универсальных математических пакетов лишь Macsyma включает около десятка методов решения интегральных уравнений первого и второго рода, с фиксированными и переменными пределами интегрирования.

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

Программирование

Как и другие пакеты символьной математики, Macsyma имеет средства программирования процедурного и по заданному правилу. Она обладает открытой архитектурой, поэтому большинство хранящихся в командных файлах команд с расширением .mac могут быть прочитаны и изменены пользователем, который, разумеется, может писать свои программы, пополняя библиотеку Macsyma.

Как и Mathematica 3.0, Macsyma 2.2 включает компилятор, с помощью которого все подпрограммы, в том числе и написанные по заданному правилу, могут быть откомпилированы в двоичный код. Macsyma генерирует коды Фортрана и Cи, в том числе управляющие операторы (циклы итерации, if-then ветвления), определения subroutine и function, описания типов переменных и матрицы, сегментацию выражений и возможность оптимизации общих частей выражений. Допустимо смешение кодов Фортрана (или Cи) с текстами на языке Macsyma в одном файле, тогда как Maple и Mathematica преобразуют в их коды только математические выражения.

Команды MatLab с расширением .m могут транслироваться в команды Macsyma с расширением .mac. Другой способ их запуска -- ввести команду input_language = matlab, после чего их ввести в командную строку. Затем эти команды немедленно исполняются. Обратный переход к языку Macsyma осуществляется командой input_language = macsyma.

Дополнительный пакет NumKit для программы Macsyma 2.2 повышает скорость выполнения операций с действительными и комплексными числами с плавающей запятой. По утверждению разработчиков, он позволяет получить эффективную скорость выполнения операций, сопоставимую со скоростью фортрановских программ. Macsyma обращается к нему при вычислениях с матрицами, полиномами, при обработке данных и решении систем линейных уравнений. Пакет продается отдельно от основной программы и функционирует только на платформах Windows 95 или NT. Он разработан на основе библиотеки программ по линейной алгебре для чисел с плавающей запятой LAPACK Департамента энергетики США.

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

Пакет PDELIE включен в состав программы недавно. Он позволяет находить симметрии С. Ли и аналитические решения систем уравнений в частных производных, а Mathematica и Maple, хотя и имеют подобные пакеты, лишь выводят результирующую систему квазилинейных уравнений.

Пакет PDEase2D 3.0

Продукт PDEase2D распространяется в виде самостоятельного коммерческого пакета или в составе программы Macsyma. Его название является аббревиатурой слов Partial Differential Equations (уравнения в частных производных) Ease (легкость) и 2D (двумерность).

Рис. 7. Мода колебаний круглой мембраны,

вычисленная методом конечных

элементов пакета PDEase2D

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

Пакет PDEase2D использует тот же интерфейс, что и Macsyma (рис. 7).

Он поставляется с более чем 140 демонстрациями решенных задач из областей тепломассопереноса, механики твердого тела, жидкостей и газов, электромагнетизма и т. п. Пользователи могут обращаться к демонстрационным материалам как шаблонам, а также сочетать применяемые в них стандартные методы для создания своих, нестандартных. Работая с PDEase2D, можно задавать различные граничные условия и характеристики материалов с помощью математических выражений или таблиц данных. Так, в качестве примера можно привести результат решения задачи о колебании круглой мембраны (рис. 7).

Рис. 8. Вид сетки элементов, автоматически

генерируемой пакетом PDEase2D при

решении задачи о колебании круглой мембраны

Наиболее трудоемкая часть анализа методом конечных элементов -- создание сетки элементов. Пакет PDEase2D отличается высокой степенью автоматизации решения задач методом конечных элементов, причем пользователь лишь задает уравнения, область, в которой необходимо найти решение, и граничные условия. Программа автоматически генерирует сетку элементов и аппроксимирующие полиномы, используя при необходимости переход к полиномам более высокой степени, проверяет полученную систему уравнений на устойчивость и адаптивно выбирает шаг по времени в динамических задачах. На рис. 8 показана сетка элементов, созданная автоматически для задачи о круглой мембране.





Заключение

Сочетание PDEase2D и Macsyma предоставляет прекрасный набор инструментариев для решения уравнений в частных производных. Macsyma позволяет выписывать и упрощать системы векторных и тензорных дифференциальных уравнений в криволинейных координатах и экспортировать их в PDEase2D для выполнения численных расчетов. Кроме того, интерфейс MFE с математическим процессором позволяет передавать данные из Macsyma в PDEase2D и обратно, анализировать их, а также строить, просматривать и редактировать графики.

Для решения конкретной математической задачи или при проведении исследований в определенной области желательно найти оптимальный программный инструмент. Но кому-то может не подойти ни один из универсальных математических пакетов, и он предпочтет один из языков высокого уровня. Однако с усовершенствованием таких пакетов и с расширением их функциональности все больше разработчиков приходят к выводу о полезности и даже необходимости использования одного из них. Приобретая пакет, пользователь надеется избавиться от громоздких рутинных вычислений, составления программ для решения стандартных задач. Но чем сложнее задача и чем больше выкладок приходится делать для получения конечного результата, тем выше вероятность ошибки. Поэтому первое из основных условий выбора подобной универсальной программы -- ее надежность и возможность проверки конечного результата. По нему программа Macsyma, согласно исследованиям M. Wester (см. журнал Computer Algebra Netherlands, Dec. 1994, р. 41-48), несколько опережает конкурирующие продукты.

Второе условие -- диапазон решаемых задач -- не столь важно, поскольку области применения пакетов не совпадают, а каждому конкретному пользователю обычно необходима узкая специализация. Тем не менее чем шире функциональные возможности программы, тем меньше вероятность того, что к ней понадобятся дополнения. По этому условию лидером среди рассматриваемых в данной статье программ является пакет Mathematica со всеми его профессиональными приложениями, однако обладание им требует значительных финансовых трат.

Третье условие выбора -- стоимость программы или отношение стоимости к предлагаемым возможностям. Коммерческая цена программы Macsyma 2.2 Pro с сопутствующим пакетом NumKit составляет 349 долл. Отдельно пакет PDEase2D 3.0 стоит 999 долл., а вместе с Macsyma -- 1319 долл., т. е. дешевле программ-конкурентов. Согласно прейскуранту фирмы SoftLine, торгующей этими программами, Maple V 4.0 стоит 1574 долл., а Mathematica 2.2 для учебных заведений -- 1999 долл.).

Четвертое условие выбора -- возможность функционирования пакета на различных платформах. Программа Macsyma 2.2 работает только на PC под управлением ОС Windows. Для более мощных машин предлагается другая версия программы -- UNIX-Macsyma, однако о том, совместимы ли документы этих двух версий программы, нигде не упоминается. А вот документы программы Mathematica не зависят от аппаратной платформы, и к тому же она сама может работать одновременно на нескольких.

Таким образом, можно подвести итог: программа Macsyma 2.2 в комплекте с PDEase2D -- современное, эффективное и удобное многоцелевое математическое ПО, выполняющее аналитические и численные расчеты, вполне доступное по цене. Продукт будет особенно полезен тем, кто широко применяет для решения задач методы линейной алгебры, тензорное исчисление и дифференциальные уравнения, как обыкновенные, так и в частных производных. Очень перспективно использовать его в преподавании прикладной математики в высших учебных заведениях.

Примечание

В статье использованы иллюстрации и примеры из демонстрационных файлов программ Macsyma и PDEase2D.

ОБ АВТОРЕ

Борис Михайлович Манзон - канд. физ.-мат. наук, тел.: (095) 208-36-10