Ошибки в записи выражений, описывающих те или иные алгоритмы вычислений, не нарушающие синтаксическую корректность, системой Maple не распознаются. Контроль за такими ошибками целиком лежит на пользователе. Приведем еще один характерный пример ошибки, которую Maple не может распознать. Вводя выражение X/Y*Z, мы можем предположить, что это означает X/(Y*Z). Однако в Maple приоритет операций деления и умножения одинаков. Поэтому Maple вначале делит X на Y, а затем полученный результат умножает на Z:
> X/Y*Z:
> %;
Ошибки такого рода называют
Используйте блокировку вычислений с помощью знака двоеточия только в том случае, когда вы абсолютно уверены в правильности записи выражения — например, когда она очевидна и без повторения в строке вывода. Иначе вы можете не заметить вкравшейся в вычисления серьезной ошибки. В нашем примере мы получили бы верный результат, заключив выражение Y*X в круглые скобки. Как обычно, они предназначены для задания явного приоритета выполнения операций — в нашем случае вначале будет вычислено выражение в скобках (Y*Z), а затем уже X будет поделено на это выражение:
> X/(Y*Z);
Но вернемся к ситуации с
> son(1.0);
В этом примере вместо имени функции sin введено ошибочное имя son. Maple воспринимает его как некую, введенную пользователем, функциональную зависимость, и потому просто повторяет запись и не выводит сообщение об ошибке. А вот другая ситуация — имя функции sin введено верно, но вместо десятичной точки при задании вещественного числа 1.0 использована запятая:
> sin(1,0);
Error, (in sin) expecting 1 argument, got 2
В данном случае Maple «знает», что работа идет с его встроенной функцией синуса, которая должна иметь единственный аргумент. Задание (1,0) означает, что пользователь ввел вместо вещественного числа два целочисленных числа, разделенных запятой. На это Maple отреагировал выдачей сообщения об ошибке (на экране дисплея оно имеет малиновый цвет). Исправьте ошибку, и синус единицы будет благополучно вычислен:
> sin(1.0);
А вот еще одна типичная ситуация — в последовательности выражений опущен знак-разделитель (двоеточие или точка с запятой):
> X:=2: Y:=3| Z:=4:
Error, missing operator or ';'
Тут Maple не только реагирует на ошибку, но и пытается подсказать, что именно пропущено. Более того, маркер ввода в виде мигающей вертикальной черточки будет помешен на место ошибки, и вы сможете тут же устранить ошибку. Правда, подсказки не всегда точны — в нашем случае явно пропущен разделитель в виде двоеточия, a Maple сообщает о пропуске точки с запятой. Впрочем, откуда системе знать, хотим мы вывести результат операции Y:=4 сразу (для этого нужен разделитель в виде точки с запятой) или откладываем на потом (с помощью символа двоеточия).
Вот еще один пример характерной ошибки — три знака * подряд:
> 2**|*3*sin(1.);
Error, `*` unexpected
Здесь Maple подсказывает, что один оператор * надо убрать — два знака * подряд означают вполне законный вариант оператора — возведение в степень. При этом маркер ввода вновь указывает место ошибки. Проанализируйте следующие простые примеры:
> 2**3*sin(1.);
> 2^3*sin(1.0);
> 2^(3*sin(1.0));
В двух первых примерах Maple вначале вычисляет функцию синуса, затем производит возведение в степень и лишь потом операцию умножения. Впрочем, такой
1.11.5. Применение контекстного меню правой клавиши мыши
Достаточно опытному пользователю системой Maple большим подспорьем в эффективной работе с системой является
Удобство контекстного меню заключается в том, что оно всегда содержит только те команды, которые относятся к выбранному объекту. Контекстных меню в Maple великое множество и на копиях экрана примеров время от время будут приводиться разные варианты этого меню. Например, на рис. 1.19 показано контекстное меню двумерного графика с открытой позицией Style, позволяющей выбрать различный стиль линий графика. Позиция контекстного меню Export As открывает список графических форматов файлов, в которых может быть сохранен рисунок, представленный в графическом окне.
Если установить указатель мыши на входной ячейке, то это меню будет содержать три важные команды:
Standard Math — включает и выключает показ входных выражений в естественной математической форме;
Maple Input — управляет видом ячейки ввода (математический/текстовый);
Execute — включает выполнение ячейки.
Также, в зависимости от состояния буфера обмена и наличия выделения, в контекстном меню могут присутствовать команды Cut, Сору и Paste.
Левая кнопка мыши может использоваться для передачи фокуса или переноса маркера ввода, а также выделения частей документа.
1.11.6. Примеры задания функции пользователя и построения ее графика
На рис. 1.20 показан ряд простых вычислений. Среди них задание