Что такое maple и для чего он предназначен

REDMOND

Maple 6 — качественно новый уровень математических расчетов

Пользователи популярной универсальной математической программы Maple V, последняя версия которой 5.1 появилась в конце 1998 г., возможно, уже забыли (а некоторые и вообще не знали), что когда-то она называлась Maple IV, Maple III и т.

д. Римская цифра в имени возрастала на единицу всякий раз, когда качество программы существенно улучшалось. Последняя, V, продержалась очень долго, свидетельствуя о первенстве (Victory) продукта среди аналогичных. Теперь же после слова Maple производители поставили арабскую цифру, чтобы сообщить о появлении качественно нового продукта. Так чем же замечательна эта версия Maple?

Стратегическая инициатива

Многое восхищало в программе Maple V: простой и удобный интерфейс, способность мгновенно вычислять и упрощать громоздкие математические выражения, высокое полиграфическое качество формул и великолепная двух- и трехмерная графика. Число зарегистрированных пользователей программы перевалило за миллион. Однако для проведения трудоемких численных расчетов с большими массивами данных производительность программ на встроенном языке Maple была недостаточна высока, и потому приходилось применять дополнительные средства, такие как компиляторы Си и Фортран. И тогда разработчики Maple решили существенно повысить производительность численных расчетов. Для этого компания Waterloo Maple заключила стратегически важное и очень своевременное соглашение с признанным мировым лидером в области разработки численных алгоритмов фирмой NAG о совместной разработке новой версии продукта под названием Maple 6. В результате двухлетней работы программа Maple пополнилась новым пакетом матричных расчетов LinearAlgebra, где были применены соответствующие алгоритмы компании NAG. Команды пакета LinearAlgebra во многом повторяют команды входившего в предыдущие версии Maple пакета linalg, который, видимо, будет исключен.

Сравнение скоростей матричных вычислений программ Maple, Matlab и Mathematica

Оценить производительность продуктов Maple, Matlab и Mathematica можно на взятом из программы Mathematica примере вычисления собственных значений случайной матрицы 1000х1000 и построения графика их абсолютных величин (рис. 1).

Рис. 1. График абсолютных величин собственных значений случайной матрицы размером 1000х1000

Решение этой задачи в программе Mathematica на компьютере с Celeron-366 и оперативной памятью 64 Mбайт заняло 3 мин 42 с. Программный процессор Matlab 5.3.1, вызываемый из Maple с помощью встроенного пакета Matlab, справился с ней за 3 мин 39 с, а вот новый пакет LinearAlgebra программы Maple 6 затратил на это 3 мин 22 с. Таким образом, производительность Maple 6 при выполнении этого примера оказалась выше, чем у Matlab, приблизительно на 10%.

По данным разработчиков, такие матричные операции, как умножение и LU-разложение при размере матрицы выше 200х200, делаются в Maple (с помощью команд пакета LinearAlgebra) в несколько раз быстрее, чем соответствующими командами в среде Matlab или Mathematica.

Матричные графики

Рис.2. Матричный браузер позволяет оценить численные значения элементов массива

Быстрое выполнение расчетов с большими массивами данных дает возможность использовать Maple для обработки сигналов и изображений, при математическом моделировании сложных систем и решении различных технических задач. А для наглядного представления больших массивов данных в программу добавлены соответствующие средства визуализации.

Появился так называемый матричный браузер, позволяющий оценивать численные значения элементов матрицы, диапазон и неравномерность распределения. Теперь матрицы размером более 10х10 не выводятся на экран, а выcвечивается лишь общая информация о них (рис. 2). С помощью контекстного меню, появляющегося на экране после нажатия правой кнопки мыши, можно вызвать матричный браузер или использовать одну из команд пакета LinearAlgebra для преобразования матрицы.

Maple как приложение MS Excel

Если на компьютере установлена электронная таблица Excel 2000, то после инсталляции программы Maple 6 вы обнаружите в меню Сервисб?Надстройка в списке подключаемых к Excel дополнений и строку Maple 6 Excel Edd-in. Если активизировать ее (отметив галочкой), то из Excel автоматически станут доступны все команды Maple. Они будут представлены в виде панели, имеющей кнопки для вызова справки, разюясняющей правила работы, команды и функции. Кроме того, пользователи могут подключать и отключать специализированные пакеты и программы собственной разработки.

Рис.3. Maple Excel link – так можно выбрать команду Maple из браузера и прочитать ее описание

Следует отметить, что основная программа при этом не запускается, а подключаются только необходимые dll-библиотеки.

По сути, средство подключения Maple к Excel выполняет те же функции, что и приложение Mathematica Excel link или Matlab Excel link. Однако Maple Excel link распространяется вместе с Maple совершенно бесплатно, как, впрочем, и другие ее приложения, а вот в конкурирующих программах – как отдельный продукт, причем за весьма немалую плату.

Рис.4. Трехмерный график Maple на рабочей странице Excel

На рис. 4 в качестве примера показано, как можно с помощью Maple Excel link построить график пространственной кривой по данным, введенным в таблицу Excel. Интерактивный диалог позволяет настроить параметры его вывода.

Графика в Maple 6

Браузер данных

Как уже упоминалось выше, большие массивы, матрицы и векторы теперь не выводятся на экран. Для их визуализации используется матричный браузер, дающий возможность представить информацию в режиме:

  • цветовой амплитуды (рис. 2), когда цвет ячеек изменяется в зависимости от величины числа от синего к красному;
  • структуры, когда черным цветом выделяются все ячейки таблицы, содержащие данные;
  • плотности, когда в черно-белом изображении степень черноты ячейки пропорциональна абсолютной величине записанных в ней данных.

Чтобы просмотреть или изменить какие-либо значения данных, можно развернуть на весь экран определенный участок таблицы (рис. 5).

Рис.5. Так можно просмотреть и изменить отдельные значения данных в матричном браузере
Форматы графических обюектов

Графики, полученные в Maple, можно сохранить (либо экспортировать) в графические форматы DXF, JIF, EPS, JPEG/JPG, POV, WMF, BMP. Для экспорта картинки достаточно вызвать контекстное меню на графике и из его пункта Export as выбрать нужные формат и каталог для сохранения. К графическим улучшениям относятся, кроме того, возможность подключения и редактирования легенды для кривой (или нескольких кривых) на двухмерных графиках, а также изменения размера символов в точечных графиках. В пакете plots появилась команда matrixplot для построения трехмерной поверхности по значениям матрицы.

Рис.6. Подключаемая и редактируемая легенды на двухмерном графике

Языковые и системные изменения в Maple 6

Вызов и подключение внешних процедур

Это одно из наиболее существенных улучшений программы Maple 6, поскольку позволяет неограниченно расширять ее возможности за счет внешних приложений. Процедуры, написанные на языке Си или любом другом, имеющем Си-интерфейс, которые найдены в библиотеках расширений (DLL в Windows), могут подключаться к Maple в процессе и затем вызываться как собственные Maple-процедуры.

Рис.7. Трехмерный матричный график

С целью обюединения или изоляции соответствующих данных и процедур их обработки введены новые обюекты – модули, а также необходимые ключевые слова, языковые конструкции и функции для их обслуживания. Новый пакет LinearAlgebra тоже был добавлен в программу в качестве модуля.

Теперь на 32-разрядных компьютерах обюекты могут иметь 2 26-1 членов в одном выражении вместо 2 17-1 , и значит, полиномы могут включать около 33 млн. членов, а не 60 тыс.

Небольшие целые числа (со значением менее 2 30 на 32-разрядных машинах или 2 62 на 64-разрядных) стали сохраняться в памяти более эффективно, что ускоряет расчеты и уменьшает обюем используемой оперативной памяти.

Символ конкатенации двух обюектов в конструкциях встроенного языка изменен: ранее использовалась точка, а сейчас – пара вертикальных линий. Точка же применяется для матричного и векторного умножения.

Конечный разделитель для утверждения if был ранее fi, для циклов – od, а для процедур – end. В новой версии Maple ключевым словом end может заканчиваться любая структура. Оно является корректным и по умолчанию может сопровождаться начальным разделителем структуры. Таким образом, if-структура может оканчиваться как словом end, так и словосочетанием end if. Цикл (for..while..do) может заканчиваться и end и end do, и т. д. Для обратной совместимости ключевые слова fi и od сохранены.

Изменения в численных расчетах

Для тщательного контроля численных расчетов Maple 6 выполняет естественное расширение до произвольной точности и точной арифметики стандартов IEEE-754 и IEEE-854.

Ядро Maple 6 было усовершенствовано так, что комплексные числа представляются собственными структурами данных. Это ускорило выполнение вычислений с комплексными числами.

Пакеты, исключенные из программы, а также новые и улучшенные

Из программы устранен пакет logic, а функции удаленного пакета totorder полностью переданы команде assume. Добавлен пакет LinearALgebra, самый значительный в новой версии. Точность, аккуратность, надежность, производительность его функций, а также принцип построения в среде Maple теперь станут примером для последующего улучшения и изменения всех имеющихся и вновь разрабатываемых программ для численных расчетов.

Пакет Slode

Этот пакет содержит функции для нахождения решений обыкновенных дифференциальных уравнений (ОДУ) в виде степенных рядов (гипергеометрических, полиномиальных, рациональных и разреженных).

Средства для полиномов (polytools)

Этот пакет обюединил множество команд Maple, ранее использовавшихся для вычислений с полиномами, таких как minpoly, recipoly, split, splits и translate, добавлены также и некоторые другие команды. Появился и пакет Spread, обеспечивающий программируемый доступ к электронным таблицам Maple. Он включает команды для преобразования данных в отдельных ячейках или блоках с использованием матриц.

Был улучшен подпакет Rif пакета Detools, представляющий собой мощный набор команд для упрощения и анализа систем полиномиально-нелинейных дифференциальных уравнений, обыкновенных и в частных производных.

Алгебраические кривые (algcurves)

Были добавлены пять новых функций.

Символьные вычисления

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

Теперь можно решить ОДУ или систему таких уравнений при наличии ограничений, которые могут быть заданы как уравнения или неравенства и могут включать как зависимые переменные, так и другие введенные функции либо символы.

В пакет были добавлены новые методы, а некоторые устаревшие были заменены более эффективными. Примеры из известной монографии Камке были решены на 97%. Дополнительно включены методы решения ОДУ сравнением с инвариантными семействами ОДУ (как предложено в Computer Physics Communications, б№113 (1998), p. 239) и решение ОДУ Абеля методом, опубликованным в статье «Equivalence and New Integrable Classes», появившейся в упомянутом журнале в этом году.

Обыкновенные дифференциальные уравнения второго порядка

Для решения нелинейных ОДУ второго порядка были использованы недавно опубликованные новые методы. Теперь стало возможным решать 95% задач из монографии Камке.

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

Алгоритмы решения систем ОДУ были переписаны с целью использования преимуществ пакета diffalg и подпакета Rif.

Среди наиболее важных новшеств следует отметить:

  • возможность включать в систему алгебраические уравнения и неравенства;
  • возможность разбивать одно решение на несколько в соответствии с величинами или соотношениями между функциями либо символами, включенными в систему в качестве параметров;
  • более эффективные методы решения ОДУ и более простой ответ, а также возможность задания предпочтительного порядка решения.
  • упрощение нелинейных систем ОДУ, что приводит как к значительному расширению типов решаемых систем, так и к упрощению ответов по сравнению с версией 5.0.

Новые алгоритмы были применены в пакете pdsolve для решения линейных и нелинейных уравнений в частных производных. Для уравнений второго порядка pdsolve теперь пытается разложить дифференциальный оператор на множители, что позволило решать многие уравнения, с которыми не справлялась версия 5.0.

Появившаяся в пакете PDEtools команда casesplit позволяет анализировать и упрощать PDE-системы и в то же время ищет различные способы разделения переменных в уравнениях или системах. Еще одна новая команда в пакете PDEtools, separability, дает возможность определить, когда заданное уравнение допускает решение разложением на сумму или произведение. Если separability используется вместе с командой casesplit, то определяются практически все случаи, в которых уравнение может быть решено разделением переменных, и тогда задача сводится к решению уравнений, полученных разделением переменных.

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

Команда isolve может решать в поле целых чисел и некоторые неравенства, что ранее ей не удавалось.

Хорошо известно, что в общем случае корни полиномов пятой степени не могут быть найдены в радикалах. Новая Maple знает все случаи решения этих полиномов и выписывает соответствующее аналитическое решение при использовании команды solve.

Существенно улучшена и команда simplify, особенно когда она используется для выражений со специальными функциями. Команда convert теперь преобразует тригонометрические выражения в радикалы, когда аргументы кратны 0, о?/6, о?/4, о?/3, о?/2 или о?, а функция expand уже может раскладывать в сумму тригонометрические функции Якоби и Вейерштрасса.

Команда minimize (нахождение минимума) была полностью обновлена – она возвращает не только минимум, но и значение независимой переменной, при которой найден минимум, путем добавления опции location=true.

Поскольку стали применяться не только численные методы нахождения минимума, но и (если это возможно) аналитические, значительно расширился класс выражений, которые можно решать с помощью команды minimize.

Усовершенствование интерфейса в Maple 6

В новом варианте интерфейса стало возможным:

  • производить автоматически все замены, а не только последовательные, как было раньше;
  • импортировать и экспортировать данные в форматах Matlab, MatrixMarket или Tab Delimited;
  • организовывать поименованные электронные таблицы. В дальнейшем эти имена могут быть изменены;
  • осуществлять программный доступ, а также преобразование таблиц и данных в них из командной строки Maple 6 (позволяет программам и функциям создавать и преобразовывать таблицы в рабочих страницах);
  • использовать редактор гиперссылок для одновременного введения адреса во всех гиперссылках или при наборе гиперссылок рабочего листа.
  • экспортировать рабочие листы Maple в формат RTF для использования их в Word 2000 и во всех ОС Windows, поддерживающих Word 2000;
  • указывать минимальный размер страниц и печатать их номера;
  • прятать или показывать при выводе на экран электронные таблицы, Maple-ввод и вывод, графики;
  • использовать два размера кнопочных палитр, причем один из них в полтора раза больше основного;
  • вводить команду на создание матрицы при помощи матричной кнопочной палитры.

Заключение

До некоторого момента времени все программы математических расчетов можно было разделить на две категории. В одну входят программы численных расчетов, расширяющие возможности языков программирования высокого (или сверхвысокого) уровня. Они включили в себя лучшие алгоритмы численных расчетов. К ним следует отнести в первую очередь пакет Matlab компании Mathworks, сравнительно недавно появившийся пакет Gauss компании Aptech, а также свободно распространяемый Scilab. В каком-то смысле библиотеки численных алгоритмов компании NAG, расширяющие возможности языков высокого уровня Си и Фортран, также попадают в эту категорию.

Другая категория – программы аналитических расчетов, или системы компьютерной алгебры, позволяющие получать решение в точном аналитическом виде. К их числу можно отнести как программы Derive и Reduce, так и первые версии продуктов Maple и Macsyma.

Системы численных расчетов больше приспособлены для создания независимых приложений, включая разработку интерфейса. А вот в программах компьютерной алгебры для лучшего восприятия аналитических выкладок особое внимание уделяется полиграфическому оформлению формул, и потому они больше подходят для создания научных документов, в том числе «электронных книг» с «живыми» (перевычисляемыми при изменении данных) формулами.

Лучшие программы обеих категорий поддерживаются практически на всех широко используемых платформах, используют превосходную двух- и трехмерную графику, позволяют выполнять большое количество расчетов в интерактивном режиме, не прибегая к дополнительному программированию, и в то же время обладают мощными средствами для последнего. Некоторые функции и возможности присущи продуктам как той, так и другой категории. Например, одно из приложений программы Matlab – символьная библиотека программы Maple, а программы компьютерной алгебры содержат, в свою очередь, алгоритмы численных расчетов.

Тенденция к включению функций продуктов обеих категорий, т. е. к универсальности проявляется и в последних версиях программ математических расчетов. Например, сравнительно недавно появилась программа Mathematica компании Wolfram Research, которая изначально была задумана как универсальный математический пакет.

Несколько особняком стоит программа Mathcad компании Mathsoft, обладающая широкими сервисными и функциональными возможностями. Однако она имеет весьма ограниченные средства программирования, уступает по производительности расчетов и качеству графики и работает только под управлением Windows. Поэтому Mathcad скорее можно назвать мощным научным калькулятором, а не математическим программным продуктом.

Хотя последние версии программ Maple и Mathematica уже называют универсальными математическими пакетами, до сих пор не появилось такой программы, которая одинаково хорошо выполняла бы функции, присущие лидерам обеих категорий. С другой стороны, Matlab, один из лучших пакетов для выполнения численных расчетов, начал развиваться как набор специализированных приложений. Сейчас насчитывается более 50 так называемых тулбоксов, подключаемых к Matlab и значительно расширяющих его функции в различных областях. Кроме того, большое количество специальных приложений этого ПО разрабатывается и распространяется сторонними производителями. Поскольку в настоящее время догнать Matlab по широте приложений какая-либо другая программа вряд ли сможет, универсальный математический пакет, на мой взгляд, должен включать Matlab как основную составляющую численных расчетов.

Рис. 9. Пример использования пакета Slode – нахождение решения дифференциального уравнения в виде формального гипергеoметрического ряда

Появление пакета Matlab в версии Maple V 5.0 многие восприняли как знак сближения усилий компании Waterloo Maple, занимающейся ПО для аналитических расчетов, и фирмы Mathworks, разрабатывающей продукты для численных расчетов, в деле создания универсального математического пакета. К тому же пакет Maple для символьных расчетов уже давно стал одним из тулбоксов Matlab. Однако Waterloo Maple предпочла работать с другим партнером – компанией NAG, специализирующейся на поставке библиотек алгоритмов численных расчетов. Время покажет, насколько правильным был выбор такой стратегии.

Первые тесты нового детища Waterloo Maple позволили сделать вывод о том, что по производительности матричных вычислений Maple уже сравнялась с программой Matlab и даже в некоторых случаях превзошла ee.

Таким образом, можно заключить, что сделан еще один большой шаг в совершенствовании универсального математического пакета: появилась новая версия Maple 6, которая по производительности и функциональности значительно обогнала своего ближайшего соперника – программу Mathematica.

Борис Манзон – к. ф.-м. н., менеджер по научному программному обеспечению компании SoftLine

Работа со справочной системой Maple V.

Приложение Maple 6 имеет стандартный графический интерфейс пользователя для программ, работающих под управлением операционных систем семейства Windows. При загрузке программы на экране монитора отображается окно, в котором можно выделить несколько основных частей.

В верхней части, непосредственно под заголовком окна, находится главное меню системы (команды главного меню мы будем рассматривать по ходу изложения материала).

  • Стандартное меню рабочего листа
  • Меню электронной таблицы
  • Меню двумерной графики
  • Меню трехмерной графики
  • Меню справочной системы

Ниже главного меню расположена основная панель инструментов с рядом кнопок, дублирующих наиболее часто используемые команды главного меню. Непосредственно под основной панелью инструментов расположена контекстная панель инструментов, вид которой зависит от того, в какой области рабочего листа расположен курсор и что в этой области отображается. Существует пять видов контекстных панелей инструментов:

  • для области ввода
  • для области вывода
  • для выделенного двумерного графика
  • для выделенного трехмерного графика
  • для выделенной анимационной графики

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

Работа в диалоговом режиме.

Диалог с системой Maple V происходит на языке задания системе вопросов: пользователь вводит на рабочем листе комады и нажатием клавиши [Enter] передает их на исполнение ядру системы Maple.

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

Содержимое областей ввода и вывода образуют отдельный блок — Группу вычислений, которая на рабочем листе отмечается слева квадратной скобкой. Основное свойство группы вычислений заключается в том, что все ее операторы и команды выполняются при однократном нажатии клавиши [Enter].

Для начала работы нам понадобится знание некоторых одиночных и составных знаков элементов синтаксиса Maple:
> Знак приглашения к заданию вопроса.
| Мигающая вертикальная черта — маркер ввода.
; Знак фиксации конца выражения с выводом результата вычислений на экран.
: Знак фиксации конца выражения, предотвращающий вывод результата на экран.
:= Оператор присваивания (например, x:=4).
= Оператор равенства для задания равенств и логических условий (например, a=b), указания областей изменения переменных (например, i=1..5) и значений параметров — опций в функциях и командах (например, color=black).
Рабочий лист. Область ввода.

Область ввода — это область рабочего листа, в которой пользователь вводит информацию. Эта информация может быть двоякого рода:

  • команды и операторы Maple
  • текстовые комментарии.

По умолчанию при создании нового рабочего листа устанавливается режим ввода команд и операторов. Указанием на это является приглашение ввода на рабочем листе — символ >. Операция Edit ->Entry Mode или клавиша F5 служит для включения/выключения режима ввода текста. Если режим текстового ввода включен, приглашение в виде знака >исчезает, и имеется возможность ввода текстовых комментариев с применением панели форматирования для задания параметров текста. Если режим отменен, то можно вводить математические выражения (Maple-текст).

REDMOND

Режим ввода команд. Команды можно отображать либо в форме синтаксиса языка Maple, либо в виде привычной математической записи. Переключаться между режимами ввода можно с помощью кнопки на контекстной панели инструментов или используя команды главного меню.

Для ввода результата в стандартной математической форме надо до начала набора команд выполнить команду Insert -> Standart Math Input, результатом выполнения которой будет смена курсора в области ввода на вопросительный знак. Также появится контекстная панель инструментов ввода команд Maple с полем ввода.

При этом в поле ввода будет отображаться команда в форме синтаксиса Maple, а в области ввода эта же команда будет отображена в математической нотации (если команда имеет соответствующую математическую запись) по завершении ввода нажатием кнопки или клавиши [Enter].

Режим ввода текстовых комментариев — это такой режим, при котором любая математическая информация воспринимается как текст (невыполняемый). Для вставки текстового комментария следует выполнить команду Insert -> Text или нажать кнопку на основной панели инструментов.

В текстовый комментарий можно вставлять формулы, причем в зависимости от способа вставки эти формулы могут воспринимаются как текст или как вычисляемые выражения.
Для вставки формул-текста достаточно выполнить команду Insert -> Standart Mathили нажать кнопку на основной панели инструментов. Технология ввода формул аналогична вводу команд Maple в математической нотации (см. выше).

Для вставки в комментарии выполняемых команд необходимо выполнить команду Insert -> Maple Input (для вставки в форме Maple-команд) или Insert -> Standart Math Input (для вставки в стандартной математической форме). Введенные таким образом формулы можно в любой момент вычислить, выполнив команду Execute контекстного меню для вставленной формулы или нажатием кнопки на контекстной панели инструментов.

В Maple 7 на контекстной панели инструментов введена новая кнопка , которая дублирует команду основного меню Edit -> Execute -> Worksheet (Выполнить всю страницу)

Переключение между исполняемым выражением или неисполняемым (текстом) можно осуществить с помощью кнопки контекстной панели инструментов.

Вернемся к процедуре ввода команд. Если команда достаточно длинная, то Maple автоматически переходит на следующую строку (если команда представлена не как поток символов, а разбита пробелами на слова). Расположенная в нескольких строках команда является одним целым.

В одной строке можно вводить несколько операторов, разделенных точкой с запятой (;) или двоеточием (:). Но иногда удобно задать несколько операторов по одному на строке в области ввода. Перенос команды на новую строку (без выполнения) осуществляется нажатием комбинации клавиш [Shift+Enter]. Все введенные таким способом операторы образуют одну группу и последовательно выполняются однократным нажатием клавиши [Enter].

Для того, чтобы ПОСЛЕ выполнения очередной команды, автоматически появлялась новая ячейка с приглашением Maple для ввода команд, необходимо выполнить команду Option -> Insert Mode.

Если режим автоматической вставки новой ячейки не включен, вы можете воспользоваться кнопкой стандартной панели инструментов (ячейка появится ниже той, в которой находится курсор) или воспользоваться командой меню Insert -> Execution Group: для вставки новой ячейки перед той, в которой находится курсор — Before Cursor ([Ctrl+K]), и, соответственно, After Cursor ([Ctrl+J]) для вставки новой ячейки после курсора.

Пользователь вводит команды Maple в строке ввода, используя клавиатуру. При этом ему приходится запоминать, особенно при первом ознакомление системой, достаточно большое их количество. В интерфейс пользователя в версии Maple V R5 были введены палитры — небольшие окна с набором шаблонов для ввода определенных команд и объектов. Всего Maple предлагает четыре вида палитр:

  • Палитра для ввода символов (команда View->Palettes->Symbol Palette) — для ввода греческих букв и некоторых символов.
  • Палитра с шаблонами для ввода выражений Maple (команда View->Palettes->Expression Palette)
  • Палитра с шаблонами для ввода матриц размерности не более (4 х 4) (команда View->Palettes->Matrix Palette)
  • Палитра с шаблонами для ввода векторов View->Palettes->Vector Palette(Появилась в Maple 7)

В Maple 7 в подменю View->Paletts добавлены еще две команды: отобразить все палитры Show All Palettesи скрыть все палитры Hide All Palettes.

Размеры наборных панелей устанавливаются командами подменю Options -> Palette Size, при выборе которых они отображаются малого размера (Small), большого размера (Large) или размеры выбираются приложением Maple в зависимости от размеров экрана монитора компьютерам (Best Choise).

Рабочий лист. Область вывода.

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

  • в виде строковой записи — аналогично формату ввода Maple-команд
  • в виде символьной записи — имитирует запись формул в математической нотации
  • в стандартном математическом виде, причем в этом случае возможны два варианта вывода: редактируемый (можно выделять отдельные элементы выводящегося выражения, копировать их) и не редактируемый (при выделении области вывода выделяется все выражение целиком).
Простейшие графики.

Графика Maple V реализует все мыслимые (и даже «немыслимые») варианты математических графиков — от построения графиков простых функций в Декартовой и в полярной системах координат до создания реалистических образов сложных пересекающихся в пространстве фигур с их функциональной окраской. Возможны наглядные графические иллюстрации решений самых разнообразных уравнений, включая системы дифференциальных уравнений.

В само ядро Maple V встроено ограниченное число функций графики. Это прежде всего функция для построения двумерных графиков (2D-типа) — plot( ) и функция для построения трехмерных графиков (3D-типа) — plot3d( ). Они позволяют строить графики наиболее распространенных типов. Для построения графиков специального типа (например, в виде векторных полей градиентов, решения дифференциальных уравнений, построения фазовых портретов и т.д.) в пакеты расширения системы Maple V включено большое число различных графических функций. Для их вызова необходимы соответствующие указания.

Для построения двумерных графиков служит функция plot( ). Она задается в виде:
>plot(f, h, v)
или
>plot(f, h, v, o)
где

f — функция (или функции), чей (чьи) график(и) строятся,
h — переменная с указанием области ее изменения по горизонтали,
v — (не обязательный параметр) заданная опционально переменная с указанием области ее изменения по вертикали,
o — не обязательный параметр) опция или набор опций, задающих стиль построения графика (толщину и цвет кривых, тип кривых, метки на них и т.д.).

Самыми простыми формами задания этой функции служат:
>plot(f, xmin..xmax) — построение графика функции f, заданной только именем;
>plot(f(x), x=xmin..xmax) — построение графика функции f(x).

Диапазон изменений независимой переменнойx задается как xmin..xmax, где xmin и xmax — минимальное и максимальное значение x,
.. (две точки) — составной символ, указывающий на изменение независимой переменной. Разумеется, имя x здесь дано условно — независимая переменная может иметь любое допустимое имя.

С опциями двумерной графики мы познакомимся в Лекции №7.

Для построения графиков трехмерных поверхностей Maple имеет встроенную в ядро функцию plot3d. Простейшие форматы ее представления:
>plot3d(expr1, x=a..b, y=c..d, p)
>plot3d(f, a..b, c..d, p)

где

f — функция
expr1 — выражение, отражающее зависимость от х и у,
а и b — числовые константы действительного типа,
c и d — числовые константы или выражения действительного типа
р — параметры-опции.

Вывод графики в Maple можно осуществлять непосредственно в рабочий лист (режим по умолчанию) или в отдельное окно. Задание соответствующих режимов осуществляется командами Options ->Plot Display -> Inline и Options ->Plot Display -> Window.

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

В системе Maple предусмотрено быстрое построение двумерных графиков функций с помощью команды контекстного меню, которое появляется при щелчке ПРАВОЙ кнопкой мыши на выражении в области вывода. (Для этого сначала в области ввода необходимо набрать команду, задающую функцию, и выполнить ее, т.е. нажать клавишу Enter). В контекстном меню следует выбрать команду Plots -> 2-D Plot, после чего Maple с помощью специальной команды smartplot() построит график функции, содержащейся в области вывода.

Команда smartplot() использует при построении графика функции значения параметров по умолчанию. Но их можно изменить, теперь уже с помощью контекстного меню полученного графика. Обратите внимание на то, что содержимое строки главного меню и контекстной панели инструментов изменилось. На график, построенный с помощью функции smartplot() можно добавить графики других функций простым перетаскиванием с помощью мыши их определения из области вывода в область графика. При этом, если необходимо оставить определения функции в области вывода, перетаскивание осуществляется с нажатой клавишей Ctrl. В противном случае перетаскиваемая выделенная часть будет удалена из области вывода.

Аналогичным перетаскиванием можно удалить какую-либо функцию из области графика. Для этого следует подвести указательмыши на линию графика функции и переместитьего за пределы рисунка. При этом в том месте рабочего листа,куда он будет перемещен, появится команда, задающая удаленную функцию.

Основы редактирования.

Операции редактирования содержатся в позиции главного меню Edit.

Некоторые операции редактирования:
Undo Delete Ctrl+Z Отменить последнюю операцию редактирования.
Cut Ctrl+X Поместить выделенное в буфер.
Copy Ctrl+C Скопировать выделенное в буфер.
Copy As Maple Text Копирование выделения в буфер в формате Maple-текста.
Paste Ctrl+V <> Вставить выделенное из буфера в документ.
Paste Maple Text Вставить данные из буфера в формате Maple-текста.
Delete Paragraph Ctrl+Del Стирание выделенных объектов.
Select All Ctrl+A Выделение всех объектов документа.
Find. Ctrl+F5 Найти заданную текстовую или математическую строку.
Input Mode F5 Включение/выключение ввода текстов.
Split or Join Разделение или объединение объектов.
Execute Исполнение выделенных или всех строк.
Remove Output Удаление вывода для выделенных или всех строк.
Сохранение результатов работы.

Рабочие листы Maple V сохраняются в файлах с расширением msw. Существует возможность сохранить рабочий лист в файлах других форматов, указав в диалоге команде Save As соответствующий формат, либо воспользоваться командами подменю Export As:

Команда Расширение Описание формата
Plain Text .txt Обычный текстовый файл.
Maple Text .txt Текстовый формат Maple.
Latex .tex Формат издательской системы LaTeX.
HTML .html Формат HTML.
Maple Explorer .tex Формат для обозревателя Maple (позволяет просматривать готовые файлы Maple)
RTF .RTF Формат RTF (позволяет вставлять рабочие листы в документы MS Word с сохранением цветовой палитры)

Работа со справочной системой Maple V.

Система Maple V имеет мощную и подробную справочную базу данных, расчитанную на удовлетворение всех запросов пользователя на справочную информацию.

В реализации Maple V R7 справочная база данных имеет очень удобную древообразную структуру контекстно-зависимого поиска. При этом в ходе поиска информации вначале указываются ее общие признаки, затем более частные — и так до пяти ступеней.

Основные операции по работе со справочной системой Maple V R7 сосредоточены в позиции главного меню Help (Справка).

Она содержит следующие команды и операции:
Contexts Включение раздела справки по контексту.
Help on Context Ctrl+F1 Оперативная справка по контексту.
Topic Search. Предметный поиск по заданному образцу.
Full Text Search. Предметный поиск с полным обзором текста справки.
History. <> Вывод истории справочного поиска.
Save to Database. Формирование базы данных.
Remove Topic. Восстановление базы данных предметного поиска.
Using Help. Справка по использованию справочной системы.
Ballon Help Включение всплывающих "шпаргалок".
About Help Вывод окна с информацией о системе.

Другая система помощи онлайновая (online) позволяет вызвать нужную справку в командном режиме. Для этого достаточно набрать в командной строке слово help или ? с последующим указанием искомого слова, например:

>help sin
или
>? sin

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

При этом на экран дисплея будет выведено подробное сообщение (справка) на английском языке о назначении и правилах записи (синтаксисе) соответствующей функции, оператора или пакета применений.

Достаточно полезным средством является выделение и выбор примеров из справок. Для этого используется клавиша Ins, которой намечают начало и конец выделений. Можно также выделить пример, перемещая мышь с нажатой левой клавишей. Наконец, используя команду Copy Examples в позиции Edit главного меню окна справки, можно скопировать в буфер все примеры.

После этого, закрыв окно справки, можно с помощью команды Edit ->Paste перенести в него имеющиеся в буфере примеры.

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

Помимо встроенных в ядро функций в систему входят дополнительные функции и пакеты прикладных программ. Чтобы получить помощь по ним, нужно ввести их имя после вопросительного знака. Например, чтобы получить помощь по функциям пакета расширения системы plots, достаточно ввести в командной строке:

> ?plots

А чтобы найти полный перечень пакетов расширения, можно ввести команду:

>?index[package]

Обратите внимание на то, что после этих обращений к справочной системе никакие знаки (двоеточие или точка с запятой) не ставятся. В конце каждой справки приводятся имена связанных с данным объектом слов, а также другие возможные формы получения справок. Используя их, можно более подробно познакомиться с возможностями системы.

Удобно в описываемой версии Maple V решен и вопрос о предоставлении оперативной контекстно-зависимой справки по любой функции. Достаточно указать ее маркером и нажать клавиши Ctrl + F1 (или, что не документировано, просто F1). Тут же будет выведено окно справки по данной функции. Можно также выделить интересующее вас слово и получить справку по нему.

Введение.Возникновение и развитие систем компьютерной математики

CAS были созданы в 70-ые годы и развивались в рамках проектов, связанных с искусственным интеллектом. Поэтому сфера применения их достаточно большая и разнообразная. Первыми популярными системами были Reduce, Derive, Macsyma. Некоторые из них до сих пор находятся в продаже. Свободно распространяемая версия Macsyma — Maxima. На данный момент лидерами продаж являются Maple и Mathematica. Оба этих пакета активно используются в математических, инженерных и других научных исследованиях. Существует множество коммерческих систем компьютерной алгебры: Maple, Mathematica, MathCad и другие. Свободно распространяемые программы: Axiom, Eigenmath, Maxima, Yacas и др.

Успех в современном использовании САВ лежит в интеграции всех машинных возможностей (символьный и численный интерфейс , встроенная графика , мультипликация , базы и банки данных и т. д.). Все современные коммерческие системы компьютерной математики (Mathematica, Maple, MatLab и Reduce) обладают стандартным набором возможностей:

  • имеется входной макроязык для общения пользователя с системой, включающий специализированный набор функций для решения математических задач;
  • имеются основные символьные (математические) объекты: полиномы, ряды, рациональные функции, выражения общего вида, векторы, матрицы;
  • системы используют целые, рациональные, вещественные, комплексные числа;
  • имеется несколько дополняющих друг друга режимов работы: редактирование, диагностика, диалог, протокол работы;
  • присутствует связь со средствами разработки программ: возможны подстановки, вычисления значений, генерация программ, использование стандартного математического обеспечения (библиотек);
  • используются интерфейсы для связи с офисными средствами, базами данных, графическими программными средствами и т.п.;

Хотя между системами имеются различия, синтаксис ассоциированных языков не является проблемой, затрудняющей использование систем компьютерной математики. Синтаксис языков систем в значительной степени аналогичен синтаксису Паскаля. Обязательно имеются операторы присваивания, понятие вызывающей функции (команды), более или менее богатый выбор управляющих структур ( if, do, while, repeatи т. д.), возможности для определения процедур,. . . — в общем, весь арсенал классических языков программирования, необходимый для записи алгоритмов.

Системы компьютерной алгебры можно условно разделить на системы общего назначения и специализированные. К системам общего назначения относятся Macsyma, Reduce, Mathematica, Maple, Axiom и другие системы.

В 80-е годы прошлого века широкое распространение в бывшем СССР получила система Reduce. Она первоначально предназначалась для решения физических задач, разрабатывалась на наиболее широко распространённых компьютерах, разработка до определённого времени не носила коммерческого характера (система до конца 80- х годов распространялась бесплатно). Открытый характер системы позволил привлечь к её разработке огромную армию пользователей, обогативших систему многочисленными пакетами для решения отдельных задач.

Macsyma, так же, как и Reduce, является "старой" системой. В отличие от системы Reduce, Macsyma разрабатывалась с самого начала как коммерческий продукт. В ней более тщательно проработаны алгоритмические вопросы, её эффективность существенно выше, но меньшее её распространение можно объяснить двумя обстоятельствами: длительное время она была реализована только на малом числе "экзотических" компьютеров и распространялась только на коммерческой основе.

Система Maple, созданная в 80-х годах прошлого века в Канаде, с самого начала была задумана как система для персональных компьютеров, учитывающая их особенности. Она развивается "вширь и вглубь", даже её ядро переписывалось с одного алгоритмического языка на другой. В настоящее время Maple широко применяется во многих странах (в частности, в США и Канаде) в учебном процессе, а также в различных областях научных и технических исследований.

В конце прошлого века получила широкое распространение и сейчас быстро развивается система Mathematica. Её успех в значительной степени объясняется её широкими графическими возможностями а также электронной документацией, которую можно рассматривать как электронную библиотеку, посвящённую различным разделам математики и информатики.

Особое место среди систем компьютерной алгебры занимает система Axiom. В отличие от остальных систем, представляющих собой пакеты программ, общение с которыми осуществляется на некотором алголо-подобном языке, система Axiom, развившаяся из системы Scratchpad-II, имеет дело с более привычными для математиков объектами. В частности, в ней ключевым понятием является понятие категории: здесь можно рассматривать, например, категории множеств, полугрупп, дифференциальных колец, левых модулей и т. д. Система имеет высокую степень универсальности, требует для своей реализации мощных компьютеров, распространяется за достаточно высокую плату, поэтому используется только в ограниченном числе мощных университетских и научных центров.

Специализированные системы отличаются более высокой эффективностью, но область их применения ограничена. К специализированным системам относятся такие системы, как Caley и GAP — специализированные системы для вычислений в теории групп, Macauley, CoCoA, Singular — системы разной степени универсальности для вычислений в кольце многочленов, Schoonship — специализированная система для вычислений в физике высоких энергий, muMath и её правонаследница Derive — системы, широко используемые в учебном процессе (в частности, в Австрии лицензия на установку системы Derive приобретена для всех средних школ), и многие другие.

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

Maple состоит из ядра, процедур, написанных на языке С и в высшей степени оптимизированных, библиотеки, написанной на Maple- языке, и интерфейса. Ядро выполняет большинство базисных операций. Библиотека содержит множество команд и процедур, выполняемых в режиме интерпретации. Программируя собственные процедуры, пользователь может пополнять ими стандартный набор и, таким образом, расширять возможности Maple. Работа в Maple проходит в режиме сессии ( session ). Пользователь вводит предложения (команды, выражения, процедуры и др.), которые воспринимаются Maple. По умолчанию результаты сеанса сохраняются в файле с расширением ‘ms’. Если задан режим сохранения состояния сеанса ( session ), то в файле с расширением ‘m’ будут записаны текущие назначения.

Mathematica — это широко используемая CAS изначально разработана Стивеном Вольфрандом, которая продаётся компанией Wolfram Research. Он начал работу над Mathematica в 1986 году, а выпустил в 1988 году. Mathematica не только CAS, но и мощный язык программирования . Этот язык программирования реализован на основе объектно ориентированного варианта языка С, расширяемого при помощи так называемых библиотек кода. Эти библиотеки представляют собой текстовые файлы , написанные на языке Mathematica.

Архитектура Mathematica представлена ядром и пользовательским интерфейсом. Ядро программы отвечает за интерпретацию программ, написанных на языке Mathematica, и непосредственно занимается вычислениями. Пользовательские интерфейсы предназначены для выводов результатов в форме, понятной пользователю. По мнению компании-разработчика, большая часть пользователей Mathematica — это технические профессионалы. Также Mathematica широко используется в образовании. Сейчас несколько тысяч курсов на основе этого продукта читаются во многих учебных заведениях, начиная от средней школы и заканчивая аспирантурой. Mathematica используется в самых крупных университетах по всему миру и в группе компаний Fortune 500, а также во всех 15 основных министерствах правительства США.

MathCad — это CAS очень похожая на Mathematica. Распространяется компанией Mathsoft. MathCad ориентирован на поддержку концепций рабочего листа. Уравнения и выражения отображаются на рабочем листе так, как они выглядели бы на какой-нибудь презентации, а не так, как выглядят на языке программирования. Некоторые задачи, которые выполняет программа : решение дифференциальных уравнений, графики на плоскости и в пространстве, символьное исчисление, операции с векторами и матрицами, символьное решение систем уравнений, подбор графиков, набор статистических функций и вероятностных распределений. По мнению разработчиков MathCad, главный конкурент этого пакета — электронные таблицы.

Многие пользователи используют электронные таблицы или языки программирования для выполнения вычислений. Но ни те, ни другие не справляются с задачей, когда дело доходит до обработки полученных данных. Электронные таблицы разработаны для бухгалтерских, а не для инженерных расчётов! Для последних они не слишком удобны: уравнения спрятаны в ячейках, сложно вставить комментарии. Это делает работу довольно затруднительной, а устранять ошибки и разбираться в чьих-то вычислениях вообще сложно. Электронные таблицы трудны для понимания и повторного использования другими пользователями.

Yacas — это Open Source CAS общего назначения. Базируется на собственном языке программирования, главной целью при разработке этого языка была простота реализации новых алгоритмов. Этот язык очень похож на LISP, поддерживает ввод и вывод в обычном текстовом режиме как интерактивно, так и в режиме пакетного выражения.

Maxima является потомком DOE Macsyma, которая начала своё существование в конце 1960 года в MIT. Macsyma первая создала систему компьютерной алгебры, она проложила путь для таких программ как Maple и Mathematica. Главный вариант Maxima разрабатывался Вильямом Шелтером с 1982 по 2001 год. В 1998 году он получил разрешение на реализацию открытого кода на GPL . Благодаря его умению Maxima сумела выжить и сохранить свой оригинальный код в рабочем состоянии. Вскоре Вильям передал Maxima группе пользователей и разработчиков, которые сохранили её в рабочем состоянии. На сегодняшний день пакет достаточно активно развивается, и во многих отношениях не уступает таким развитым системам компьютерной математики, как Maple или Mathematica.

REDMOND

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *