Основы Maple

 

Версия для печати

Основные конструкции языка

Операции

Арифметические операции: +,, *, /, ?, mod.

Логические операции: and, or, xor, implies, not.

Операции отношения: <, <=, >, >=, =, <>.

Имена

Имя переменной, var – это комбинация букв, знаков, символа подчеркивания ( _ ), начинающаяся с буквы, например, put1_toy2oy.

Сокращения длинных функций Maple или иных выражений: alias, например, alias(B=Bulkins); diff(B(m),m).

Для отмены сокращения примените alias(B=B).

Maple различает заглавные и строчные буквы, например, evalf(Pi) и evalf(pi).

Резервированные слова, символы, имена, функции нельзя использовать как имена переменных, т.е. как имена операторов, глобальные имена, начинающиеся с ( _ ) (см. ?reserved, ?ininames, ?inifncs, ?names).

Операторы

Операторы присваивания/расприсваивания (assignment/unassignment): переменная может быть либо «свободна» (без присвоения ей значения), либо с помощью оператора присваивания ей может быть присвоено какое-либо значение (символьное, численное) (например, a:=b). Важно помнить о различии операторов := и =, см. ниже, а также примеры. Для расприсваивания (очистки ранее присвоенного) применяются операторы: x:='x', evaln(x) или unassign('x') (см. ?:= и ?').

Различие операторов := и =

(еще об этом – см. раздел Отладка)

Оператор var:=expr применяется, чтобы присвоить переменной var выражение expr.

Оператор A=B обозначает равенство правой и левой частей, а не присвоение (см. ?rhs), например:

  • Equation:=A=B;
  • Equation;
  • rhs(Equation);
  • lhs(Equation);

Оператор диапазона (..) – выражение типа диапазон: exprl..expr2, например:

  • a[i] $ i=1..9;
  • plot(sin(x),x=-Pi..Pi);

Команды

Команды (Statements), stats: – это вводимые с клавиатуры инструкции, которые Maple должен выполнить (например, break, by, do, end, for, function, if, proc, restart, return, save, while, not и т.д.).

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

Разделители команд

Точка с запятой (;) – разрешена выдача результата выполнения команды на рабочий лист.

Двоеточие (:) – без выдачи на рабочий лист.

Типы данных

Булевское выражение, bexpr образовано логическими операторами и операциями отношения.

Уравнение, eq представляется бинарным оператором (=) и имеет два операнда: левую часть lhs и правую часть rhs.

Неравенства, ineq представляются операторами отношения и имеют два операнда: левую часть lhs и правую часть rhs.

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

  • x:="string";
  • sqrt(x);

Имена и строки можно использовать с функциями convert и printf.

Неправильный отклик системы

Если отклик на ваши действия отсутствует или он неправилен, то вы ошиблись при вводе функции, команды и т.п. Подробнее – см. раздел Отладка. Для прерывания расчетов используйте кнопку остановки (красная ладонь).

Типы скобок

Круглые (expr) – для группировки выражений: (x+9)*3, а также для определения аргументов функций: sin(x).

Квадратные скобки [expr] – для построения списков (lists): [a,b,c], векторов, матриц, массивов.

Фигурные скобки {expr} – для конструирования множеств (sets): {a,b,c}.

Символы
Типы апострофов

Прямые 'expr' применяются, чтобы отложить расчет выражения: 'x+9+1', а также для очистки переменных: x:='x'.

Обратные `expr` применяются для формирования символа или имени.

  • `the name:=7`;
  • k:=5;
  • print(`the value of k is`, k);

Два апострофа ставятся для создания строк (например, "expr").

Один " – для разграничения строк.

Предыдущие результаты

(в текущей сессии)

На них можно сослаться с помощью символов:

  • % (последний результат),
  • %% (предпоследний результат),
  • %%...%, k раз, ( k-ый предыдущий).
  • a+b; %∧2; %%∧2;
Комментарии

Вставляются после знака # до конца строки. Текст также можно вставить, воспользовавшись Insert→Text. Подробнее – см. далее в учебнике.

Исходный код Maple

Доступен для большинства функций пакета.

  • interface(verboseproc=2);
  • print(factor);
  • print(`plots/arrow`);