Пакет Maple состоит из ядра (процедур, написанных на языке С и хорошо оптимизированных), библиотеки, написанной на Maple-языке, и развитого внешнего интерфейса. Ядро выполняет большинство базовых операций, а библиотека содержит множество команд — процедур, выполняемых в режиме интерпретации. Интерфейс Maple основан на концепции рабочего поля (worksheet) или документа, содержащего строки ввода-вывода и текст, а также графику.
Работа с пакетом происходит в режиме интерпретатора. В строке ввода пользователь задает команду, нажимает клавишу Enter и получает результат — строку (или строки) вывода либо сообщение об ошибочно введенной команде. Тут же выдается приглашение вводить новую команду и т.д. [4]
Сравнительный анализ систем компьютерной математики
Критерий сравнения | Mathcad | MATLAB | Mathematica | Maple | |
Интерфейс | Типа "wysiwyg". Набор выражений происходит от позиции курсора. Выражений с клавиатуры приходится вводить относительно немного, так как в командном окне имеются различные палитры инструментов. | Три окна: командное окно, все переменные и их типы и окно подсказок. Есть строка приглашения, обозначается знаком ">>". В отличие от Mathcad все функции приходится вводить с клавиатуры. | Строка приглашения в отличие от MATLAB разделена на две области: ввода и вывода, которые составляют вместе область всего выражения. Область ввода можно редактировать. Также имеется палитра с греческими буквами, различными символами и панель матанализа. | Интерфейс пользователя поддерживает концепцию рабочих листов ("worksheets"), которые объединяют текст, входные команды, вывод и графику в одном документе/ Программа позволяет одновременно работать с несколькими рабочими листами и устанавливать между ними динамические связи, то есть переводить вычисления с одного листа на другой. | |
Работа с массивами и матрицами | Предоставлен достаточный набор функций для проведения различных операций с матрицами и векторами. Некоторые операции можно брать с соответствующей палитры, другие - вводить с клавиатуры или вставлять из меню Вставка-функции. | Аналогично Mathematica матрицы и вектора формируются при помощи списка элементов. Функции вводятся с клавиатуры. | Многомерный набор данных создается с помощью списка, который вводится с клавиатуры. Также с клавиатуры вводятся и функции для работы с матрицами и векторами. | Аналогично Mathematica матрицы и вектора формируются при помощи списка элементов. Функции вводятся с клавиатуры. | |
Решение уравнений | Различает решение уравнений и систем уравнений. Команды можно набирать с клавиатуры, можно вставлять из меню. | Решает уравнения и системы уравнений функцией с различными параметрами. | Содержит несколько функций для решения уравнений и систем уравнений. Функции могут находить корни уравнений с параметром. Также имеется функция для особых решений. | Решает уравнения и системы уравнений | |
Математические операторы | Приведен в таблице целый ряд операторов, как простых типа сложения, так и вычисления суммы, произведения, интегралов и производных и т.д., которые можно вводить с клавиатуры или вставлять из соответствующей палитры. | Здесь в отличие от Mathcad все операторы вводятся с клавиатуры в виде отдельных символов и функций. Дан относительно подробный список операторов. | Также, как и в MATLAB операторы приходится вводить с клавиатуры, но некоторые можно найти и на палитре инструментов. | Помимо функций в математических системах для записи математических выражений используются специальные знаки — операторы. К примеру, вычисление квадратного корня часто записывается с помощью его специального знака — V. Достаточно хорошо известны операторы сложения +, вычитания -, умножения *, деления / и некоторые другие. Операторы обычно используются с операндами в виде констант или переменных, например в записи 2* (3+4) числа 2, 3 и 4 — это операнды, а знаки * и + — операторы. Скобки используются для изменения порядка выполнения операций. Так, без них 2*3+4=10, тогда как 2*(3+4)=14, поскольку вначале вычисляется выражение в скобках. | |
Встроенные функции | Построены по принципу всех функций: название функции и параметры в скобках. Можно выделить функции упрощения выражения, раскрытия скобок, тригонометрические и целый ряд других. | Здесь в основном используются только функции, которые вводятся с клавиатуры. | Приведено множество функций различного назначения с различным числом параметров. Помогают пользователю в решении различного характера задач. | Maple 7 имеет множество встроенных функций, включенных в его ядро и в пакеты.Функция в выражениях задается вводом ее имени и списка параметров функции (одного или нескольких), заключенного в круглые скобки, например sqrt(2) задает функцию вычисления квадратного корня с параметром 2 (численной константой). Основным признаком функции является возврат значения в ответ на обращение к ней по имени (идентификатору) с указанием списка параметров функции. | |
Программирование | Предоставлены шаблоны для создания программ и подпрограмм. В качестве выходного значения указывается последнее значение, вычисленное программой. Также внутри программы можно использовать функции, описанные ранее. Программы пишутся в том же файле, что и все вычисления. | Здесь программы создаются в виде отдельных М - файлов. Если написать программу какой-нибудь функции, то эту функцию можно будет использовать как стандартную. Также в программу можно вставлять комментарии. | Можно создавать различные функции и оперировать с ними. Позволяет внутри одного блока ввода создавать программы. Результатом будет последнее вычисленное значение. В отличие от Mathcad, где программы пишутся "в столбик", здесь пишутся в строку. | Есть возможность создавать собственные функции, процедуры на языке программирования, напоминающего Паскаль. | |
Графические возможности | Графики строятся на основе имеющихся шаблонов. Основные виды: график в декартовой плоскости, в полярной системе координат, трёхмерный в виде гладкой поверхности, в виде контурных кривых и т.д. Сначала задаётся функция графика, диапазон, затем строится сам график, который можно редактировать. | Функция графика создаётся из командной строки. Графики создаются на формах в определённой системе координат. В команде построения можно указывать свойства графика. | Функция, которая рисует график, заканчивается на "PLOT" в двухмерном случае, и "PLOT 3D" в трёхмерном случае. Чтобы построить график, нужно сначала задать функцию. Также можно и редактировать график. | В библиотеке ядра Maple имеются всего четыре графические команды: plot – для вывода плоской или 2D-графики, plot3d – для вывода пространственной или 3D-графики, smartplot и smartplot3d – для “быстрого” вывода графики. Первые две команды предоставляют пользователю обширные возможности визуализации различных объектов и простые способы задания их свойств. Последнее обстоятельство достигается за счет наличия тщательно продуманной системы опций – необязательных аргументов plot и plot3d.. Так же в среде Maple можно создать анимацию. |
Язык Maple (или Maple-язык) является одновременно входным языком общения с Maple 7 и языком ее программирования. Входящие в него средства (прежде всего операторы и функции) подобраны настолько полно и удачно, что при решении подавляющего большинства типовых математических задач от пользователя не требуется знаний даже основ программирования. Для решения нужной задачи обычно достаточно составить алгоритм и подобрать набор нужных для его реализации функций и иных средств Maple-языка.
В то же время Maple-язык — один из самых мощных языков программирования математических задач, содержащий почти 3000 операторов, команд и функций, входящих в ядро, основную библиотеку и пакеты функций Maple 7. При этом относящаяся к традиционному программированию часть Maple-языка реализована с помощью довольно скромного набора специальных знаков и зарезервированных слов.
Большинство функций Maple 7 (в частности, все, входящие в пакеты) написаны на этом языке. Поэтому знание этого языка является определяющим в серьезном изучении Maple. Ниже Maple-язык описывается как типичный язык программирования.
Алфавит Maple-языка содержит 26 малых латинских букв (от а до z), 26 больших латинских букв (от А до Z), 10 арабских цифр (от 0 до 9) и 32 специальных символа (арифметические операторы +, -, *, /, знак возведения в степень ж и др.). Все они будут рассмотрены в данной главе. Имеется пять пар альтернативных символов (означающих одно и тоже):
и** [и (| ] и |) {и (* } и *)
К специальным одиночным и составным знакам относятся элементы синтаксиса языка:
· % — системная переменная, хранящая результат предшествующей операции;
· : — фиксатор выражения, предотвращающий вывод результата вычисления в ячейку вывода;
· ; — фиксатор выражения, дающий вывод результата вычисления в ячейку вывода;
· # — указатель программного комментария;
· " — ограничитель строки (например, 'string');
· := — оператор присваивания (например,х:=5);
· : ; — пустой оператор;
· :: — указатель типа переменной (например, n::integer или z: -.complex);
· \ — знак обратного деления, который имеет множественные значения в зависимости от контекста (см. справку по этому знаку - backslash).
Комментарии в программе, не выводимые в ячейки вывода, задаются после символа #. В них допустимо использовать все символы кодовых таблиц, что важно при вводе русскоязычных комментариев, использующих символы кириллицы. Применение последних для идентификаторов (имен) объектов недопустимо.
Зарезервированные слова используются для создания условных выражений, циклов, процедур и управляющих команд. Список 42 зарезервированных слов Maple 7 дан ниже.