Свежие версии программы 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