Владимир Дьяконов - 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-суммирования;
• вычисление решений в виде серий линейных q-разностных уравнений;
• нахождение всех q-гипергеометрических решений линейного q-разностного уравнения.
В пакете SolveTools:
• включены функции для решения неравенств;
• обеспечено решение линейных неравенств по отношению к одной переменной;
• обеспечено решение одномерных и многомерных систем неравенств.
Обновленный пакет LREtools:
• содержит функции для определения необходимых условий для того, чтобы решение линейного реккурентного уравнения было аналитическим, в терминах начальных условий;
• позволяет находить все решений Даламбера линейных реккурентных уравнений;
• определяет возможности построения (desingularizable) оператора с полиномиальными коэффициентами для линейной рекурсии и его вычисление в случае существования.