Как пользоваться maple 2017

Корпорация "Центр"

Maple

Maple — профессиональное математическое ПО с мощнейшим движком для выполнения самых сложных задач.

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

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

Maple поддерживает большое количество форматов и импортирует данные, созданные в других программах, в том числе и в Microsoft Office. Еще одна полезна функция — сканирование и распознавание, в том числе и рукописного текста, формул, графиков. Есть инструменты проверки правильности решения различных математических задач. Также предусмотрено логическое моделирование и проверка гипотез.

Основные объекты и команды Maple

Основные объекты (определение, ввод, действия с ними). Внутренняя структура объектов Maple. Подстановка и преобразование типов

Основные объекты (определение, ввод, действия с ними)

Maple V работает с числами следующего типа:

целыми десятичными (О, 1, 123, -456 и т.д.),

рациональными в виде отношения целых чисел (7/9, —123/127 и т.д.),

вещественными с мантиссой и порядком (1.23E5, 123.456E-10)

Целые числазадаются в виде последовательности цифр от 0 до 9.

Maple может работать с целыми числами произвольной величины, количество цифр практически ограничено числом 2 28 . Большие числа, которые не помещаются на одной строке области вывода, Maple переносит на следующую строку, используя символ обратного слэша (\).

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

Получить список всех команд для работы с целыми числами можно, набрав команду: ?integer. Приведем некоторые из этих команд:

разложение на простые множители

вычисление частного при операции целого деления

вычисление остатка при операции целого деления

нахождение наибольшего общего делителя двух целых чисел

проверка, является ли целое число простым

Обыкновенные дробизадаются с помощью операции деления лвух целых чисел.

Заметим, что Maple автоматически произвадит сокращение дробей. Над обыкновенными дробями можно выполнять все основные арифметические операции. Если при задании дроби ее знаменатель сокращается, то такая "дробь" трактуется программой Maple как целое число. Для преобразования обыкновенной дроби в десятичную служит команда evalf( ). Второй параметр этой команды задает число значащих цифр. Заметим, что десятичное представление всего лишь аппроксимация точной величины, представленной обыкновенной дробью, т.е. дробь и ее десятичное представление не являются идентичными объектами Maple.

Радикалы задаются как результат возведения в дробную степень целых или дробных чисел, или вычисления из них же квадратного корня функцией sqrt( ), или корня n-ой степени функцией surd(число, n).

В Maple возведение в степень задается символом (^) или последовательностью двух звездочек (**). При задании радикалов также производятся всевозможные упрощения, связанные с вынесением из-под знака радикала максимально возможной величины. Вычисления с целыми, дробями и радикалами являются абсолютно точными, так как при работе с этими объектами Maple не производит никаких округлений в отличие от чисел с плавающей точкой.

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

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

Комплексные числа. Для мнимой единицы в Maple используется констаната I. Задание комплексного числа ничем не отличается от его обычного задания в математике ( например 2+3*I или d+k*I).

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

Некоторые команды для работы с комплексными числами:

выделение действительной части комплексного числа

выделение мнимой части комплексного числа

вычисление аргумента комплексного числа

построение комплексно-сопряженного числа

Maple содержит целый ряд предопределенных именованных констант — таких, к значениям котрых можно обращаться по имени. Часть этих констант не может быть изменена. К ним относятся:

-логическое значение "не истинно";

-константа Эйлера (0.5772156649..);

-логическое значение "истинно";

-константа Каталана (0.915965594..);

-специальная константа, используется в качестве третьего значения при вычислении функций трехзначной логики;

Число е задается как exp(1).

Константы, значения которых могут быть переопределены:

-задает число значащих цифр для чисел с плавающей точкой (по умолчанию 10);

-определяе количество членов в разложении функции в ряд Тейлора (по умолчанию 6);

Посмотреть все константы, определенные в Maple, можно, исполнив команду: ?ininame

Кроме перечисленных на странице Cправки констант все прерменные, имена которых начинаются с _Env , по умолчанию являются системными константами Maple.

Строки— любой набор символов, заключенный в ДВОЙНЫЕ кавычки. Длина строки в Maple практически не ограничена и может достигать на 32-битных компьютерах длины 268 435 439 символов.

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

Соединение строк можно осуществить и с помощью операции конкатенации ||, или обращением к функции cat(строка 1, строка 2). Строка представляется как одномерный массив, поэтому можно использовать индекс (или диапазон) для выделения элемента (или подстроки) из заданной строки.

Переменные, неизвестные и выражения

Каждая переменная Maple имеет имя, представляющее последовательность латинских символов, начинающихся с буквы, причем строчные и прописные буквы считаются различными. Кроме букв в именах переменных могут использоватьсчя цифры и знак подчеркивания, но ПЕРВЫМ символом имени должна быть БУКВА.

В качестве имен запрещено использовать зарезервированные слова языка Maple, а также защищенные слова (справку по ним можно получить, выполнив команду ?protect).

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

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

Если в выражении используется переменная, которой не присвоено никакого числового значения, то такая переменная рассматривается системой Maple как

неизвестная величина, а выражение, содержащее неизвестные, называется символьным выражением. Именно для работы с такими выражениями прежде всего и разрабатывался Maple.

Важной операцией в Maple, связанной с выражениями, является операция присваивания (:=). Она имеет следующий синтаксис: переменная := выражение; Здесь в левой части задается имя переменной, а в правой — любое выражение, которое может быть числовым, символьным или просто другой переменной.

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

Внутренняя структура объектов Maple

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

Команды, позволяющие выделять части объектов:

Выделение правой части уравнения (или конца диапазона)

Выделение левой части уравнения (или начала диапазона)

Выделение числителя числовой или алгебраической дроби

Выделение знаменателя числовой или алгебраической дроби

Определяет количество операндов в выражении

op(выр) op(n,выр)

Выдает операнды выражения в виде списка, Извлекает n-ый операнд выражения

select(б ф, выр)

Выделяет в выражении операнды, для которых булева функция дает значение true

remove(б ф, выр)

Выделяет в выражении операнды, для которых булева функция дает значение false

indets(выр, тип)

Выделяет в выражении подвыражения заданного типа(‘*’, ‘+’ . )

Познакомимся с этими командами более подробно.

Уравнение представляется в виде двух выражений, соединенных знаком равенства. Его не следует путать с операцией присваивания (:=). Уравнение является объектом Maple и служит для задания действительных уравнений. Его можно использовать в правой части операции присваивания, именуя тем самым уравнение.

Команды lhs( ) и rhs( ) позволяют выделить левую и правую части уравнений (или, применительно к диапазонам, их начало и конец).

Команды numer( ) и denom( ) выделяют, соответственно, числитель и знаменатель дроби, причем перед выделением этих частей дробей Maple осуществляет их упрощение, приводя к нормальной форме.

Команда nops( ) определяет количество операндов в выражении, а команда op( ) выдает их в виде последовательности выражений. Эта же команда позволяет извлечь конкретный операнд вырадения, указав в качестве первого параметра его порядковый номер. Отметим, что операндами списка или множества являются его элементы.

Команды select( ) и remove( ) были ранее рассмотрены в разделе . Для работы этих команд необходимо в качестве первого параметра указать булеву функцию, результатом работы которой будет ответ true или false. Maple предлагает большое количество булевых функций, которые можно использовать в командах select( ) и remove( ) для работы со структурой выражений.

Команда has( выражение, подвыражение) определяет, содержится ли некоторое подвыражение в заданной выражении. Команда has( ) понимает только те подвыражения, которые могут быть определены с помощью команды op( ). Для выделения в выражении членов, содержащих некоторую функцию в команде has( ) следует задавать лишь ИМЯ этой функции (без аргументов).

В функции has( ) можно задать несколько подвыражений в виде списка. Ее результатом будет ИСТИНА тогда и только тогда, когда найдено хотя бы одно из подвыражений в списке.

Еще одна булева функция hastype( выражение, тип) определяет, содержит ли выражение подвыражения заданного типа. Если из выражения необходимо выделить не операнды, содержащие подвыражения заданного типа, а сами подвыражения, то следует использовать функцию indets( выражение, тип). Эта функция возвращает в виде множества все подвыражения указанного типа.

Подстановка и преобразование типов

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

subs(подстановка, ВЫРАЖЕНИЕ)

Синтаксическая подстановка одного выражения вместо другого в ВЫРАЖЕНИЕ

algsubs(подстановка, ВЫРАЖЕНИЕ)

Алгебраическая подстановка одного выражения вместо другого в ВЫРАЖЕНИЕ

subsop(N=новое значение, ВЫРАЖЕНИЕ)

Подстановка нового значения вместо N-го операнда ВЫРАЖЕНИЯ

convert(ВЫРАЖЕНИЕ, тип)

Преобразует ВЫРАЖЕНИЕ в новый тип данных

whattype(ВЫРАЖЕНИЕ)

Определяет тип выражения.

Для подстановки вместо некоторой переменной (выражения) другого выражения служит команда subs( ), синтаксис которой имеет следующий вид: subs(старое выражение=новое выражение, ВЫРАЖЕНИЕ) subs(s1, s2, .. sn, ВЫРАЖЕНИЕ ) subs([s1, s2, .. sn], ВЫРАЖЕНИЕ ) где каждое из s1. sn является уравнением, определяющим подстановку.

Первая форма команды анализирует ВЫРАЖЕНИЕ , определяет в нем все вхождения старое выражение и подставляет вместо них новое выражение.

Вторая форма команды позволяет выполнить серию подстановок в ВЫРАЖЕНИЕ , причем подстановки выполняются последовательно, начиная с s1. Это означает, что после выполнения первой подстановки, определенной s1, Maple отыскивает вхождения левой части уравнения s2 во вновь полученном выражении и заменяет каждое такое вхождение на выражение, заданное в правой части уравнения s2.

Третья форма команды содержит подстановки в виде множества или списка. Эти подстановки выполняются ОДНОВРЕМЕННО, а не последовательно, как в предыдущем варианте команды.

То есть вхождения выражений, заданных в левых частях уравнений s1, s2, определяются в исходном параметре ВЫРАЖЕНИЕ . (см. примеры)

Команда subs( ) осуществляет так называемую "синтаксическую подстановку", т.е. замена в ВЫРАЖЕНИИ происходит только тогда, когда левая часть уравнения подстановки совпадает с одним из операндов в структурном представлении ВЫРАЖЕНИЯ . В примере слева команда subs( ) не подставила в выражение s 3 вместо s 2 выражение 1-с 2 . Для осуществления подстановки можно воспользоваться несколькими способами:

Явно выразить старую переменную через новые и воспользоваться функцией subs( ).

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

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

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

Если известно, какой операнд выражения необходимо заменить, то следует использовать команду subsop( ) со следующим синтаксисом:

subsop(s1, s2, .. sn, ВЫРАЖЕНИЕ ) где s1, s2, .. sn представляют собой уравнения вида N_i=замена_i, в которых N_i — номер операнда в ВЫРАЖЕНИИ . На месте N_i может стоять список, в котором целые числа представляют порядковые номера операндов ПОСЛЕДУЮЩИХ уровней в структуре выражения (0 используется для имени функции).

Прямоугольник 54

Преобразовать выражение в другой тип можно командой convert( ВЫРАЖЕНИЕ, новый тип ). Преобразование типов в Maple имеет некоторые ограничения, т.е. нельзя преобразовать выражеие произвольного типа в выпажение другого типа, который поддерживается системой аналитических вычислений. Все допустимые преобразования типов можно посмотреть в справке по команде convert( ).

Первое знакомство с системой Maple 7

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

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

Для наших читателей (в том числе и для математиков-профессионалов) возможности систем символьной математики, реализованных на массовых ПК класса IBM PC, порой являются полной неожиданностью и вызывают вполне заслуженное удивление и восхищение, но иногда и резкое отрицание. Впрочем, последнее характерно скорее для тех, кто с системой Maple просто не работал и относится к ней, как дама из анекдота о паровозе — увидев паровоз впервые, она воскликнула: «Не может быть, что он едет без лошадей!» Maple — тщательно и всесторонне продуманная система компьютерной математики. Она с равным успехом может использоваться как для простых, так и для самых сложных вычислений и выкладок. Заслуженной популярностью системы Maple (всех версий) пользуются в университетах — свыше 300 самых крупных университетов мира (включая и наш МГУ) взяли эту систему на вооружение. А число только зарегистрированных пользователей системы уже давно превысило один миллион. Ядро системы Maple используется в ряде других математических систем, например в MATLAB и Mathcad, для реализации в них символьных вычислений.

Добавьте к этому куда большее число незарегистрированных пользователей — ведь система записана на многих компакт-дисках, лихо продаваемых в России по вполне доступным ценам. Если учесть все это, то оказывается, что популярность системы Maple ничуть не ниже, а то и выше, чем у гораздо более простых систем, таких как Derive и Mathcad. Вот и решайте, какая из систем и впрямь рассчитана на всех!

Maple — типичная интегрированная система. Она объединяет в себе:

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

Ко всем этим средствам имеется полный доступ прямо из программы. Maple — одна из самых мощных и «разумных» интегрированных систем символьной математики, созданная фирмой Waterloo Maple, Inc. (Канада).

Во многих обзорах систем компьютерной алгебры Maple справедливо считается одним из первых кандидатов на роль лидера среди них. Это лидерство она завоевывает в честной конкурентной борьбе с другой замечательной математической системой — Mathematica 4.1. Каждая из данных двух систем имеет свои особенности, но в целом эти две лидирующие системы практически равноценны. Однако надо отметить, что появление новейшей версии Maple 7 означает очередной виток в соревновании этих систем за место лидера мирового рынка. Причем виток на этот раз раньше сделала система Maple 7.

Система Maple прошла долгий путь развития и апробации. Она реализована на больших ЭВМ, рабочих станциях Sun, ПК, работающих с операционной системой Unix, ПК класса IBM PC, Macintosh и др. Все это самым положительным образом повлияло на ее отработку и надежность (в смысле высокой вероятности правильности решений и отсутствия сбоев в работе). Не случайно ядро системы Maple V используется целым рядом других мощных систем компьютерной математики, например системами класса Mathcad и MATLAB. А совсем недавно упрощенная версия Maple для операционной системы Windows СЕ стала использоваться в миниатюрных компьютерах фирмы Casio — Cassiopeia.

Версии систем класса Maple

Известен ряд версий системы Maple, называемых реализациями. Одной из самых известных реализаций является реализация Maple V R5. В ней появилась возможность работы с электронными таблицами, несколько улучшен интерфейс пользователя (введены палитры для ввода математических символов и расширены возможности управления мышью), стала возможной запись файлов в формате HTML и введена возможность обмена объектами между документами методом перетаскивания (Drag and Drop).

Основное достоинство предшествующей версии Maple 6 — это существенное ускорение вычислений с большими матрицами, достигнутое применением алгоритмов матричных вычислений известного пакета NAG (Numbering Algorithms Group). Хотя данная книга посвящена новейшей реализации системы Maple 7, ее основной материал будет полезен и пользователя реализации Maple 6.

Новейшая версия систем Maple — Maple 7 появилась 21 июня 2001 г. Корпорация Waterloo Maple оценивает ее появление как новый виток в борьбе за мировое лидерство в области автоматизации математических вычислений — как численных, так и, в особенности, символьных. Являясь одними из лучших и надежных систем компьютерной математики, Maple 6 и Maple 7 становятся мировым стандартом в области математических вычислений.

Об ошибках в символьных вычислениях

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

У систем компьютерной алгебры нет проблем с обработкой естественного языка — математика полностью формализованная наука. Однако в них много своих условностей и неоднозначностей, которые здесь как бы заранее запрограммированы. К примеру, что считать более простым выражением: tan(x) или sin(x)/cos(x)? Система Derive полагает более простым выражением tan(x) и преобразует к нему выражение sin(x)/cos(x) . А вот система Maple V ничуть не менее справедливо считает, что функции sin(x) и cos(x) математически более простые, чем tan(.r), и вообще — tan(x) , по сути, не самостоятельная функция, a sin(x)/cos(x). Поэтому Maple V везде вместо tm(x) будет выводить sin(x)/cos(x) .

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

По образному выражению автора обзора [40], решение задач в символьном виде напоминает переход через поле, густо напичканное минами. Удивительно не то, что системы символьной математики могут ошибаться и «взрываться», а то, что число этих ошибок мало и уже на нынешнем этапе развития таких систем это не мешает их серьезному практическому применению. Стоит еще раз подчеркнуть, что Maple в этом отношении является одной из лучших систем, реализованных на ПК класса IBM PC и Macintosh с достаточно умеренными техническими характеристиками. Кстати говоря, для ПК Macintosh последней реализацией пока что является Maple V R4.

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

Однако вряд ли следует утрировать вероятность выдачи системами символьной математики ошибочных результатов — даже самые опытные математики-аналитики тоже могут ошибаться в своих вычислениях. В разработке таких систем, как Maple или Mathematica принимают участие крупные математические школы всего мира! Эти системы — кладезь математических понятий, сведений и знаний. Они способны заменить самые серьезные справочники по математическим вычислениям в любой области науки, техники и образования. Кроме того, они имеют множество средств для проверки корректности выполняемых вычислений, например путем подстановки полученных результатов в исходные выражения.

Кстати, одно из самых действенных приемов проверки таких средств — решение задачи одновременно на нескольких системах символьной математики. Не случайно уже сейчас можно заметить тенденцию к объединению математических систем. Эта новая и безусловно прогрессивная тенденция в ближайшее время приведет к созданию автоматизированных рабочих мест математиков и ученых других близких специальностей. Разработки таких рабочих мест (разумеется, компьютер на них — главный инструмент), в том числе с использованием систем Maple, уже появились и о них немного говорится в заключении. В добавление к сказанному надо отметить, что Maple 7 — одна из самых надежных систем компьютерной математики. Надежных прежде всего в смысле высокой достоверности получения правильных результатов при сложных символьных вычислениях. Эта первая система компьютерной математики, успешно прошедшая полное тестирование на задачах повышенной сложности, предлагаемых для оценки качества подобных систем.

Ядро и пакеты Maple 7

Основой для работы с символьными преобразованиями в Maple является ядро системы. Оно содержит сотни базовых функций и алгоритмов символьных преобразований. В новых реализациях объем ядра достигает 6-7 Мбайт. Имеется также основная библиотека операторов, команд и функций. Многие встроенные в нее функции, как и функции ядра, могут использоваться без какого-либо объявления, другие нуждаются в объявлении. Кроме того, имеется ряд подключаемых пакетов (packages ).

Дополнительные функции из пакетов могут применяться после объявления подключения пакета с помощью команды with(name) , где name — имя применяемого пакета. Общее число функций, с учетом встроенных в ядро и размещенных в пакетах в системе Maple V R4 приближается к 2500, в реализации R5 — к 2700, а в Maple бив Maple 7 оно уже превышает 3000. Это означает, что большинство задач может решаться в режиме прямого диалога с системой без использования каких-либо средств программирования.

Языки системы Maple 7

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

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

Имеет Maple и свой язык процедурного программирования — Maple-язык. Этот язык имеет вполне традиционные средства структурирования программ: операторы циклов, операторы условных и безусловных переходов, операторы сравнения, логические операторы, команды управления внешними устройствами, функции пользователя, процедуры и т. д. Он также включает в себя все команды и функции входного языка, ему доступны все специальные операторы и функции. Многие из них являются весьма серьезными программами, например символьное дифференцирование, интегрирование, разложение в ряд Тейлора, построение сложных трехмерных графиков и т. д.

Не следует путать входной язык и язык программирования системы (Maple-язык) с языком ее реализации. Им является один из самых лучших и мощных универсальных языков программирования — Си. На нем написано ядро системы, содержащее тщательно оптимизированные процедуры. Большинство же функций, которые содержатся в пакетах, написаны на Maple-языке, благодаря чему их можно модифицировать и даже писать свои собственные библиотеки. По разным оценкам, лишь от 5 до 10 % средств Maple создано на языке реализации — все остальное написано на Maple-языке. Таким образом, система имеет развитые возможности для расширения и адаптации к задачам пользователя. Для подготовки программ на языке Maple могут использоваться внешние редакторы, но система имеет и свой встроенный редактор, вполне удовлетворяющий требованиям большинства пользователей. Он открывается командами New и Open в меню File . Этот редактор можно использовать для редактирования файлов программ или математических выражений. Версии Maple для MS-DOS имеют свой редактор программ и отладчик с функциями проверки синтаксиса. После версии Maple V для Windows необходимость в этих средствах практически отпала.

Синтаксис структурных операторов языка Maple напоминает смесь Бейсика и Паскаля. Это облегчает знакомство с ним тем, кто имеет хотя бы начальный опыт программирования на этих языках. По близким к Бейсику правилам (и при помощи общепринятых математических сокращений) выполняется и ввод математических выражений в диалоговом режиме работы с системой.

Ориентация систем Maple

Вообще говоря, системы Maple ориентированы на решение сложных задач, хотя и решение в них простых задач вполне возможно и уместно. Возможно, для решения таких задач вполне подойдет весьма простая, быстрая и надежная система Derive или система Mathcad, в которую (начиная с версии 3.0 под Windows) включен приобретенный по лицензии фирмы Waterloo Maple упрощенный символьный процессор Maple. Однако по числу доступных пользователю математических функций эти скромные системы не идут ни в какое сравнение с патриархом символьной математики — системой Maple.

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

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

Возможности предшествующей версии Maple 6

Перечислим основные возможности предшествующей версии системы Maple 6.

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

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

  • дифференцирование функций;
  • численное и аналитическое интегрирование;
  • вычисление пределов функций;
  • разложение функций в ряды;
  • вычисление сумм и произведений;
  • интегральные преобразования Лапласа, Фурье и др.;
  • дискретные Z-преобразования;
  • прямое и обратное быстрое преобразование Фурье;
  • работа с кусочно-заданными функциями.

Работа с уравнениями в численном и символьном виде:

  • решение систем линейных и нелинейных уравнений;
  • решение систем дифференциальных уравнений;
  • символьное вычисление рядов;
  • работа с рекуррентными функциями;
  • решение трансцендентных уравнений;
  • решение систем с неравенствами.

Работа с функциями:

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

Графическая визуализация результатов вычислений:

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

Новые возможности системы Maple 7

Система Maple 7 приобрела ряд новых возможностей. Кратко отметим их:

  • расширенная поддержка численных алгоритмов пакета программ NAG, в том числе при решении численных задач математического анализа (например, вычисление определенных интегралов в Maple 7 ускорено в 20-40 раз в сравнении с Maple 6) и при решении дифференциальных уравнений;
  • новый обучающий курс User’s Tour, встроенный в ее справку;
  • существенно переработанные и обновленные пакеты функций;
  • ускоренные алгоритмы целочисленных вычислений (например, факториал числа 25000 вычисляется более чем на порядок быстрее, чем системой Maple 6);
  • обширный набор новых алгоритмов решения дифференциальных уравнений, обеспечивающий дополнительную эффективность решения задач в области моделирования физических явлений и устройств;
  • выполненное впервые 100% успешное испытание при решении специальных тестовых задач, что является высшим достижением на рынке средств компьютерной математики;
  • усовершенствованные и новые алгоритмы реализации многих численных методов решения задач;
  • новые встроенные пакеты аппроксимации кривых CurveFitting, внешних вычислений ExternalCalling, решения линейных функциональных систем LinearFunctionalSystem, ортогональных рядов OrthogonalSeries, работы с полиномами PolynomialTools, решения уравнений SolveTools и поддержки вычислений с размерными величинами Units;
  • новый пакет для поддержки языка XML;
  • поддержка новейшего стандарта записи математической информации — языка MathML 2.0;
  • улучшение пользовательского интерфейса, в частности введение новой палитры ввода шаблонов векторов;
  • поддержка протокола TCP/IP, обеспечивающего динамический удаленный доступ к данным, например, для финансового анализа в реальном масштабе времени или данных о погоде;
  • дополнительные пакеты (Maple PowerTools™), доступные через Интернет, поддерживающие анализ методом конечных элементов (РЕМ), нелинейную оптимизацию и статистику, а также три новых пакета: вычисления для новичков, теоретическая физика и программирование;
  • возможность работы с курсом университетского математического образования, загружаемого через Интернет.

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

Установка системы Maple 7 на ПК

В этой книге рассматривается реализация системы Maple 7, требующая:

  • процессор — Pentium 150 МГц и выше;
  • оперативная память — не менее 16 Мбайт (рекомендуется 32 Мбайта и выше);
  • место на жестком диске — около 80 Мбайт (120 Мбайт для сетевой версии).
  • бширная библиотека пользователя, поставляемая с предшествующими версиями системы Maple V, с новыми версиями Maple 6 и Maple 7 пока не поставляется, поскольку требует серьезной переработки. Достаточно отметить, что использование в новых версиях системы оператора % для вызова последнего результата (вместо применяемого ранее оператора кавычек) делает неработоспособными большинство программ этой библиотеки. Также в новой версии изменен синтаксис некоторых функций.

Установка системы Maple 7

Установка системы производится обычно с компакт-диска. Обычно компакт-диск с инсталляционной версией Maple 7 стартует автоматически. При этом появляется окно Мастера установки со шкалой выполнения предварительной подготовки, показанное на рис. 1.1.

Рис. 1.1 . Окно Мастера установки Maple 7

Затем Мастер автоматически переходит к окну, в котором просит ввести серийный номер программного продукта, который имеется в документации к системе или указан на конверте с компакт-диском.

Для продолжения установки следует щелкнуть на кнопке Next. Это приводит к появлению следующего окна и т. д. В каждом окне после указания необходимых данных нужно нажать кнопку Next или Yes. Работа с остальными окнами мастера установки описана ниже.

Рис. 1.2. Окно с приглашением к установке системы Maple 7

На рис. 1.3 показано следующее окно Мастера, которое служит для задания папки, в которой будут установлены файлы Maple 7. Вы можете оставить предлагаемую по умолчанию папку, а можете ввести любую другую.

Если папка, заданная по умолчанию в поле Destination Folder вас не устраивает, то вы можете определить другую. Для этого щелкните на кнопке Browser . Появится стандартное окно Choose Folder , показанное на рис. 1.4. В этом окне можно задать желаемую папку, либо явно указав ее имя в поле Path , либо выбрав существующую в дереве Directories .

Система Maple 7 может быть установлена как для индивидуального пользователя, так и для многих пользователей (сетевой вариант). Данный выбор можно осуществить в следующем окне Мастера установки, показанном на рис. 1.5. В этом окне надо задать вариант установки, щелкнув в соответствующем положении переключателя. Здесь же можно уточнить директорию (по умолчанию Users) для хранения файлов пользователей.

Следующий этап установки — определение имени ярлыка, активизацией которого в дальнейшем будет запускаться система. Для этого служит окно Мастера установки, показанное на рис. 1.6. В этом окне можно оставить имя ярлыка Maple 7, предлагаемое по умолчанию, ввести вместо него другое или выбрать имя из списка, представленного в нижней части окна. Разумно согласиться с предложенным Мастером именем.

Рис. 1.3. Окно задания папки для размещения файлов системы Maple 7

Рис. 1.4. Задание имени папки для размещения файлов системы Maple 7

Рис. 1.5. Выбор установки системы Maple 7 для одного пользователя или для многих пользователей

Рис. 1.6. Выбор ярлыка для запуска системы Maple 7

Корпорация "Центр"

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

Рис. 1.7 . Информационное окно и индикатор процесса копирования файлов

В процессе копирования файлов могут быть ситуации, когда встречается файл с таким же именем, что и копируемый. В этом случае Мастер установки сообщит вам об этом с помощью соответствующего сообщения. Чаще всего такая ситуация встречается, если Maple 7 устанавливается поверх прежней версии системы Maple. Если пользователь твердо намерен установить новую версию системы, то рекомендуется предварительно удалить предшествующую версию (с помощью соответствующих программ и средств, разумеется). В противном случае придется решать, какой файл будет занимать место на диске — останется старый или его заменит новый (естественно, рекомендуется установить новый файл).

По завершении копирования файлов появляется окно Мастера с запросом о том, надо ли помещать ярлык запуска системы на рабочий стол, изображенное на рис. 1.8.

Рис. 1.8. Запрос о размещении ярлыка запуска Maple 7 на рабочий стол

Рис. 1.9. Окно Мастера установки с сообщением о ее завершении

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

Установка завершается вывбдом окна Мастера установки, в котором сообщается о ее успешном завершении. Данное окно представлено на рис. 1.9.

В этом окне достаточно нажать кнопку Finish для завершения установки. Maple 7 будет установлена на вашем компьютере и готова к работе.

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

Запуск Maple 7 производится, как обычно, из меню Пуск (рис. 1.10). Найдя строчку Maple 7, необходимо открыть подменю и щелкнуть на команде Maple 7 (рис. 1.10).

Рис. 1.10. Запуск Maple 7 из меню Пуск

Возможен также запуск с помощью ярлыка, помещенного на рабочий стол. В любом случае, вначале на некоторое время появляется красочное окно-заставка, показанное в центре рис. 1.1. После этого появляется рабочее окно системы, изображенное на рис. 1.11.

Рис. 1.11. Окно системы Maple 7

Интерфейс системы Maple 7

Обзор интерфейса Maple 7

Долгое время системы Maple имели довольно архаичный (хотя и неплохой) пользовательский интерфейс, ориентированный на операционную систему MS-DOS. Но затем версия Maple V R3, далее Maple V R4, Maple V R5 и, наконец, Maple 6 и Maple 7 приобрели вполне современный графический пользовательский интерфейс, характерный для приложений операционных систем Windows. Это намного повысило удобство работы с Maple и обеспечило интеграцию со многими другими программными продуктами.

Как у всех приложений под Windows интерфейс Maple 7 имеет ряд характерных элементов, видимых на рис. 1.11 и перечисленных ниже:

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

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

В основе пользовательского интерфейса Maple 7 лежит графический многооконный интерфейс операционной системы Windows. Управление системой Maple 7 возможно с помощью главного меню, панелей инструментов и палитр, а также «горячих» клавиш. Поддерживаются также многие возможности мыши, присущие приложениям под Windows.

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

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

Меню системы Maple 7

Наиболее полные возможности управления предоставляет главное меню системы Maple 7. Оно, как обычно, расположено непосредственно под строкой заголовка. Меню предоставляет доступ к основным операциям и параметрам пользовательского интерфейса системы. Ниже дан перечень меню, доступных при наличии открытого документа:

  • File — работа с файлами и печатью документов;
  • Edit — команды редактирование документа и операции с буфером обмена;
  • View — управление видом пользовательского интерфейса;
  • Insert — операции вставки;
  • Format — операции задания форматов;
  • Spreadsheet — операции задания таблиц;
  • Options — задание параметров;
  • Window — управление окнами;
  • Help — работа со справочной системой.

Главное меню Maple 7 является контекстно-зависимым. Это означает, что его вид может меняться в зависимости от текущего состояния (контекста) системы. Например, если все документы закрыты, то главное меню содержит только три заголовка меню: File, Options и Help. При этом место для окон документов пусто и окрашено в серый цвет. Вид меню также меняется в зависимости от того, какие объекты в документе выделены. Более подробно работу с меню системы Maple 7 мы рассмотрим позже, начиная с урока 3.

Палитры ввода математических символов

Полезно сразу обратить внимание на возможность модификации интерфейса системы Maple 7 с помощью команд меню View. В этом меню (оно показано на рис. 1.11 в открытом состоянии) можно увидеть список палитр Palettes, предназначенных для ввода математических знаков. Установив флажки соответствующих палитр, можно вывести их на экран и переместить в любое место. Все четыре палитры математических символов представлены на рис. 1.11. При этом палитра VECTOR введена в Maple 7 впервые.

Назначение знаков в палитрах очевидно из их названий:

SYMBOL — ввод отдельных символов (греческих букв и некоторых математических знаков);

EXPRESSION — ввод шаблонов математических операторов и операций;

MATRIX — ввод шаблонов матриц разных размеров;

VECTOR — ввод шаблонов векторов разных размеров и типов (векторы-столбцы или векторы-строки).

Следует отметить, что не всегда введенный на палитре символ буквально повторяет представленный на кнопке. Например, вместо символа а может быть введено слово alpha. Так происходит, если установлен действующий по умолчанию Maple-режим представления символов. Палитра ввода векторов введена в Maple 7 впервые, что сделало ввод векторов более удобным.

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

Основы работы с Maple 7 в диалоговом режиме

Начальные навыки работы

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

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

На рис. 1.12 представлен реальный диалог с системой (в виде копии экрана) при решении простейших арифметических задач и построении графика функции sin(x)/x.

Рис. 1.12 . Начало диалога с системой Maple 7

Уже из этого простого примера видны особенности диалога с Maple и синтаксиса ее входного языка, то есть языка, на котором системе задаются вопросы. Диалог идет в стиле: «задал вопрос, получил ответ». Вопросы и ответы занимают отдельные блоки, выделяемые в левой части квадратными скобками. Длина квадратных скобок зависит от размера выражений — исходных (вопроса) и результатов вычислений (ответов на вопросы). Знак > является знаком приглашения к заданию вопроса. Мигающая вертикальная черта | — маркер ввода (курсор).

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

Перемещение маркера ввода осуществляется клавишами перемещения курсора <- и -> Клавиша Backspace стирает символ слева от маркера ввода, а клавиша Del — справа от маркера ввода. Для ввода любого символа надо нажать соответствующую клавишу. Клавиша Shift включает верхний регистр для ввода заглавных (прописных) букв, а клавиша Caps Lock переключает верхний и нижний регистры клавиш с буквами (они меняются местами).

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

Понятие о функциях и операторах

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

Функция в выражениях задается вводом ее имени и списка параметров функции (одного или нескольких), заключенного в круглые скобки, например sqrt(2) задает функцию вычисления квадратного корня с параметром 2 (численной константой). Основным признаком функции является возврат значения в ответ на обращение к ней по имени (идентификатору) с указанием списка параметров функции. Например:

Обратите внимание на особую роль десятичной точки — здесь она служит указанием к выполнению вычисления значения sin( 1.0) (или, что то же самое, sin( 1.)) . А вот синус целочисленного аргумента 1 не вычисляется — считается, что вычисленное значение менее ценно, чем точное значение sin(1) .

В данном случае надо понимать, что Maple предпочитает иметь с дело точными значениями функций. Логично, что точное значение синуса от 1 записывается в виде sin(f). — Прим. ред.

Ради единства терминологии мы будем пользоваться расширительным понятием функции, относя к нему и те объекты, которые в некоторых языках программирования именуют процедурами или командами. Например, слова plot и plot3d мы также будем называть функциями, которые возвращают графики аргументов. Под командами же мы будем подразумевать прежде всего команды, содержащиеся в меню. Помимо функций в математических системах для записи математических выражений используются специальные знаки — операторы. К примеру, вычисление квадратного корня часто записывается с помощью его специального знака — V. Достаточно хорошо известны операторы сложения +, вычитания -, умножения *, деления / и некоторые другие. Операторы обычно используются с операндами в виде констант или переменных, например в записи 2* (3+4) числа 2, 3 и 4 — это операнды, а знаки * и + — операторы. Скобки используются для изменения порядка выполнения операций. Так, без них 2*3+4=10, тогда как 2*(3+4)=14, поскольку вначале вычисляется выражение в скобках. Пожалуй, самым распространенным оператором является оператор присваивания ‘:=. Он используется для задания переменным конкретных значений, например:

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

Другой распространенный оператор — оператор равенства = — используется для задания равенств и логических условий (например, а=b ), указания областей изменения переменных (например, 1=1..5 означает формирование диапазона изменения i от 1 до 5) и определения значений параметров в функциях и командах (например, color=b1ack для задания черного цвета у линий графиков).

Операторы сами по себе результат не возвращают. Но они, наряду с функциями и своими параметрами (операндами), позволяют конструировать математические выражения, которые при их вычислении также возвращают результат. В силу этого математические выражения, содержащие операторы и операнды, могут быть параметрами функций. Выражения в Maple бывают очень простыми (например, имена переменных х и у или константы 1 и 2), а могут содержать многие тысячи знаков. С позиции канонов символьной математики квадратный корень из двух уже является основным результатом вычислений. Поэтому такая функция обычно не вычисляется в численном виде, а выводится в естественном виде с применением знака квадратного корня V. Для вычисления в привычном виде (в виде десятичного числа с мантиссой и порядком) надо воспользоваться функцией evalf(sqrt(2)) — эта функция обеспечивает вычисление символьного выражения, заданного ее параметром (числом 2).

Обработка и индикация ошибок

При работе с системой Maple 7 надо строго придерживаться правил корректного ввода выражений и иных объектов Maple-языка, называемых синтаксисом языка. Однако, как гласит русская пословица, не ошибается только тот, кто ничего не делает. Даже у опытного пользователя возможны ошибки в ходе ввода выражений и задания алгоритмов вычислений.

Алгоритмические, но синтаксически корректные ошибки часто могут не распознаваться системой. Например, если в выражении a*sin(x) вы вместо аргумента х взяли аргумент b, то есть записали a*sin(b), то такую ошибку Maple 7 распознать не может, ибо синтаксически как a*sin(x), так и a*sin(b) абсолютно корректны. Если вы перепутаете синус с косинусом и запишете a*cos(x) , то такая ошибка также не будет распознана.

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

Приведем еще один характерный пример ошибки, которую Maple 7 не может распознать. Вводя выражение X/Y*Z , мы можем предположить, что это означает X/(Y*Z) . Однако в Maple 7 приоритет операций деления и умножения одинаков. Поэтому Maple 7 вначале делит X на Y , а затем полученный результат умножает на Z:

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

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

В нашем примере мы получили бы верный результат, заключив выражение Y*X в круглые скобки. Как обычно, они предназначены для задания явного приоритета выполнения операций — в нашем случае вначале будет вычислено выражение в скобках ( Y*Z) , а затем уже X будет поделено на это выражение:

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

В этом примере вместо имени функции sin введено ошибочное имя son . Maple воспринимает его как некую введенную пользователем функциональную зависимость и потому просто повторяет запись и не выводит сообщение об ошибке. А вот другая ситуация — имя функции sin введено верно, но вместо десятичной точки при задании вещественного числа 1.0 использована запятая:

В данном случае Maple 7 «знает», что работа идет с его встроенной функцией синуса, которая должна иметь единственный аргумент. Задание (1,0) означает, что растяпа-пользователь ввел вместо вещественного числа два целочисленных числа, разделенных запятой. Этого синтаксический анализатор Maple 7 стерпеть уже не смог, и он отреагировал выдачей сообщения об ошибке (на экране дисплея оно имеет малиновый цвет). Исправьте ошибку, и синус единицы будет благополучно вычислен:

А вот еще одна типичная ситуация — в последовательности выражений опущен знак-разделитель (двоеточие или точка с запятой):

Тут Maple 7 не только реагирует на ошибку, но и пытается подсказать, что именно пропущено. Более того, маркер ввода в виде мигающей вертикальной черточки будет помещен на место ошибки и вы сможете тут же устранить ошибку. Правда, подсказки не всегда точны — в нашем случае явно пропущен разделитель в виде двоеточия, a Maple 7 сообщает о пропуске точки с запятой. Впрочем, откуда системе знать, хотим мы вывести результат операции Y:=4 сразу (для этого нужен разделитель в виде точки с запятой) или откладываем на потом (с помощью символа двоеточия).

Вот еще один пример характерной ошибки — три знака * подряд:

Здесь Maple 7 подсказывает, что один оператор * надо убрать — два знака * подряд означают вполне законный вариант оператора — возведение в степень. При этом маркер ввода вновь указывает место ошибки. Проанализируйте следующие простые примеры:

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

Некоторые пользователи версии системы Maple V R5 наблюдали, что русская буква «я» в конце программного комментария (он вводится после символа #) вела к зависанию программы, что требовало ее перезагрузки. В Maple 7 этот недостаток устранен:

> #Буква "я" в конце комментария уже не вызывает зависания

>

Позже, при описании программирования в Maple 7, мы опишем более развитые средства контроля над допускаемыми пользователем ошибками. Пока же ограничимся приведенными ‘Выше сведениями, полезными уже в начале диалога с системой.

Управление с помощью мыши

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

  • Standard Math — включает и выключает показ входных выражений в естественной математической форме;
  • Maple Input — управляет видом ячейки ввода (математический/текстовый);
  • Execute — включает выполнение ячейки.

Также в зависимости от состояния буфера обмена и наличия выделения в контекстном меню могут присутствовать команды Cut, Copy и Paste .

Левая кнопка мыши может использоваться для передачи фокуса управления или переноса маркера ввода, а также выделения частей документа.

Примеры задания функции пользователя и построения ее графика

На рис. 1.12 показано, как задается функция пользователя f(x) с одним параметром х . Нетрудно заметить, что параметр указывается в скобках после имени функции а для записи выражения функции используется знак присваивания := (двоеточие со знаком равенства). Для построения графика функции f (х) используется функция plot в форме:

Нетрудно заметить, что при наличии нескольких параметров функции (в нашем случае их два) они разделяются запятыми. Выражение х=-15. .15 задает, во-первых, указание, относительно какой переменной строится график, а во-вторых, говорит, в какой области значений меняются значения этой переменной — в нашем случае от -15 до +15. Шаг изменения переменной выбирается автоматически в зависимости от размеров и вида графика.

Пример построения трехмерного графика поверхности

Столь же просто, как и график обычной функции в декартовой системе координат, можно построить график трехмерной поверхности. Это показано на примере рис. 1.13. В данном случае задана функция двух переменных z(x,y) :=sin(x*y) и ее график строится с использованием графической функции plot3d. Правила задания пределов изменения переменных х и у соответствуют описанным выше.

Рис. 1.13. Построение графика трехмерной поверхности

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

Управление формой представления документа

Форматы математических выражений

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

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

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

В Maple 7 ввод исходных данных производится привычными для языков программирования средствами — с помощью функций и операторов, задаваемых в командной строке. Зато результаты вычислений получаются по умолчанию в виде обычных формул (хотя есть возможность их представления в другом виде, например принятом в редакторе LaTeX или языках программирования Fortran и С). Тем не менее вид документа с таким специфическим заданием формул может озадачить математика и любого пользователя, не слишком знакомого с основами программирования. В целом он отрицательно сказывается на восприятии документов.

Представление входных выражений в математической форме

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

Об инертных функциях мы поговорим позже более подробно. Отметим лишь, что имена таких функций начинаются с большой буквы и функции выводят математическое выражение в естественной математической нотации. С помощью ряда функций, например evalf , можно вычислить математическое выражение, полученное инертной функцией. На рис. 1.14 внизу дан пример такого вычисления для предела функции sin(x)/x.

Рис. 1.14. Примеры применения инертных функций

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

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

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

Рис. 1.15 . Примеры вычислений интеграла при его задании в текстовой и математической нотации

Простой пример символьных вычислений

Maple 7 открывает обширные возможности выполнения символьных (аналитических) вычислений. Начнем с простого примера — требуется найти сопротивление трех параллельно включенных резисторов R1, R2 и R3 произвольной величины. Из курса электротехники известно, что можно задать следующее равенство, определяющее суммарное сопротивление R0:

Теперь достаточно использовать функцию решения уравнений solve , чтобы найти значение R0 в общей аналитической форме:

Нетрудно проверить, что результат может быть получен и в численном виде для конкретных значений R1, R2 и R3: > Rl:=a.:R2:-2:R3:=3:RO:

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

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

Рис. 1.16. Примеры символьных вычислений

Обратите внимание на результат выполнения последнего примера. Он выделен. Выделение можно осуществить протаскиванием указателя мыши с нажатой левой кнопкой.

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

Рис. 1.17. Примеры вычисления производной и интегралов

Обратите внимание на функцию Int — инертную форму функции int . Как уже отмечалось, инертная форма служит для вывода записи интеграла в естественной математической форме, но с отложенным «на потом» выводом результата вычислений. Как отмечалось, это один из путей наглядного представления входных выражений. Все инертные функции имеют имена, начинающиеся с большой буквы, тогда как обычные функции имеют имена, начинающиеся с маленькой буквы.

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

Рис. 1.18 . Численное вычисление значения интеграла, не имеющего аналитического представления

Разбухание результатов символьных вычислений

Одной из проблем систем компьютерной алгебры является «разбухание» результатов — как оконечных, так и промежуточных. Связано это с тем, что аналитическое представление порою может оказаться весьма громоздким даже для простых задач — пожалуй, это главная причина прохладного отношения к аналитическим вычислениям со стороны инженеров, особенно практиков. К примеру, численное решение кубического уравнения не вызовет трудностей даже на калькуляторе [1], тогда как системы символьной математики выдают его в виде формул, едва помещающихся на экране. Это и иллюстрирует рис. 1.19, на котором показано решение квадратного уравнения (его знает каждый мало-мальски преуспевающий в учебе школьник) и решение кубического уравнения (оно вызывает бурный восторг или легкий шок — в зависимости от отношения учащегося к математике).

Щепетильность системы в ее стремлении выдать полный и математически предельно точный результат, безусловно, очень важна для математиков. Но для многих прикладных задач, с которыми имеют дело инженеры и техники, она оборачивается неудобствами. Инженеры часто прекрасно знают, какие из членов математических формул можно преспокойно отбросить, тогда как для математика-теоретика или аналитика такое действо — типичное кощунство. Порою системы компьютерной алгебры выдают настолько «заумный» и огромный результат, что его упрощение может занять куда больше времени, чем получение более простого результата с заранее выполненными упрощениями. Впрочем, каждому свое! И Maple имеет множество функций, обеспечивающих преобразование результатов в ту или иную форму.

Рис. 1.19. Решение квадратного и кубического уравнений в символьной форме

Пример решения системы линейных уравнений

Приведем еще один характерный пример — решение системы линейных уравнений с помощью функции solve (рис. 1.20). Обратите внимание на форму задания уравнений и выдачи результатов и поразительную естественность решения задачи. Значение переменной z на рис. 1.20 выделено, где видно, что Maple отображает его поле под панелью инструментов.

Слова solve , diff и int с их аргументами являются именами встроенных в систему функций, возвращающих символьные значения результатов. Нормальному пользователю может стать дурно, если вспомнить, что таких функций с их вариантами система Maple 7 имеет около трех тысяч! Да к тому же многие функции (та же solve для решения уравнений) подчас могут применяться во многих случаях и имеют массу параметров и директив для уточнения направлений решения и расширения областей применения.

Рис. 1.20. Решение системы из пяти линейных уравнений

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

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

Необходимые функции и правила их преобразования система черпает в библиотеке размером около 40 Мбайт (она содержит файлы maple.hdb, maple.lib, maple.ind и maple.cmd). Это иногда занимает заметное время, особенно при первом использовании определенной группы операторов (например, тригонометрических). При повторном использовании этой группы система заметно убыстряется, так как использует уже загруженные средства.

Повышение эффективности работы с системой

Работа с панелью инструментов

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

На рис. 1.21 показано назначение кнопок панели инструментов ( Tool Bar ). Эти кнопки дублируют наиболее важные операции главного меню и имеют наглядные и типовые для Windows-приложений обозначения. Назначение кнопок и других деталей интерфейса также показаны на рис. 1.21.

Рис. 1.21. Панель инструментов

При необходимости панели инструментов можно убрать с помощью команд меню View (см. рис. 1.11). Если графика выводится в отдельное окно, там имеется своя панель инструментов, которая будет описана ниже.

Работа с контекстной панелью

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

Контекстная панель содержит следующие элементы при вводе текста комментария (рис. 1.22):

  • списки для задания стиля, шрифта и размера символов, кнопки для придания полужирного (Bold ), наклонного (Italic ) и подчеркнутого ( Underline ) начертания;
  • кнопки для выравнивания текста;
  • кнопку команды исполнения всего документа.

Рис. 1.22 . Контекстная панель инструментов для текста комментария

На рис. 1.15 была показана контекстная панель в случае, когда маркер ввода находится в строке ввода. Там же поясняется назначение кнопок панели для данного случая. Особо остановимся на кнопке со значком (V), которая обеспечивает проверку синтаксиса вводимого выражения до того, как оно завершено символами двоеточия или точки с запятой.

Поясним на примере. Допустим, мы ввели ошибочное выражение для интеграла, забыв указать показатель степени в подынтегральном выражении x^n :

Если нажать кнопку автокоррекции, оно примет вид:

Maple явно указывает на необходимость ввода показателя степени — в нашем случае переменной n.

А вот другой пример — мы забыли ввести закрывающую скобку в выражение:

Если теперь нажать кнопку автокоррекции, то вставка скобки произойдет автоматически:

Таким образом, данная кнопка может быть полезна для оперативного контроля синтаксиса и исправления грубых ошибок при вводе выражений в формате Maple Input. Однако необходимо делать это до их исполнения.

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

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

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

Контекстная панель инструментов для двумерных графиков

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

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

Рис. 1.24. Контекстная панель инструментов для двумерного графика

Действие большинства кнопок этой формы контекстной панели достаточно очевидно, и вы легко сможете опробовать эти кнопки в работе. Так, график на рис. 1.18 построен точками при нажатии кнопки, задающей стиль Point style. Кроме того, в функции plot построения графика явно использована опция co1or=blue , которая задает синий цвет точек графика.

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

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

Контекстная панель инструментов для трехмерных графиков

Свой вид контекстной панели имеют и трехмерные графики. Назначение ее элементов представлено на рис.-1.25.

Рис. 1.25 . Контекстная панель инструментов для трехмерных графиков

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

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

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

Хотя панели инструментов и строка состояния удобны для быстрого управления системой, они обладают одним существенным недостатком — занимают часть полезной площади экрана. Однако в меню View имеются команды, позволяющие убрать с экрана любые из этих элементов. Действие этих команд вы можете заметить, если внимательно присмотритесь к предыдущим рисункам.

Горячие клавиши системы

Для открытия меню можно использовать одновременное нажатие клавиши Alt и клавиши, которая подчеркнута в названии меню. Вызов команды при одновременном нажатии нескольких клавиш получило название «горячих» клавиш управления (Hot Keys ).

Корпорация "Центр"

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

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