Функции и процедуры (в понятии языков программирования), включенные в откомпилированное ядро, выполняются предельно быстро. С этой точки зрения в ядро было бы выгодно включать как можно больше вычислительных средств. Однако это невольно приводит к замедлению поиска нужных средств из-за возрастания их числа, увеличению времен загрузки ядра и поиска нужных его средств и к другим нежелательным последствиям. Поэтому объем ядра ограничивают, но к нему добавляют библиотеки более редких процедур и функций, к которым обращается пользователь, если в ядре не обнаружена нужная процедура или функция.
Кардинальное расширение возможностей систем и их адаптация к решаемым конкретными пользователями задачам достигается за счет пакетов расширения систем (packages). Эти пакеты, как правило, пишутся на собственном языке программирования той или иной системы, что делает возможным их подготовку как разработчиками СКМ, так и обычными пользователями.
Справочная система (или просто справка) обеспечивает получение оперативных справок по любым вопросам работы с системами компьютерной математики с примерами такой работы. Она содержит и многочисленный справочный материал - математические и физические константы и таблицы, формулы для нахождения производных и интегралов, алгебраические преобразования и т.д. Доступ к информации в справке гипертекстовый.
Ядро, библиотеки, пакеты расширения и справка в Maple аккумулируют знания в области математики, накопленные за тысячелетия ее развития. К сожалению, справка, самоучители и словарь семантических терминов в Maple 9.5/10 написаны на английском языке, что затрудняет их использование нашими пользователями.
1.1.3. Язык программирования систем класса Maple
Система Maple, интегрирует в себе три языка:
• входной или язык общения с системой;
• реализации;
• программирования.
Входной язык является интерпретирующим языком сверхвысокого уровня, ориентированным на решение математических задач практически любой сложности в интерактивном (диалоговом) режиме. Он служит для задания системе вопросов или, говоря иначе, задания входных данных для последующей их обработки. Язык имеет большое число заранее определенных математических и графических функций, а также обширную библиотеку дополнительных функций, подключаемую по мере необходимости.
В состав СКА входит также язык программирования. Так, Maple имеет свой язык процедурного программирования - Maple-язык [51, 52]. Этот язык содержит вполне традиционные средства структурирования программ. Он описан в Главе 10 и включает в себя все команды и функции входного языка в том числе графические.
В новые реализации Maple 9.5/10 добавлены маплет-средства (Maplets) для создания визуально-ориентированного диалога с системой, включающие в себя задание множества диалоговых окон и иных типовых средств интерфейса GUI, привычного пользователям Windows-приложений. Однако даже обычные средства диалога у систем класса Maple обеспечивают высокую наглядность и комфортность работы с системой при решении математических задач.
Языком реализации системы Maple является один из самых лучших и мощных универсальных языков программирования - С. На нем написано ядро системы, содержащее тщательно оптимизированные процедуры. Большинство же функций, которые содержатся в библиотеках расширения системы Maple, написаны на Maple-языке, благодаря чему их можно модифицировать и даже писать свои собственные библиотеки. По разным оценкам, лишь от 5 до 10 % средств Maple создано на языке реализации - все остальное написано на Maple-языке.
Для подготовки программ на языке Maple могут использоваться внешние редакторы, но система имеет и свой встроенный редактор, вполне удовлетворяющий требованиям большинства пользователей. Он открывается командами New и Open в меню File. Этот редактор можно использовать для редактирования файлов программ или математических выражений. Версии Maple для MS-DOS имеют свой редактор программ и отладчик с функциями проверки синтаксиса. После версии Maple V для Windows необходимость в этих средствах практически отпала.
Maple-язык программирования считается одним из самых лучших и мощных языков программирования математических задач. Это, наряду с упомянутыми новыми средствами пакета Maplets, позволяют создавать высококачественные электронные уроки, статьи и даже целые книги.
1.1.4. Новые возможности Maple 9.5
Версия Maple 9.5, по сравнению с предшествующими версиями этой системы, отличается рядом новых существенных возможностей:
• более открытая и доступная инфраструктура;
• более гибкий пользовательский интерфейс;
• новые возможности в работе с символьными выражениями: усовершенствованные алгоритмы упрощения, конвертации, комбинирования выражений;
• увеличение скорости вычислений;
• новые функции и алгоритмы для математических вычислений.
• 8 новых пакетов расширения, в частности новый пакет по оптимизации Optimization;
• существенно переработанные многие пакеты расширения;
• новый мощный пакет оптимизации;
• средства решения дифференциальных алгебраических уравнений DAE (differential-algebraic equation);
• существенно обновленные и улучшенные решатели обыкновенных дифференциальных уравнений (ODE) и дифференциальных уравнений в частных производных (PDE);
• ряд улучшенных численных методов оптимизации, численного решения дифференциальных уравнений, вычисления эллиптических функций и нахождения корней уравнений;
• поддержка интеграции с системой Mathematica;
• решение дифференциально-алгебраических уравнений;
• новые алгоритмы решения обыкновенных дифференциальных уравнений и уравнений с частными производными;
• усовершенствовано интерактивное управление графикой;
• новые палитры и автоматическое завершение ввода названий команд;
• конвертация документов Mathematica в Maple-документы;
• доступ к Maple из программ С, Java, Visual Basic с помощью инструментов Open Maple;
• новые возможности программирования отладки программ. Новый пакет Optimization включает в себя следующие возможности:
• численные методы для решения оптимизационных задач;
• интерактивный мастер (Maplet) постановки и редактирования задач;
• решения произвольной точности;
• алгоритмы для линейного, квадратичного и нелинейного программирования, включая задачи с ограничениями и без них;
• алгоритмы для линейных и нелинейных задач, решаемых методом наименьших квадратов.
Новый пакет Logic разработан для операций с выражениями двузначной булевой логики. Новый пакет RootFinding содержит функции для численного нахождения корней аналитических функций. Словарь математических и инженерных терминов, встроенный в Maple 9.5 содержит более 5000 определений и 300 диаграмм, встроен в справочную систему.
Новый пакет Student[MultivariateCalculus] включает:
• интерактивные программы, основанные на технологии Maplet, обучающие понятиям теории функций нескольких переменных, таких как интегрирование, разложение в ряд Тейлора, производные по направлению;
• средства визуализации основных понятий (замена переменных, центр масс, градиент, якобиан, площадь поверхности и другие);
• расширенное меню Tools обеспечивает доступ к 40 интерактивным обучающим программам по курсам математического анализа, линейной алгебры, функций нескольких переменных.
Пакет Student[Precalculus] содержит новые функции визуализации.
В области аналитического решения дифференциальных уравнений введены новые средства:
• точные решений многих классов дифференциальных уравнений;
• новые алгоритмы решения обыкновенных дифференциальных уравнений (ОДУ) типа Риккати, линейных ОДУ 2 порядка типа Мэтью, решений в виде полиномов нелинейных ОДУ и систем ОДУ, линейных и нелинейных уравнений в частных производных, систем уравнений в частных производных;
• новые методы решений ОДУ с начальными условиями, в том числе заданными в кусочном виде;
• гипергеометрические решения без интегралов линейных ОДУ;
• повышение эффективности при решении трудных ОДУ Абеля первого порядка.
В области решения дифференциальных уравнений численными методами появились следующие возможности:
• три новых численных метода решения задач с начальными условиями для алгебраических дифференциальных уравнений, жестких и нежестких;
• Maplet-поддержка для интерактивного решения алгебраических дифференциальных уравнений;
• опция оптимизации для больших или комплексных систем, повышающая скорость решения в 30 раз;
• новая опция для решения жестких задач с начальными условиями для больших систем ОДУ.
Новые математические инструменты представлены также следующими возможностями:
• в пакет PDEtools введено семь новых команд;
• в пакет diffalg добавлен метод алгебраической триангуляции;
• пакет Logic содержит набор команд для работы с выражениями двузначной булевой логики, обеспечивающий упрощение логических выражений, проверку эквивалентности выражений, преобразование логических выражений в алгебраические по модулю 2 и выполнение логических операций.
• пакет RootFinding содержит функции для численного нахождения корней и вычисление нулей аналитических функций;
• обновленный пакет Groebner, включает два новых алгоритма вычисления редуцированных базисов Гребнера торических идеалов;
• в пакет SumTools включено вычисление сумм гипергеометрического типа.
Пакет QDifferenceEquations обеспечивает:
• суммирование решений операторов q-сдвига с использованием метода точного q-суммирования;