Имена переменных
Имена переменных можно задавать так, как хочется, но при этом следует учитывать несколько ограничений. Например, в языках C и Fortran нельзя назвать переменную «sin», так как это слово зарезервировано за функцией. То же касается и остальных зарезервированных слов, список которых известен в каждом языке. То же ограничение действует в Maple. В нем около 3000 команд с резервированными именами, при выборе которых Maple подсказывает пользователю неправильность выбора.
Кроме того, существуют вредные привычки, возникающие от свободы выбора, чему не надо следовать. Например, в коде на обычном языке программирования закон Ньютона выглядит так:
- Newtons_Gravitational_Constant*Mass_1*Mass_2/
Distance_Between_The_Masses^2
Вот аналогичная запись в группе Maple:
- Newtons_Gravitational_Constant*Mass_1*Mass_2/ Distance_Between_The_Masses^2;
Это громоздко и неудобно при наборе текста, чего, конечно, надо избежать, применив простую конструкцию Maple:
- G*m1*m2/r12^2;
Метод обозначения переменных, использующий подчеркивание и заглавные буквы, следует применять экономно. Лучше обозначать переменные знаками, соответствующими их обозначениям в физических формулах, желательно кратко, например, a, m, F, c, q, L, h, и т. п.
Кроме английского алфавита, Maple может использовать греческий.
Пример
- alpha*beta/delta;
Доступны также заглавные буквы греческого алфавита:
- Alpha*A;Beta+B;Chi/Gamma;
Некоторые буквы получаются так:
- CHI;
Можно получать формулы в «книжном» виде. Чтобы не вспоминать написание букв, пользуйтесь палитрой слева.
Несколько букв недоступны, потому что они используются системой:
- gamma:=4;Chi:=3;
Конечно, для них можно применить unassign и использовать в расчетах, но делать это не рекомендуется.
Также не рекомендуется ставить нижние индексы для переменных, даже если это разрешено Maple. Например, запись Maple для работы с переменными x1 и x2:
- x[1]:=1;x[2]:=2;
Смотрится хорошо, но что произойдет, если задать для x значение, а затем посмотреть, что находится в x1:
- x:=3;
- x[1];
Теперь понятно, что для работы с переменной x1 ее лучше назвать x1.
Maple позволяет ставить специальные знаки в имена переменных, но тогда придется использовать специальный синтаксис. Например, надо определить выражение f, а затем присвоить его производную переменной с именем f':
- f:=exp(y)*cos(y);
- `f'`:=diff(f,y);
Апострофы, в которые взята f', говорят Maple, что в имени переменной используется особый символ ( ') и Maple должен принять это без возражений.
В обычных языках программирования, вроде Fortran, C, а также в MatLab переменные представляют ограниченное число разных типов данных: числа (целые, числа с плавающей запятой, комплексные), знаки, строки... Но в Maple переменная может описывать более 100 различных типов данных. Это сильно осложняет жизнь. Например, в Fortran или MatLab оператор a=5 означает, что переменной присвоено значение 5. Но в Maple оператор
- a=5;
вообще не имеет отношения к присваиванию. Кроме того, уравнение a=5 выглядит глупо. Maple может решить его и найти, что a – это 5, но это выражение не присваивает значение 5 переменной a. То есть нужен оператор присваивания :=:
- a:=5;
Различие в способах записи станет ещё понятнее, если учесть, что в Maple имеет смысл выражение:
- Eq:=b=5;
что означает: переменная Eq содержит уравнение b=5.
Еще один пример:
- Eq2:= x^2 + y^2 = R^2;
Результат странен: откуда взялось 9? Все зависит от предыстории того, что записывалось ранее. Самый быстрый способ исправить ситуацию (пока, конечно, не обращая внимания на результаты расчетов) – применить команду restart:
- restart;
Теперь поставим курсор на красное выражение для Eq2, щелкнем и получим правильное исполнение. Важно отметить, что так получится, даже если команда restart находилась ниже Eq2:=... . Этим Maple отличается от C или MatLab. Ниже приведена часть списка возможных типов данных. Для полного обзора возможностей примените >?type и в открывшемся окне прокрутите ответ вниз по большому списку возможных типов переменных (и всякого другого). Например, чтобы узнать тип переменной a, примените команду whattype(a):
- whattype(a);
Для проверки типа уравнения Eq2 надо написать:
- whattype(Eq2);
