Чтение онлайн

ЖАНРЫ

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

name::type

где name — имя (идентификатор) переменной, type — тип переменной, например, целочисленный (integer), вещественный с плавающей точкой (float), с неотрицательным значением (nonneg), комплексный (complex) и т.д.

2.6.2. Назначение переменным имен

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

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

Имена переменных могут содержать одну букву (например, х, Y или Z), либо ряд букв (Xmin или Xmax). В любом случае имя переменной надо начинать с буквы. Некоторые символы, например знак _ могут использоваться в именах (например, Var_1, Var_2). Нельзя, однако, вводить в имена переменных знаки, обозначающие операторы — например, а/b или а-b будет истолковано как деление а на b или вычитание из переменной а переменной b.

Имена могут задаваться в обратных апострофах. При этом они просто тождественны именам без апострофов:

> var1:=123;var2:= `Hello`;

var1 := 123
var2 := Hello

> `var1`;`var2`;

123
Hello

Строчные и прописные буквы в идентификаторах различаются, так что Var1 и var1 — это разные переменные.

Для проверки предполагаемого имени на уникальность достаточно выполнить команду ?name, где name — выбранное имя. Если при этом откроется окно справки с этим именем, значит, оно уже использовано в Maple. Лучше воздержаться от его применения, так как связанная с этим именем команда или функция перестает работать, как только это имя закрепляется за какой-либо переменной.

2.6.3. Присваивание переменным значений

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

Для присваивания переменным конкретных значений используется комбинированный символ присваивания «:=», например:

n:=1 — переменной n присваивается целочисленное значение 1;

х:=123.456 — переменной х присваивается вещественное значение 123.456;

у:=17/19 — переменной у присваивается рациональное значение 17/18;

name:=`Piter` — переменной name присваивается строковое значение `Piter`;

expr:=2*Pi/3 — переменной expr присваивается значение выражения 2л??!!/3;

V:=[1,2,3] — переменной V присваивается значение списка чисел [1,2,3];

М:=[[1,2,3],[4,5,6]] — переменной М присваивается значение двумерного массива;

f:=x->x^2 — переменной f присваивается значение функции пользователя f(x)=x^2.

Правая часть выражения присваивания определяет тип переменной. Например, она может быть целочисленной, действительной, строковой,

индексированной (элемент массива) и т.д.

2.6.4. Отмена операции присваивания и команда restart

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

> х:=10;

х:= 10

> х;

10

> int(х^2,x);

Error, (in int) wrong number (or type) of arguments

Здесь не удалось вычислить интеграл с подынтегральной функцией х^2 из-за того, что переменная х уже определена ранее как целочисленная переменная со значением 10, тогда как для вычисления интеграла она должна быть необъявленной или строковой (убедитесь в этом сами).

Для отмены присваивания надо использовать следующее выражение:

> х: =`х`;

х: = х

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

> int(х^2,х);

⅓x³

Можно сделать переменную х неопределенной и с помощью выражения вида x:=evaln(x). Это поясняет следующий пример:

> х:=123;

x:= 123

> x:=evaln(x);

х:=х

> int(х^n,х);

Для отмены присваивания значений разом всем переменным (и введенным функциям пользователя) можно использовать команду restart. Следующий пример поясняет ее применение:

> х:=5;

x: = 5

> х^2;

25

> restart;

> х;

x

> х^2;

х²

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

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

Поделиться с друзьями: