Новая версия математического пакета оправдывает свою популярность.
Когда-то в журнале уже была статья, в которой рассказывалось о замечательной математической программе Maple V компании Maple Waterloo ("Maple - программа не только для математиков", "Мир ПК", № 12/95) для выполнения сложных аналитических и численных расчетов широкого класса математических задач (более 2700 встроенных функций). За два года со дня выхода версии 4.0 (июнь 1996 г.) число зарегистрированных пользователей удвоилось и перевалило за миллион. Добрая половина всех научных публикаций в мире выпускается с использованием ее вычислительных и оформительских возможностей. Программе Maple V посвящены несколько специализированных журналов и более 200 книг, в том числе на русском языке (Б. М. Манзон. Maple V Power Edition, краткое руководство пользователя. М., ИИД "Филинъ", 1998 и В. Н. Говорухин, В. Г. Цибулин. Введение в Maple - математический пакет для всех. М., Мир, 1997 г.).
В феврале этого года компания-производитель объявила о выходе новой, более мощной и удобной версии 5.0.
Что умеет Maple V
Программа Maple V состоит из быстрого ядра, написанного на Си и содержащего основные математические функции и команды, а также большого количества библиотек, расширяющих ее возможности в различных областях математики. Библиотеки скомпонованы из подпрограмм, написанных на собственном языке Maple, специально предназначенном для создания программ символьных вычислений. Наиболее интересные возможности системы Maple V - редактирование и изменение этих подпрограмм, а также пополнение библиотек подпрограммами, разработанными для решения конкретных задач. Они уже появились в большом количестве, а лучшие из них вошли в Share-библиотеку пользователей, распространяемую вместе с пакетом Maple.
Программа уже превратилась в мощную вычислительную систему, позволяющую выполнять сложные алгебраические преобразования, в том числе над полем комплексных чисел, вычислять конечные и бесконечные суммы, произведения, пределы и интегралы, находить корни многочленов, решать аналитически и численно алгебраические (в том числе трансцендентные) системы уравнений и неравенств, а также системы обыкновенных дифференциальных уравнений и уравнений в частных производных. В Maple включены специализированные пакеты подпрограмм для решения задач аналитической геометрии, линейной и тензорной алгебры, теории чисел, комбинаторики, теории вероятностей и математической статистики, теории групп, численной аппроксимации и линейной оптимизации (симплекс-метод), финансовой математики, интегральных преобразований и т. п.
Расстановка сил среди универсальных программ
До появления в начале 1998 г. программы Maple V 5.0 безусловными лидерами были Maple V 4.0 и Mathematica 3.0. Преимущества Maple V 4.0 - эффективность, широкий диапазон аналитически решаемых задач, наличие перекодировщика созданных Maple алгоритмов на языки Си и Фортран, программы Mathematica 3.0 - большая строгость и функциональность языка, а также применение компилятора, ускоряющего численные расчеты. Программа Mathematica 3.0 может преобразовывать документы в HTML-формат, но Maple V 5.0, в отличие от предыдущей версии, это уже выполняет. Пользователи могут выбирать по своему вкусу между более короткими, но с менее понятным названием командами Maple и более длинными, зато более очевидными командами Mathematica, между более удобным интерфейсом Maple и большим количеством стилей оформления рабочего документа программы Mathematica.
Вслед за лидерами, иногда даже опережая их по некоторым параметрам, идет программа Macsyma 2.2 компании Macsyma. К ее особенностям можно отнести применение самых современных алгоритмов численных расчетов библиотек LINPACK и EISPACK благодаря встроенным в систему командам программы MatLab, несомненного лидера по численному моделированию технических систем, наличие встроенной электронной таблицы для обработки данных и очень мощного, взаимосвязанного с интерфейсом Macsyma дополнения для решения двухмерных дифференциальных уравнений с частными производными методом конечных элементов (программа PDEase2D).
Программа MatLab компании MathSoft в основном предназначена для численного моделирования систем, однако последние ее версии 5.0 и 5.1 уже содержат элементы универсальных математических пакетов, а именно: специальный модуль MatLab Notebook, позволяющий использовать возможности Microsoft Word для оформления документов, а также приобретенный у компании Maple Waterloo модуль основной символьной библиотеки программы Maple V 4.0 для выполнения некоторых аналитических расчетов.
Программа MathCad не предназначена для профессиональной работы в области математики, однако довольно удобна для решения не слишком сложных аналитических (с использованием встроенного алгоритма Maple) и численных инженерных задач. Она постепенно год от года улучшается, и не исключено, что в будущем сможет составить конкуренцию лидерам, особенно среди неискушенных пользователей.
Новая версия программы Maple обладает более широкими вычислительными возможностями, чем предыдущая, а также в ней приняты на вооружение наиболее интересные решения конкурентов. Однако обо всем по порядку. Ниже рассмотрим версию Maple V 5.0 для Windows 95 (NT) (версии для платформ Macintosh, Power Macintosh, Unix и Linux имеют лишь незначительные отличия).
Новые решения
Интерфейс
Прежде всего бросается в глаза более понятный и удобный интерфейс. По сравнению с версией 4.0 кнопки стали более красивыми и рельефными. Кнопка изменения увеличения выполнена в виде линзы, появились три дополнительные кнопки для ввода редактируемой формулы. В версии 5.0 основной режим работы программы - режим редактирования, при котором начертания всех формул в полях ввода и вывода, а также в тексте имеют удобный полиграфический формат, а команды, записанные на собственном языке Maple, можно прочитать в строке формул на инструментальной панели.
Появившийся в программе Maple V метод буксировки (drag and drop) значительно упрощает работу. Наличие еще одного новшества - интеллектуального графика (smartplot) - позволяет строить двух-трехмерный график по выделенному выражению без применения команд и задания диапазона для независимых переменных. Результат вычисления можно отбуксировать в строку новой команды, в таблицу или график. Можно перетащить не только выражение из таблицы в строку команд или график, но и кривую из интеллектуального графика в строку команд или таблицу.
Контекстное меню
Нажатием правой кнопки мыши на выделенном выражении или результате вычислений вызывается контекстное меню, автоматически предлагающее возможные действия. Например, если выделяется равенство, то контекстное меню предлагает команды, позволяющие либо перенести в командную строку только правую или левую часть выражения, записать уравнение с выделенным выражением в правой или левой его части, решить уравнение относительно одной из переменных выражения, либо построить интеллектуальный график.
Контекстное меню программы стало более функциональным, чем в предыдущей версии, и программируется пользователем. Для команды оно позволяет выбрать стиль командной строки (стандартное математическое начертание или язык Maple), преобразовать ее в текст или выполнить, для графика - установить координаты, способ рисования и цветового оформления, для текста - выбрать стиль оформления и параметры форматирования символов и параграфов.
Палитры
Так же как в программе Mathematica, в новой версии программы Maple появились палитры выражений, символов и матриц. Тем, кто привык к языку Maple и знаком с английскими названиями греческих символов, палитры не слишком нужны, но для пользователей программы MathCad, желающих перейти на более мощную программу Maple V, палитры станут большим подспорьем.
Электронная таблица
Другое важное дополнение - электронная таблица. Она имеется, например, в программе Macsyma (начиная с версии 2.0) для удобства преобразования и обработки числовых данных, однако в Maple V назначение таблицы несколько шире. С ее помощью можно вводить, вычислять и упорядочивать не только числа, но и серии символьных выражений исходя из серии значений переменной, т. е. создавать таблицы формул.
Интеграция с MatLab
Серьезным достижением можно считать интеграцию с наиболее популярным пакетом численного моделирования MatLab, осуществленную введением специализированного пакета. Его команды позволяют вызывать для численных расчетов вычислительный процессор программы MatLab, выполнять с его помощью вычисления и возвращать результат в Maple. Однако для этого необходимо установить версию 4.0 программы MatLab.
Экспорт в HTML-формат
И наконец, новая возможность Maple V - экспорт документов в формат HTML. Для этого достаточно в пункте меню File выбрать Export As (или Save As), а затем HTML. После чего объекты Maple-документа конвертируются в файлы электронного документа, причем сохраняются не только стили документа, но и его сворачиваемые секции. Любая такая секция создает строку-гиперсвязь в файле-содержании HTML-документа, а сама преобразуется в отдельный документ, связанный с соответствующей строкой.
При сохранении (или экспорте) документа Maple в HTML-формат необходимо настроить дисплей как минимум на 256 цветов, поскольку все графики и формулы переводятся в GIF-формат.
Справочный браузер
В состав программ Maple версий 1-3 входил чрезвычайно удобный справочный браузер, позволявший очень быстро искать нужную информацию по ключевым словам, а в версии 4.0 он был заменен файлом гипертекстовых заголовков по темам. Разработчики же программы Mathematica 3.0 позаимствовали идею создания аналогичного, правда несколько усовершенствованного, браузера. Осознав свою оплошность, создатели версии 5.0 опять вернулись к справочному браузеру, теперь уже как две капли воды похожему на браузер программы Mathematica 3.0.
Новое в программировании
Очень важное усовершенствование, позволяющее использовать в программировании Maple объектно-ориентированный подход, - лексическое определение области совместного использования переменных. Ранее в процедурах Maple можно было передавать значение переменной либо через формальный параметр, либо объявляя ее глобальной. Теперь, если не объявлять переменную во вложенной процедуре, то она становится общей с внешней процедурой. Это позволяет использовать внутренние процедуры как объекты, возвращающие значения переменных, заданных как во внутренних, так и во внешних процедурах.
В программу добавлены команды символьного программирования свойств и правил вычисления функций на основе сравнения структур символьных выражений (Pattern Matchers).
Ditto-оператор, присваивающий значение переменной, обозначается теперь не двойной кавычкой ("), как в предыдущей версии, а знаком процента (%). Знак двойной кавычки используется для строк.
Другие новшества: множественное присвоение имен одной командой, оператор возведения в степень "^" теперь имеет тип - function (функция). Такой же тип имеют и некоторые другие операторы - "<", "<=", ">", ">=", "=", "<>".
Новые вычислительные возможности
Аналитические расчеты
Значительно расширен и усилен пакет DEtools, предназначенный для оперирования с дифференциальными уравнениями. Теперь он содержит команду odeadvisor для общей классификации уравнений и несколько встроенных субпакетов: Lie для вычислений с использованием методов симметрий Софуса Ли и классификации обыкновенных дифференциальных уравнений, diffop для вычислений с дифференциальными операторами, Poincare для построения двух- или трехмерных проекций гамильтоновых систем. Чтобы использовать преимущество, даваемое анализом симметрии с помощью пакета Lie, была переписана команда dsolve. В результате всего этого в новой версии Maple V существенно расширился диапазон аналитически решаемых дифференциальных уравнений.
Тем пользователям, задачи которых требуют решения уравнений в частных производных, компания Maple Waterloo приготовила подарок. Новый пакет PDEtools включает команды и процедуры для нахождения аналитического решения уравнений в частных производных, основанные на самых современных алгоритмах, а также позволяет пользователю формировать подсказки для уравнений, не решаемых автоматически, при поиске наиболее общего решения. Для этой цели предназначены команда dchange (замены переменных) и опция HINT (подсказка) команды pdsolve, которая наиболее функциональна. Кроме этого, PDEtools включает команду PDEplot для построения графиков решения линейных и нелинейных уравнений в частных производных первого порядка с заданными начальными условиями.
В версии V 5.0 появился пакет трехмерной геометрии geom3d (в версии 4.0 содержался только двухмерный геометрический пакет geometry). Пакет включает мощные средства и алгоритмы для оперирования трехмерными геометрическими объектами. С его помощью можно производить построения, преобразования и вычисления с различными геометрическими объектами (линиями, плоскостями, сферами, многогранниками и т. д.) в трех измерениях.
Существенно расширена функция преобразования типов convert. Теперь она преобразует выражения, составленные из специальных функций, в выражения из элементарных функций, некоторые дифференциальные уравнения одного типа в другие (например, уравнение второго порядка в систему уравнений первого порядка).
Функция eval позволяет производить вычисления в заданной точке и в тех случаях, когда функция подстановки subs не может быть использована.
Существенно усилены функции упрощения выражений (simplify), вычисления алгебраических чисел (evala), нахождения общего делителя чисел и выражений (gcd), функции seq, mul, add, оперирующие с последовательностями, а также улучшены value, sum, expand, optimize и некоторые другие.
Численные расчеты
Важным усовершенствованием, ускоряющим работу некоторых численных алгоритмов, является введение аппаратных массивов чисел с плавающей запятой (hardware floating point numbers). Их использование (в Maple они называются hfarrays) значительно повышает скорость численных расчетов (более чем в 10 раз).
Еще одна новая подпрограмма в Maple - algcurves (алгебраические кривые) - позволяет исследовать одномерные (параметрические) алгебраические кривые, определенные многочленами от нескольких переменных.
Полностью переписана команда fsolve: существенно усилен алгоритм численного решения уравнений, в особенности задач с полиномами, введена новая опция avoid для вычислений "за исключением" некоторых точек или интервалов. Теперь уравнение можно дополнить начальным предположением относительно корня, например
fsolve( sin( x )=0, x = 3.1 ); 3.141592654
Команда fsolve может распознавать границы области определения переменных:
> fsolve(Int(sin( x ), x = 0 .. y )=0, y); 0 > fsolve( Int( sin( x ), x = 0 .. y ), y, avoid = { y = 0 } ); 12.56637061
Улучшена также работа с числами, представляемыми в форме с плавающей точкой evalhf, что позволяет выполнять следующие операторы и процедуры
"+", "*", "^", "**", "&*", "&^", add, sum, Sum, log, log10, mul, erfc, product, Product, ceil, Dirac, floor, frac, Heaviside, piecewise, round, signum, trunc, surd, userinfo, binomial, csgn
Новые пакеты
Пакет Context
Для перепрограммирования программируемого контекстного меню программы Maple создан специальный пакет Context, с которым связана специальная структура данных CONTEXTMENU. Контекстные меню конструируются автоматически на основании контекстных процедур. Используемая системой по умолчанию конфигурация названа context/defaultconfig. Новая контекстная про-цедура может быть установлена как выбираемая по умолчанию для каждого сеанса работы командой installcontext.
Codegen - пакет генерации кодов
Пакет генерации кодов - процедур Maple содержит инструменты, автоматически преобразующие их, оптимизирующие и переводящие на языки Си и Фортран.
Пакет Groebner
Пакет Groebner пришел на смену пакету grobner версии 4.0. Он представляет собой набор подпрограмм для преобразований многочленов (вычислений базиса Гробнера), причем не только обычных коммутативных полиномов, но и асимметричных алгебр, подобных алгебрам Вейля и Оре.
Пакет Ore_algebra
Этот набор подпрограмм предназначен для вычислений в алгебрах линейных операторов, а именно в Оре-алгебрах некоммутативных полиномов.
Пакет преобразований систем дифференциальных полиномиальных уравнений - diffalg
Задача этого пакета - внедрение улучшенной версии алгоритма Розенфельда - Гробнера (Rosenfeld - Groebner, 1995 г.), предназначенного для преобразования дифференциальных уравнений и нахождения решений в виде степенных рядов на основе анализа свойств их полиномиальных систем с чисто алгебраической точки зрения.
Улучшения в версии 5.0 пакета"+", "*", "^", "**", "&*",
К тому, о чем уже было сказано выше, следует добавить, что существенно улучшены и дополнены также пакеты комбинаторных структур (combstruct), линейной алгебры (linalg), линейных рекуррентных соотношений (LREtools), геометрический пакет (geometry), значительно дополнены пакеты интегральных преобразований (inttrans), численной аппроксимации (numapprox), теории чисел (numtheory), изучения математики и программирования (student), графики и инструментов графики (plots, plottools).
Кроме того, компания Maple Waterloo продолжает пополнять свою программу математическими функциями, постепенно превращая ее в энциклопедический справочник.
Расширены возможности графики, в результате увеличения вычислительной мощности программы стало возможным для поверхностей использовать по умолчанию наиболее совершенный стиль PATCH ("заплатки"). При этом допустимо более удобное оформление надписей на осях двухмерных и трехмерных графиков. Добавлены новые опции: axiswidth, axisheight, leftmargin, bottommargin, preview. Теперь возможно использование различных единиц размерности (футы, см, дюймы).
Заключение
Можно не говорить о том, что новая версия 5.0 программы опять вывела Maple в лидеры. Перчатка брошена. Чем ответят конкуренты? На днях компания Macsyma объявила о появлении версии 2.3 своей программы. Без сомнения, и другие конкуренты не заставят себя долго ждать.
Математические пакеты развиваются в сторону увеличения объема как фундаментальной (лучше сказать классической) математической информации, так и современной, посвященной в основном новым алгоритмам численного и аналитического решения математических задач. Лучшие из математических пакетов, по сути дела, превращаются в энциклопедические справочники по математическим методам с "живыми" формулами. Например, юбилейное 30-е издание всемирно известного справочника CRC "Standard Mathematical Tables and Formulae" выпущено в виде компакт-диска и дополнено благодаря вычислительному ядру программы Maple V интерактивной возможностью вычисления формул и построения графиков.
Сегодня практически все работы с достаточно сложными математическими расчетами выполнены с использованием одного из таких пакетов. Достаточно просмотреть библиотеку пользователей (Share) программы Maple, содержащую более 20 Мбайт лучших работ, чтобы осознать масштабы перехода на новые информационные технологии.
Такой подход изменяет даже характер прикладных математических работ, большинство из которых теперь посвящено не поиску новых методов, а разработке алгоритмов автоматизации расчетов. Не приведет ли такое увлечение автоматизацией расчетов к снижению интереса к развитию вычислительных методов?
Возможно, увлечение накоплением информации в удобном для использования виде с помощью новых технологий носит характер временный, но необходимый и полезный, что, скорее всего, позволит математической науке развиваться более высокими темпами. Интеграция математических знаний, безусловно, может быть опасна для конкретного ученого, поскольку, имея кратчайший доступ ко всей информации, специалист, не обладающий независимым складом ума, может утонуть в ней, посвятив всю жизнь освоению достигнутого другими, так и не создав ничего своего. С другой стороны, целеустремленный человек с независимым складом ума сможет не повторять уже пройденного и, используя современные возможности автоматизации, достичь большего.
В заключение хотелось бы поблагодарить Игоря Боровикова, президента корпорации "СофтЛайн", за любезно предоставленную возможность ознакомиться с новой версией программы Maple V. n
Об авторе: Борис Михайлович Манзон - к.ф.-м.н., тел.: (095) 498-45-16Maple V Release 5
Программа разработана для задач, требующих при своем решении использования мощного математического аппарата.
Системные требования: процессор 386 и выше, от 25 до 140 Мбайт свободного дискового пространства, от 8 Мбайт оперативной памяти. Программа работает в среде Windows 3.1x , Windows NT 3.5-4.0 или Windows 95.
"СофтЛайн", тел. в Москве: (095) 232-00-23, http://www.softline.ru