Matlab  |  Mathcad  |  Maple  |  Mathematica  |  Statistica  |  Другие пакеты
Internet-класс  |  Примеры  |  Методики  |  Банк задач  |  Консультации & Форум  |  Download  |  Ссылки  |  Конкурсы
Macsyma

 

Macsyma - второе дыхание

Борис Манзон

Программа Macsyma - одна из первых математических программ, оперирующих символьной математикой, то есть предназначенных не только для численных, но и для аналитических расчетов.
Она начала разрабатываться еще в 1968 году в Массачусетском технологическом институте (США), что отражено в ее названии, которое является аббревиатурой словосочетания Massachusetts computation symbolic algebra. Программа занимала некоторое время лидирующую позицию среди универсальных математических программ. Появившаяся вскоре программа Maple, а за ней Mathematica потеснили Macsyma с пьедестала почета, однако благодаря своим сильным сторонам - линейной алгебре и дифференциальным уравнениям - она не потеряла популярности. Свое второе рождение программа Macsyma получила в 1992 году, когда возникла компания Macsyma Inc. , представившая обновленную, удобную, эффективную программу Macsyma и сопутствующую ей программу PDEase2D.
В настоящей статье будут описаны   версии этих продуктов Macsyma 2.2 и PDEase2D 3.0, а также проведено их сравнение с двумя главными конкурентами – универсальными математическими программами Maple V 4.0 и Mathematica 3.0.

Основные характеристики программы Macsyma 2.2

Разработчик: Macsyma Inc.

20 Academy Street
Arlington, MA U.S.A. 02174-6436
Тел.: 1-617-646-4550
Факс: 1-617-646-3161
E-mail:

Macsyma 2.2 работает на платформе Intel под управлением Windows или Windows for Workgroups 3.1 или 3.11, Windows 95 или Windows NT 3.51 или 4.0.
Имеется также версия программы для платформы UNIX, называемая UNIX-Macsyma, однако в данной статье будет рассмотрена только Windows-версия.
Имеется 16-битная версия для 16-бтиной Windows 3.1 и 32-битная версия для 32-битной Windows 95 / NT.
Оперативная память: для Windows 3.1 – минимум 8 Мбайт основной памяти и 24 Мбайта виртуальной памяти; для Windows 95 минимум 12 Мбайт основной памяти и 16 Мбайт виртуальной памяти.

В начало страницы

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

Интерфейс программы Macsyma (рис. 1) по удобству и функциональности ни в чем не уступает, а в чем-то даже превосходит интерфейсы программ Maple и Mathematica. Рабочим документом программы является научная тетрадь (scientific notebook), в которой содержатся доступные для редактирования поле текста, поле команд, поле формул и поле графиков (см. рис. 1).
Придающие вид настоящей тетради украшения - спираль слева и окантовка справа - могут быть убраны, что расширяет рабочую область документа (рис. 2). Инструментальная панель содержит кнопки для выполнения наиболее часто используемых команд. Вид инструментальной панели изменяется в зависимости от выделяемого объекта (сравните рис. 1 и рис. 2).
Полиграфическое начертание формул возможно только в поле вывода формул. В отличие от Maple V 4.0 и Mathematica 3.0 программа не имеет этой функции для полей команд и текста. Но есть и преимущество - формулы без изменения начертания легко переносятся в текстовый редактор Microsoft Word. Рабочий документ может быть сохранен в собственном формате программы с расширением .mfe. Таких средств, как сохранение или трансляция файла в формат полиграфического языка LaTeX, либо в формат WWW-страницы Internet, которые имеются в конкурирующих программах Macsyma не предлагает. Есть только команды для перевода математических формул в формат LaTeX .
Можно открывать несколько рабочих документов, внедрять один документ в другой и вводить гипертекстовые связи как внутри документа так и между несколькими документами.
Программа имеет довольно хороший текстовый редактор, позволяющий редактировать параграфы, отдельные слова и отдельные символы: изменять тип шрифта (доступен любой шрифт, инсталлированный в Windows), его начертание, цвет; имеется несколько стилей для параграфов и заголовков, функция поиска по шаблону.
С Macsyma можно работать в интерактивном режиме, вводя команды из командной строки и тут же получая результат. Каждая строка нумеруется, также как в пакете Mathematica, что позволяет легко ссылаться на предыдущий ввод команды или на результат предыдущего вычисления.
Почти все команды Macsyma в библиотечных файлах загружаются автоматически, что очень удобно. При работе в средах Maple и Mathematica необходимо помнить, какие команды находятся в библиотечных файлах и имена этих файлов и нужно предварительно загружать эти библиотечные файлы. Очень удобно окно просмотра (броузер) математических функций (рис.2).
Окно просмотра позволяет легко найти необходимое средство из конкретной области математики, а также аналогичные задачи с готовыми шаблонами, легко переносимыми в документ. Впрочем, аналогичный броузер содержался в пакете Maple V вплоть до третьей версии этого пакета.
Очень полезен навигатор (рис. 3). При помощи навигатора можно просмотреть заголовки рабочего документа, вводимые команды, графики, текстовые поля, сортировать наименования по алфавиту и перейти к нужному месту документа. В конкурирующих программах имеется частично заменяющая навигатор функция сворачиваемых разделов рабочего документа.
Интерфейс содержит также DataViewer - устройство просмотра данных. DataViewer располагается прямо в рабочем документе. Он представляет собой редактируемую таблицу, сходную по внешнему виду и некоторым функциям со специализированными электронными таблицами (рис. 4).
Интерфейс оборудован также математическим процессором, который функционирует независимо от математического процессора Macsyma. Интерфейсный процессор обладает способностью вычислять, запоминать и просматривать данные, связанные с рабочим документом, а также строить графики. Каждый рабочий документ имеет собственный набор данных и имен для связи с интерфейсным процессором. Математический процессор Macsyma может получать данные из интерфейсного процессора и, кроме всего прочего, может использовать интерфейсный процессор для подключения к внешним библиотекам, в частности при взаимодействии с сопутствующим пакетом PDEase2D.

В начало страницы

Графика

Говоря об интерфейсе нельзя не остановиться на превосходных графических характеристиках пакета. Macsyma, конечно, уступает пакету Maple по количеству различных видов графиков, однако содержит достаточное их количество для иллюстрации прикладных и научных расчетов.
Программа предлагает двух- и трехмерные графики, включая параметрические графики кривых и поверхностей, а также графики векторных полей и анимацию.
Графики и анимация, как и в программе Maple, редактируемые, однако число настраиваемых атрибутов в Macsyma гораздо больше, чем у конкурентов. Типичный трехмерный график в Macsyma имеет около 200 атрибутов, которые вы можете редактировать прямо в научной тетради. Соответствующие атрибуты сгруппированы в пяти простых в использовании графических диалогах.
Рис. 5 - Диалог "Точка наблюдения" на фоне трехмерного графика. Диалог "точка наблюдения" (рис. 5) имеет следующие опции настройки: вращение, преобразование, увеличение, для двухмерных графиков взаимодействие (переход наверх, внутрь или через нарисованный объект), поворот, отделение, включение/выключение перспективы и осей. Достаточно щелкнуть на точке трехмерного графика мышкой, чтобы получить координаты этой точки. Диалог "ограничивающий куб и оси" дает возможность изменять: цвета поверхности, толщину сетки и линий осей, наименование осей, число точек шкалы осей и шрифт чисел. Например, в наименованиях осей вы можете редактировать тип шрифта, его размер, цвет, ориентацию (горизонтальная, вертикальная, и другие возможности), расстояние от оси. Диалог "поверхность, линия и точка" задает: различные формулы для IHS (Intensity Hue Saturation) или RGB (Red Green Blue) цветовых координат, внешний вид поверхностных узлов, линий и точек. Вы можете задать цвет наружного освещения, положение и цвет четырех осветителей. Диалог "украшения текста" позволяет редактировать внешний вид титула графика и до трех других текстовых комментариев.
Программа позволяет экспортировать графики в форматах .MFE, .BMP, .PCX, .GIF и .RLE файлов, как Postscript файлы или сохранять в научных тетрадях Macsyma.

В начало страницы

Анимация

Macsyma предлагает различные, легко осуществляемые виды анимации. Прямо в рабочем документе можно производить анимацию положения камеры, цветов, освещения, планов и других атрибутов. Производит большое впечатление демонстрационная анимация "Бутылка Клейна", в которой точка наблюдения перемещается снаружи внутрь бутылки (рис. 6).
В Mathematica и Maple имеется возможность анимации только формы заданной фигуры.

В начало страницы

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

В отличие от Maple V и Mathematica программа Macsyma ориентирована на прикладные математические расчеты и не предназначена для теоретических исследований в области математики. В связи с этим в программе отсутствуют или сокращены разделы, связанные с теоретическими методами, как, например, теория чисел, теория групп, алгебраические поля, математическая логика и так далее. В то же время, числа в математических выражениях по умолчанию предполагаются действительными. Это позволяет получать аналитические решения для многих вычислений, встречающихся в прикладных задачах, (таких как алгебраические преобразования и упрощения, интегрирование, решение дифференциальных уравнений и так далее), для которых в комплексной области решения не существуют. В программах Maple и Mathematica неизвестные переменные предполагаются комплексными. Для того, чтобы получить значение некоторого выражения в предположении, что неизвестные переменные вещественны, в программе Maple имеется функция evalc а в программе Mathematica соответствующая ей функция ComplexExpand. Однако эти функции менее эффективны и не всегда приводят к нужному результату.
Приведем пример (рис. 7) - Сравнение результатов выполнения преобразования комплексного числа к полярной форме в программах Maple и Macsyma. На рисунке показано, как выражают в полярной форме комплексное число sin(a+i*b) программы Maple V и Macsyma. Программа Maple V не вычисляет до конца модуль и аргумент числа. Изображение конечной формулы, выдаваемое программой Macsyma более естественно. В показателе экспоненты стоит функция atan2, которая эквивалентна обратной тригонометрической функции arctan и связана с ней соотношением arctan(a/b)=atan2(a,b). Программа содержит, помимо математических констант, необходимые в прикладных расчетах основные физические константы, а также периодическую систему, атомные и молекулярные массы химических элементов.
Macsyma включает большое количество команд и дополнительные пакеты комбинаторики, теории вероятностей, математической статистики и статистической обработки данных. По количеству специальных функций программа не уступает своим конкурентам. Она содержит также в основной и дополнительных библиотеках специализированные наборы функций для операций с матрицами, полиномами, рядами, логические и комбинаторные функции и оперирует с обобщенными функциями Дирака и Хэвисайда.
Macsyma имеет сопоставимые с Maple и Mathematica средства для преобразования алгебраических выражений, для решения уравнений, неравенств и систем, вычисления интегралов, сумм и произведений. В то же время одно очень удобное средство - уточняющие запросы относительно переменных, от области определения которых зависит конечный результат - содержится только в Macsyma. Приведем пример.

7_0.gif (4180 bytes)

В Maple и Mathematica для устранения неоднозначного ответа необходимо предварительно задавать области изменения переменных.

В начало страницы

Геометрия

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

В начало страницы

Линейная алгебра

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

В начало страницы

Векторное исчисление

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

В начало страницы

Тензорное исчисление

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

В начало страницы

Интегральные преобразования

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

В начало страницы

Обыкновенные дифференциальные уравнения

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

В начало страницы

Интегральные уравнения

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

В начало страницы

Обработка данных

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

В начало страницы

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

Macsyma, как и другие пакеты символьной математики, имеет средства как процедурного программирования так и программирования по заданному правилу. Программа, как и ее главные конкуренты имеет открытую архитектуру, так что большинство команд, хранящихся в командных файлах (с расширением .mac) могут быть прочитаны и изменены пользователем. Разумеется, пользователь может программировать свои команды, пополняя библиотеку Macsyma.
Компилятор
Macsyma 2.2 также как и Mathematica 3.0, имеет компилятор - все программы могут быть компилированы в двоичный код, включая подпрограммы по заданному правилу.
Генерация FORTRANа и C
Macsyma генерирует коды FORTRANа и C, включая управляющие операторы (циклы итерации, if-then ветвления), определения subroutine и function , описания типов переменных, включая матрицы, сегментацию выражений и возможность задания оптимизации общих частей выражений. Вы можете даже смешать FORTRAN (или C) с языком Macsyma в одном файле.
Maple и Mathematica преобразуют в коды FORTRANа или C только математические выражения.
Трансляция команд программы MatLab
Как уже упоминалось выше, команды программы MatLab с расширением .m могут транслироваться в команды Macsyma с расширением .mac. Другой метод запуска команд MatLab - ввести команду
input_language = matlab,
после которой введенные в командной строке команды MatLab будут немедленно выполняться. Обратный переход к языку Macsyma осуществляется командой
input_language=macsyma.

В начало страницы

Numkit

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

В начало страницы

Уравнения в частных производных

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

В начало страницы

Сопутствующий пакет PDEase2D 3.0

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

В начало страницы

Карта сайта | На первую страницу | Поиск |О проекте |Сотрудничество |
Exponenta Pro | Matlab.ru

Наши баннеры


Copyright © 2000-2003. Компания SoftLine. Все права защищены.

Дата последнего обновления информации на сайте: 15.04.03
Сайт начал работу 1.09.00

www.softline.ru

Призы для подписчиков научно-практического журнала: Exponenta Pro. Математика в приложениях