Свежие версии программы Maple появляются на рынке гораздо чаще, чем других популярных математических пакетов. Совсем недавно была выпущена надежная и функциональная Maple 8, а компания MapleSoft уже объявила о выходе новой версии Maple 9. Что же удалось сделать за год с небольшим по совершенствованию возможностей этой программы? Остановимся на основных изменениях.

Прежде всего, в нее включены инструментальные средства интеграции с рядом современных технологий и продуктами других производителей, в том числе функция подключения алгоритмов Maple из внешних процедур, а также автоматическая генерация кода на языках MATLAB и Visual Basic. Теперь пользователь может обращаться к программам последней версии Matlab 6.5.

Добавлены графические средства OpenVis.

Появилась GMP, библиотека алгоритмов выполнения целочисленных расчетов.

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

Пользовательский интерфейс обновлен и стал более функциональным.

Библиотека специализированных приложений стала полнее и содержательнее.

Возросло количество приложений и электронных учебников, включенных в образовательный пакет Student.

Расскажем далее обо всем по порядку.

Maple и другие программы

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

Так, в новой версии этой программы можно вызывать ее библиотеки из внешних источников с помощью специального интерфейса OpenMaple, который представляет собой набор функций для доступа к алгоритмам Maple и структурам данных из созданной пользователем и откомпилированной программы на языке Си. Кроме того, в Maple имеются обратные функции, позволяющие получить доступ из ее среды к внешним структурам данных, описанных на языке Си. Наряду с этим OpenMaple предоставляет возможность запуска сессии Maple, выполнения команды преобразовать структуры данных Maple и контролировать результат. Но следует иметь в виду, что для работы приложения с кодами этой программы необходима установленная в системе Maple 9.0. То есть всякий пользователь, имеющий лицензию на продукт, получает все преимущества работы с приложениями со встроенными кодами Maple.

Иной способ применения алгоритмов данной программы заключается в их перекодировке под другие приложения, для чего в новую версию пакета CodeGeneration включены два целевых языка — MATLAB и Visual Basic; обновлены также генераторы кода для языков Java, Фортран и Си и добавлена возможность модернизации встроенных трансляторов языков.

Примеры:

>with (CodeGeneration) ;

Осторожно, сохраненное имя Matlab будет переопределено и не сохранено.

[C, Fortran, IntermediateCode, Java,
 LanguageDefinition, Matlab,
Names, Translate, VisualBasic]

Преобразование в коды Matlab

>x := 'x' : s := 's' : t :='t' : r:= 'r':
cs := [s=1.0+x, t=ln9s0*exp(-x), r=exp(-x)+x*t] :
Matlab (cs)
s = 0.10e1 + x;
t = log(s) * exp(-x) ;
r = exp(-x) + x * t ;

Преобразование в коды Visual Basic

>f := proc(x, y) local a; if x < 1.0 then a :=
  cos(y) else a := sin(y) end if; return 2 * a;
 end proc ;
VisualBasic(f) ;
Imports System.Math
Public Module CodeGenerationModule
Public Function f(ByVal x As Double, y As Double)
 As Double
Dim a As Double
If  (x < o.10E1)  Then
a = cos(y)
Else
a = Sin(y)
End If
Return 0.2E1 * a
End Module

В рабочих документах Maple 9 достигнута XML-совместимость, т. е. они сохраняются в совместимом формате. Пакет XMLTools существенно расширен, появились поддержка namespace, XSLT-преобразования и XML-анализатор.

Полный вариант статьи см. на CD-ROM