Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Инструментальные средства математического моделирования. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
870 Кб
Скачать

1.3. Файловые операции

Рис. 1.3. Меню файловых операций

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

• Exit (Alt+F4) – выйти из Maple.

Контрольные вопросы

1.Состав пакета Maple.

2.Назначение команд меню View.

3.Назначение команд меню Window.

4.Форматы файлов в Maple.

5.Назначение команд меню File.

11

2. Типы данных. Встроенные операторы и функции

2.1. Типы данных

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

Maple-языка.

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

Алфавит Maple-языка содержит 26 малых латинских букв (от а до z), 26 больших латинских букв (от А до Z), 10 арабских цифр (от 0 до 9) и 32 специальных символа (арифметические операторы +, -, *, /, знак возведения в степень ж и др.). Все они будут рассмотрены в данной главе. Имеется пять пар альтернативных символов (означающих одно и то же):

К специальным одиночным и составным знакам относятся элементы синтаксиса языка:

% – системная переменная, хранящая результат предшествующей операции;

: – фиксатор выражения, предотвращающий вывод результата вычисления в ячейку вывода;

; – фиксатор выражения, дающий вывод результата вычисления в ячейку вывода;

# – указатель программного комментария;

« – ограничитель строки (например, 'string');

:= – оператор присваивания (например, х:=5);

: ; – пустой оператор;

:: – указатель типа переменной (например, n::integer или z::complex);

12

2.1.Типы данных

\ – знак обратного деления, который имеет множественные значения в зависимости от контекста.

Комментарии в программе, не выводимые в ячейки вывода, за-

даются после символа #. В них допустимо использовать все символы кодовых таблиц, в том числе при вводе русскоязычных комментариев. Применение последних для идентификаторов (имен) объектов недопустимо.

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

В строке ввода может располагаться несколько выражений. Фиксаторами, т. е. указанием, что выражение окончено, могут быть символы «;» и «:». Символ «;» фиксирует выражение и задает вывод результатов его вычисления. А символ «:» фиксирует выражение и блокирует вывод результатов его вычисления. Фиксаторы выполняют также функцию разделителей выражений, если в одной строке их несколько. Ввод выражения оканчивается нажатием клавиши Enter.

Maple работает с числами следующего типа: целыми (0, 1, 123, –456 и т. д.), рациональными в виде отношения целых чисел (7/9, –123/127 и т. д.), вещественными с мантиссой и порядком (1.23Е5, 123.4567Е-10). Признаком вещественного числа является десятичная точка (запятая).

Maple может работать с комплексными числами. Мнимая единица в комплексном числе обозначается как I. Функции Re(x) и Im(x) возвращают действительную и мнимую части комплексных чисел.

Например: 5+7*I, Re(5+7*I), Im(5+7*I).

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

Пример: {a, b, c, d, e}.

13

2. Типы данных. Встроенные операторы и функции

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

Для создания упорядоченных наборов – списков – служат квад-

ратные скобки [ ]. Пример: [10,2+3.4+4,8,5,1]; [10,5,8,8,5,1].

Элементы списков преобразуются и выводятся строго в том порядке, в каком они были заданы. Списки широко применяются для задания векторов и матриц. В ряде случаев, например при подготовке данных для двумерных графиков, возникает необходимость в подготовке парных списков – скажем, координат точек (х, у) графика. Для этого можно использовать функцию zip(f, u, v) или zip(f, u, v, d). Здесь f – бинарная функция, u, v –

списки или векторы, d – необязательное значение.

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

аrrау[а..b, sl] – возвращает вектор с индексами от а до b и значениями в одномерном списке s1;

аrrау[а..b, c..d, s2] – возвращает матрицу с номерами строк от

адо b, номерами столбцов от с до d и значениями в двумерном списке s2.

Векторы и матрицы составляют отдельный тип данных. Эле-

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

Еще одним важным типом множественных данных являются таблицы. Они задают данные с произвольной индексацией. Для создания таблиц служит функция table, которая при вызове в простейшем виде table[] создает шаблон пустой таблицы. Пустая таблица резервирует память под данные. Когда параметром функции table является список выражений, он выводится в естественном порядке расположения элементов таблицы, но с произвольным порядком индексации.

Строки как тип данных – это цепочки символов. В частности они используются для создания текстовых комментариев. Строки-

14

2.1. Типы данных

комментарии имеют внутренний разделительный признак, который устанавливается при их вводе (нажатием клавиши F5, которое приводит к исчезновению знака >). В других случаях последовательность символов рассматривается как строка, если она заключена в обратные апострофы, то есть в знаки '. Два апострофа подряд формируют апостроф как знак символьной строки, например `abc``def ` дает строку abc`def. Любое математическое выражение может входить в строку, разумеется, оно при этом не выполняется.

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

Обычные числовые константы не имеют имени и представлены просто числами, типы которых были указаны выше. Можно считать, что именем такой константы является само ее значение. Например: в выражении 2*sin(1.25) числа 2 и 1.25 являются числовыми константами. При этом указание десятичной точки делает константу действительным числом – например, 2 – это целочисленная константа, а 2., 2.0 или 1.25 – это уже действительные константы.

Переменные – это объекты, значения которых могут меняться по ходу выполнения документа. Пока мы рассматриваем лишь глобальные переменные, доступные для модификации значений в любом месте документа. Тип переменной в системе Maple определяется присвоенным ей значением – это могут быть целочисленные (integer), рациональные (rational), вещественные (real), комплексные (complex) или строчные (string) переменные и т. д. Переменные могут также быть символьного типа (их значением является математическое выражение) или типа списка (см. далее). Для явного указания типа переменных используется конструкция: name::type, где name – имя (идентификатор) переменной, type – тип переменной, например целочисленный (integer), вещественный с плавающей точкой (float), с неотрицательным значе-

нием (nonneg), комплексный (complex) и т. д.

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

15

2. Типы данных. Встроенные операторы и функции

зовать в качестве идентификаторов переменных, делать это крайне нежелательно. Длина идентификатора не должна превышать 524275 символов.

Имена переменных могут содержать одну букву (например, х, Y или Z) либо ряд букв (Xmin или Хmах). В любом случае имя переменной надо начинать с буквы. Некоторые символы, например знак подчеркивания «_», могут использоваться в именах (например, Var_l, Var_2). Нельзя вводить в имена переменных знаки, обозначающие операторы, – например, а/b или а–b будет истолковано как деление а на b или вычитание из переменной а переменной b. Имена могут задаваться в обратных апострофах. При этом они просто тождественны именам без апострофов.

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

Для присваивания переменным конкретных значений используется комбинированный символ присваивания «:=», например: n:=1 – переменной n присваивается, целочисленное значение 1; х:=123.456 – переменной х присваивается вещественное значение 123.456; у:=17/19 – переменной у присваивается рациональное значение 17/18; name:='Piter' – переменной name присваивается строковое значение «Piter»; V:=[1,2,3] – переменной V присваивается значение списка чисел [1,2,3]; М:=[[1,2,3],[4,5,8]] – переменной М присваивается значение двумерного массива; f:=х- >х^2 – переменной f присваивается значение функции пользователя f(x)=x^2. Правая часть выражения присваивания определяет тип переменной.

Переменная, имеющая какое-либо значение, занимает в памяти намного больше места, чем неопределенная переменная. Поэтому целесообразно отменять присваивание у неиспользуемых переменных. Это может понадобиться и когда переменную нужно использовать просто как неопределенную переменную. Можно сделать переменную х неопределенной с помощью команды x:=’x’ или выражения вида x:=evaln(x). Для глобального освобождения переменных предназначена команда restart.

2.2. Операторы и операнды

Операторы во входном языке и языке программирования Maple служат для конструирования выражений. Формально операторы представлены своими идентификаторами в виде специальных ма-

16

2.2. Операторы и операнды

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

binary – бинарные операторы (двумя операндами);

unary – унарные операторы (с одним операндом);

ullary – нульарные операторы (без операнда —до трех пар кавычек);

precedence – операторы старшинства (включая логические операторы);

functional – функциональные операторы.

Для данных типа «множество» определены следующие бинарные операторы:

union – включает первый операнд (множество) во второй;

intersect – создает множество общих для операндов элементов;

minus – исключает из первого операнда элементы второго операнда.

Унарные операторы используются с одним операндом. Они

могут быть префиксными, если оператор стоит перед операндом, и постфиксными, если он стоит после операнда. К унарным относятся следующие операторы:

+ – унарный плюс;

– – унарный минус; ; – факториал;

. – десятичная точка; $ – последовательность;

not – логическое отрицание; &string – метка.

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

< – меньше; <= – меньше или равно; > – больше;

>= – большее или равно; = – равно; <> – не равно;

and – логическое «и»; or – логическое «или».

Конструкции с этими операторами, такие как х=у, возвращают логическое значение – константу true, если условие выполняется,

17

2.Типы данных. Встроенные операторы и функции

иfalse, если оно не выполняется. Кроме того, к логическим операторам относится унарный оператор not – он представляет логическое «нет». Для возврата логических значений выражений с этими операторами используется функция evalb(условие). Пример: evalb(х=у); .

ВMaple имеется возможность создания операторов с заданными

свойствами с помощью оператора define. Он записывается в следу-

ющей форме: define(oper, property1, property2, …). Здесь ореr – имя определяемого оператора, property1, property2

и т. д. – наименования свойств. В принципе, оператор define позволяет создавать операторы с новыми свойствами, которые отсутствуют у операторов и функций, встроенных в систему. Могут быть указаны следующие свойства операторов:

unary – унарный оператор;

binary – бинарный оператор;

diff – дифференциальный;

linear – линейный оператор;

multilinear – множественный линейный оператор;

flat – ассоциативный оператор, для него f(x,f(y,z))=f(f(x,y),z);

orderless – коммутативный симметричный оператор, т. е. f(x,y)=f(y,x);

antisymmetric – асимметричный оператор, такой что f(x,y) = =–f(y,x);

zero–нулевойоператор(например,V:=Vector(5,shape=zero)

задает вектор с 5 нулевыми элементами);

identity – единичный оператор (например,

M:=Matrix(3,3,shape=identity) задает единичную матри-

цу).

Пример: > define(L, linear);

>L(a*x+b*x+c*x); .

2.3. Математические функции

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

18

2.3. Математические функции

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

Целочисленные функции:

factorial (n) – функция вычисления факториала (альтернатива – !);

iquo(a.b) – целочисленное деление а на b;

irem(a,b) – остаток от деления а на b;

igcd(a b) – наибольший общий делитель;

lcm(a,b) – наименьшее общее кратное.

Тригонометрические функции:

sin – синус;

cos – косинус;

tan – тангенс;

sec – секанс;

csc – косеканс;

cot – котангенс.

Обратные тригонометрические функции:

arcsin – арксинус;

arccos – арккосинус;

arctan – арктангенс;

arcsec – арксеканс;

arccsc – арккосеканс;

arccot – арккотангенс.

Степенные и логарифмические функции:

ехр – экспоненциальная функция;

ilog10 – целочисленный логарифм по основанию 10 (возвращает целую часть от логарифма по основанию 10);

ilog – целочисленный логарифм (библиотечная функция, возвращающая целую часть от натурального логарифма);

ln – натуральный логарифм;

log – логарифм по заданному основанию (библиотечная функция);

log10 – логарифм по основанию 10;

sqrt – квадратный корень.

19

2.Типы данных. Встроенные операторы и функции

Валгоритме вычисления ряда функций заложено сравнение результата с некоторым опорным значением. К таким функциям относятся:

abs – абсолютное значение числа;

ceil – наименьшее целое, большее или равное аргументу;

floor – наибольшее целое, меньшее или равное аргументу;

frac – дробная часть числа;

trunc – целое, округленное в направлении нуля;

round – округленное значение числа;

signum (х) – знак х (–1 при х < 0, 0 при х = 0 и +1 при х > 0).

Функции комплексного аргумента:

argument – аргумент комплексного числа;

conjugate – комплексно-сопряженное число;

Im – мнимая часть комплексного числа;

Re – действительная часть комплексного числа;

роlаr – полярное представление комплексного числа.

Функции для работы со строками:

lenght(str) – возвращает число символов, содержащихся в строке str;

substring(str,a..b) – для str возвращает подстроку от а-го символа до b-го;

cat(strl,str2....) – возвращает строку, полученную объе-

динением строк strl, str2,... (альтернатива – оператор конкатенации в виде точки .);

SearchText(s.str) – производит поиск подстроки s в строке str и при его успехе возвращает номер позиции s в строке str (при отсутствии s в str функция возвращает 0).

Контрольные вопросы

1.Алфавит Maple-языка.

2.Выражение в системе Maple.

3.Типы данных в системе Maple.

4.Множества и списки.

5.Таблицы.

6.Константы и переменные.

7.Типы операторов в Maple.

8.Математические функции в Maple.

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]