Кафедра: Информационные Технологии
Лабораторная Работа
На тему: "СИНТАКСИС, ОСНОВНЫЕ ОБЪЕКТЫ И КОМАНДЫ СИСТЕМЫ MAPLE"
Москва, 2008 год
Цели работы:
· знать основные объекты и переменные системы Maple;
· знать и уметь применять команды, используемые при работе с объектами и переменными системы Maple;
· знать синтаксис основных математических функций системы Maple.
Введение
Система аналитических вычислений Maple – интерактивная система. В данном случае это означает, что пользователь вводит команду или оператор языка Maple в области ввода рабочего листа и, нажав клавишу <Enter>, сразу же передает ее аналитическому анализатору системы, который выполняет ее. При правильном введении команды в области вывода появляется результат выполнения этой команды, если команда содержит синтаксические ошибки или ошибки выполнения, система печатает сообщение об этом. Если ошибку надо исправить, то следует вернуться к оператору, откорректировать его и снова выполнить. Выполнив введенную команду, система ожидает очередной команды от пользователя. Можно вернуться в любой момент к любой команде или оператору на рабочем листе, подкорректировать его и снова выполнить. Однако, если на рабочем листе есть команда, использующая результат вновь вычисленной, то ее следует также снова вычислить, установив на нее курсор, и, нажав клавишу <Enter>, а если таких команд много, то можно выполнить команду графического интерфейса Edit ® Execute ® Worksheet для повторного вычисления всех команд рабочего листа.
Каждый оператор или команда обязательно завершаются разделительным знаком. Таких знаков в системе Maple два – точка с запятой (;) и двоеточие (:). Если предложение завершается точкой с запятой, то оно вычисляется, а в области вывода отображается результат. При использовании двоеточия в качестве разделителя команда выполняется, но результаты ее работы не отображаются в области вывода рабочего листа. Это удобно, например, при программировании в Maple, когда нет необходимости в выводе каких-то промежуточных результатов, получаемых из операторов цикла, так как вывод этих результатов может занять много места на рабочем листе, да и может потребоваться значительное количество времени на их отображение.
Здесь и далее для команд Maple используется запись в форме синтаксиса языка Maple. Если при выполнении примеров возникает желание отображать команды в математической нотации, то следует командой Options ® Input Display ® Standard Math Notation установить соответствующий режим отображения.
В Maple реализован свой язык, с помощью которого происходит общение пользователя с системой. Базовыми понятиями являются объекты и переменные, из которых с помощью допустимых математических операций составляются выражения.
Простейшими объектами, с которыми может работать Maple, являются числа, константы и строки.
Числа
Числа в системе Maple могут быть следующих типов: целые, обыкновенные дроби, радикалы, числа с плавающей точкой и комплексные. Первые три типа чисел позволяют выполнять точные вычисления (без округлений) разнообразных математических выражений, реализуя точную арифметику. Числа с плавающей точкой являются приближенными, в которых число значащих цифр ограничено. Эти числа служат для приближения (или аппроксимации) точных чисел Maple. Комплексные числа могут быть как точными, если действительная и мнимая части представлены точными числами, так и приближенными, если при задании действительной и мнимой частей комплексного числа используются числа с плавающей точкой.
Целые числа задаются в виде последовательности цифр от 0 до 9. Отрицательные числа задаются со знаком минус (–) перед числом, нули перед первой ненулевой цифрой являются не значащими и не влияют на величину целого числа. Система Maple может работать с целыми числами произвольной величины, количество цифр практически ограничено числом 228. Вычисления с целыми числами реализуют четыре арифметических действия (сложение +, вычитание –, умножение *, деление /) и вычисление факториала (!).
Maple представляет большое целое число, которое не помещается в строке области вывода используя символ обратного слэша (\) в качестве символа продолжения вывода на следующей строке. Последняя команда вычисляет количество цифр в результате предыдущего вычисления. В ней в качестве параметра используется операция%, которая является всего лишь удобной формой ссылки на результат выполнения предыдущей операции. В Maple имеются еще две подобные операции, которые идентифицируют результаты предпредыдущей и предпредпредыдущей команд. Их синтаксис выглядит, соответственно, следующим образом:
%% и%%%.
В Maple имеется достаточно большой набор команд, позволяющих выполнить действия, специфичные при обработке целых чисел: разложение на простые множители (ifactor), вычисление частного (iquo) и остатка (irem) при выполнении операции целого деления, нахождения наибольшего общего делителя двух целых чисел (igcd), выполнение проверки, является ли целое число простым (isprime) и многое другое.
Для проверки вычисления частного и остатка двух целых чисел использованы операции получения результата выполнения предыдущей (вычисление частного) и предпредыдущей (вычисление остатка) команд. Результатом команды isprime () является булева константа true (истина) или false (ложь).
Набрав в области ввода рабочего листа команду? integer, можно получить список всех команд для работы с целыми числами
Обыкновенные дроби задаются с помощью операции деления двух целых чисел. Заметим, что Maple автоматически производит операцию сокращения дробей. Над обыкновенными дробями можно выполнять все основные арифметические операции.
Если при задании дроби ее знаменатель сокращается (см. последнее вычисление в примере), то такая «дробь» трактуется системой Maple как целое число.
Часто представление результата в виде обыкновенной дроби не совсем удобно, и возникает задача преобразования ее в десятичную дробь. Для этого используется команда evalf(), которая аппроксимирует обыкновенную дробь числами с плавающей точкой, используя десять значащих цифр в мантиссе их представления. Если точность по умолчанию не достаточна, то ее можно задать вторым параметром указанной функции.
Дробь и ее десятичное представление не являются идентичными объектами Maple. Десятичное представление всего лишь аппроксимация точной величины, представленной обыкновенной дробью.
Радикалы задаются как результат возведения в дробную степень целых или дробных чисел, или вычисления из них же квадратного корня функцией sqrt(), или вычисления корня n ой степени с помощью функции surd (число, n). Операция возведения в степень задается символом ^ или последовательностью из двух звездочек (**). При возведении в степень дробей их следует заключать в круглые скобки, как, впрочем, и дробный показатель степени. При задании радикалов также производятся возможные упрощения, связанные с вынесением из-под знака радикала максимально возможной величины.
Вычисления с целыми, дробями и радикалами являются абсолютно точными, поскольку при работе с этими типами данных программа Maple не производит никаких округлений в отличие от чисел с плавающей точкой.
Числа с плавающей точкой задаются в виде целой и дробной частей, разделенных десятичной точкой, с предшествующим знаком числа, например, 3.4567, -3.415. Числа с плавающей точкой можно задавать, используя так называемую экспоненциальную форму записи, в которой сразу же после вещественного числа с плавающей точкой или обычного целого, называемого мантиссой, ставится символ е или е, после которого задается целое число со знаком (показатель степени). Такая форма записи означает, что мантиссу следует умножить на десять в степени числа, соответствующего показателю степени, чтобы получить значение числа, записанного в такой экспоненциальной форме. Например, 2.345е4 соответствует числу 23450.0. Таким образом, можно представлять очень большие по абсолютному значению числа (показатель степени положительное число) или очень маленькие (показатель степени отрицательное число).
Из чисел составляются математические выражения с помощью арифметических операций. Символы арифметических операций в Maple перечислены в табл. 1.
Таблица 1. Арифметические операции
Символ |
Операция |
– | Вычитание |
+ | Сложение |
/ | Деление |
* | Умножение |
^ или ** | Возведение в степень |
! | Факториал (применим только к целым неотрицательным числам) |
Последовательность выполнения арифметических операций соответствует стандартным правилам старшинства операций в математике: сначала производится возведение в степень, затем умножение и деление, а в конце – сложение и вычитание. Все действия выполняются слева направо. Операция вычисления факториала имеет наибольший приоритет. Для изменения последовательности арифметических операций следует использовать круглые скобки.
Если все числа в выражении являются целыми, дробями или радикалами, то результат представляется также с использованием этих типов данных, но если в выражении присутствует число с плавающей точкой, то результатом вычисления такого «смешанного» выражения будет также число с плавающей точкой, если только в выражении не присутствует радикал. В этом случае радикал вычисляется точно, а коэффициент при нем вычисляется либо точно, либо в виде числа с плавающей точкой в зависимости от типа сомножителей.
Система аналитических вычислений Maple всегда пытается произвести вычисления с абсолютной точностью. Если это не получается, тогда подключается арифметика с вещественными числами.
Maple умеет работать и с комплексными числами. Для мнимой единицы в Maple используется константа I. Задание комплексного числа не отличается от его обычного задания в математике.
Maple выполняет все арифметические действия над комплексными числами.
Взгляните на последнее выражение в примере 7. Если хотя бы одна из действительных или мнимых частей комплексного числа вычисляется в виде числа с плавающей точкой, то результат также представляется через эти числа.
Для выделения из комплексного числа действительной и мнимой части в Maple существуют две функции: Re () для действительной и Im() для мнимой части комплексного числа. Вычислить аргумент комплексного числа можно с помощью функции argument (), а построить комплексно-сопряженное – функцией conjugate ():
Константы.
Кроме чисел, задаваемых пользователем, в Maple содержится целый ряд предопределенных именованных констант – констант, к значению которых можно обращаться с помощью некоторого имени. Часть этих констант не может быть изменена, а часть можно изменять. Неизменяемые константы представлены в табл. 2.
Таблица 2. Неизменяемые константы
Константа | Значение |
Catalan |
Число, являющееся суммой ряда , приближенно равно 0.9159655942… |
false | Значение «ложь» при работе с булевскими переменными |
true | Значение «истина» при работе с булевскими переменными |
FAIL | Используется в качестве третьего значения при вычислении функций трехзначной логики |
gamma |
Константа Эйлера |
Pi |
Число |
I |
Мнимая единица |
infinity | Бесконечность Ґ |
Константы, значения которых могут быть переопределены, – это константы, задающие необходимые для работы программы параметры. Наиболее важным являются две константы, которые влияют на точность вычислений: Digits и Order. Константа Digits задает число значащих цифр для операций с числами с плавающей точкой. По умолчанию она имеет значение 10. Константа Order определяет количество членов в разложении функции в ряд Тейлора (по умолчанию установлена равной 6).
Посмотреть все константы, определенные в Maple, можно, выполнив команду? ininame. Кроме перечисляемых на странице Справки констант все переменные, имена которых начинаются с _Env, по умолчанию являются системными константами Maple.
Строки
Cтрока – любой набор символов, заключенный в двойные кавычки, например, «Длинные строки в Maple». Каждый символ в строке представляет самого себя. Длина строки в Maple практически не ограничена и может достигать на 32 битных компьютерах длины в 268 435 439 символов.
При определении строк следует внимательно следить за ограничивающими двойными кавычками и не задавать вместо них одинарные или обратные. Первые определяют режим отложенных вычислений для выражения, а вторые задают символическое имя, которое можно использовать как переменную.
Если необходимо, чтобы в строке присутствовали двойные кавычки, то следует поместить в строку идущие подряд две двойные кавычки или скрыть их основное назначение с помощью символа обратной наклонной черты (\). При этом в области вывода и пара двойных кавычек, и двойные кавычки с предшествующей обратной наклонной чертой отображаются как пара символов \». Однако интерпретатором Maple эта пара символов рассматривается как один символ двойных кавычек, в чем можно убедиться, выполнив команду length (), подсчитывающую количество символов в строке.
Если идут подряд две строки, разделенные символами-разделителями (пробел, табуляция или переход на новую строку), то эти две строки соединяются в одну, причем значение второй без пробела пристраивается в конец первой строки.
Строку можно представить как одномерный массив, поэтому можно использовать индекс для выделения подстроки из заданной строки.
Переменные, неизвестные и выражения
Одни лишь числовые выражения не позволяют использовать всю мощь аналитических вычислений Maple. Для освоения всех возможностей Maple необходимо знакомство с переменными и неизвестными величинами. В переменных можно хранить вычисленные значения функций и символьных выражений. Неизвестные величины представляют собой обычные математические неизвестные, когда мы решаем задачу на листке бумаги, и используются для задания символьных выражений Maple.
Каждая переменная Maple имеет имя, представляющее последовательность латинских символов, начинающихся с буквы, причем строчные и прописные буквы считаются различными. (Такие системы называются чувствительными к регистру.) Кроме букв в именах переменных могут использоваться также цифры и знак подчеркивания, однако первым символом в имени должна быть буква. Примеры различных имен:
MyName, myname, my_name
В именах переменных можно использовать и буквы национального алфавита, в частности русского. Однако необходимо заметить, что в математике все-таки принято использовать латинский и греческий алфавиты.
В качестве имен запрещено использовать зарезервированные слова языка Maple:
and | end | in | od | save |
break | error | intersect | option | stop |
by | export | local | options | then |
catch | fi | minus | or | to |
description | finally | mod | proc | try |
do | for | module | quit | union |
done | from | next | read | use |
elif | global | not | return | while |
else | if |
Нельзя также использовать так называемые защищенные слова Maple, к которым, в частности, относятся имена неизменяемых констант. Попытка присвоить такому имени какое-либо значение приводит к ошибке:
> Catalan:=7;
Error, attempting to assign to `Catalan` which is protected
Ошибка, попытка присвоить значение защищенному символу `Catalan`
Узнать о защищенных именах можно, отобразив страницу Справки командой? protect. Можно задавать переменные с именами, содержащими пробелы, но для этого их следует заключать в обратные кавычки.
Вообще, любое правильное имя также можно заключить в обратные кавычки и от этого ничего страшного не произойдет, так как основное действие обратных кавычек (семантика) заключается в создании символического имени (в Maple этот объект имеет тип symbol).
Выражение – это комбинация имен переменных, чисел и, возможно, других объектов Maple, соединенных знаками допустимых операций. Единственным предназначением выражения является его вычисление и получение некоего результата, который можно использовать в операторах языка Maple при дальнейших вычислениях.
Если в выражении используется переменная, которой не присвоено никакого числового или строкового значения, то такая переменная рассматривается системой Maple как некая неизвестная величина, а выражение, содержащее неизвестные, называется символьным выражением. Именно для работы с такими выражениями прежде всего и разрабатывался Maple.
Обратите внимание, Maple в области вывода действительно печатает неизвестные переменные как простые математические неизвестные, имена которых соответствуют именам переменных.
Для работы с символьными выражениями существует огромное количество функций или команд. Основная деятельность пользователя Maple направлена на выполнение разнообразных преобразований с символьными выражениями.
Важной операцией в Maple, связанной с выражениями, является операция присваивания (:=). Она имеет следующий синтаксис:
переменная: = выражение;
Здесь в левой части задается имя переменной, а в правой части любое выражение, которое может быть числовым, символьным или просто другой переменной. Смысл этого оператора в том, что переменной в левой части присваивается значение выражения, стоящего в правой части. В дальнейшем, если будет необходимо использовать выражение из левой части операции присваивания, то достаточно сослаться на имя переменной, указанное в правой части операции.
С помощью переменных можно хранить и обрабатывать разнообразные типы данных, с которыми работает Maple. Мы уже знаем такие типы данных, как целый (integer), дробь (fraction), числовой вещественный с плавающей точкой (float) и строка (string). Кроме этих типов данных существует еще большое множество типов, необходимых для выполнения аналитических преобразований: функция (function), индексные данные (indexed), множество (set), список (list), ряды (series), последовательность выражений (exprseq) и некоторые другие. Перечисление всех допустимых типов данных Maple представлено в справочной странице, отображаемой командой? type.
По умолчанию переменная Maple имеет тип symbol, представляющий символьную переменную, и ее значением является ее собственное имя. Поэтому простое объявление переменной m оператором m; приведет к отображению в области вывода рабочего листа имени этой переменной.
В примере 9 можно видеть функцию whattype (), которая определяет тип выражения или переменной, заданных в качестве ее параметра.
То, что переменная по умолчанию имеет символьный тип, оказывается очень полезным при использовании функций. В тех случаях когда имя функции Maple задано не совсем правильно, или такой функции не существует, или не подключен пакет, где она расположена, то Maple в ответ на попытку вычислить эту функцию отобразит в области вывода не результат выполнения функции, а полностью повторенную строку области ввода.
При присвоении переменной какого-нибудь значения, ее тип изменяется на тип присвоенного ей значения. Наряду с числами переменные можно использовать для составления выражений. Все, сказанное выше о числовых выражениях и порядке их вычисления, относится и к выражениям, содержащим переменные.
В математических выражениях обычно используются разнообразные математические функции. В Maple имеется большой набор стандартных математических функций, как элементарных, так и специальных. В табл. 3 показаны основные математические функции и соответствующий им синтаксис Maple.
Таблица 3. Основные математические функции
Функция |
Синтаксис Maple |
Функция |
Синтаксис Maple |
|
ex | exp(x) | sqrt(x) | ||
ln(x) | ln(x) или log(x) | abs(x) | ||
log10 (x) | sgn(x) | signum(x) | ||
log[a] (x) | n! | n! |
Тригонометрические и гиперболические функции указаны в табл. 4. Отметим несоответствие записи некоторых функций в русскоязычной математической литературе и в англоязычной, например функции тангенса угла. Значения параметров тригонометрических функций задаются в радианах.
Таблица 4. Тригонометрические и гиперболические функции
Функция |
Синтаксис Maple |
Функция |
Синтаксис Maple |
|
sin(x) | sin(x) | sh(x) | sinh(x) | |
cos(x) | cos(x) | ch(x) | cosh(x) | |
tg(x) | tan(x) | th(x) | tanh(x) | |
sec(x) | sec(x) | sech(x) | sech(x) | |
cosec(x) | csc(x) | cosech(x) | csch(x) | |
ctg(x) | cot(x) | cth(x) | coth(x) |
Задание обратных тригонометрических и обратных гиперболических функций представлено табл. 5.
Таблица 5. Обратные тригонометрические и гиперболические функции
Функция |
Синтаксис Maple |
Функция |
Синтаксис Maple |
|
arcsin(x) | arcsin(x) | arcsh(x) | arcsinh(x) | |
arccos(x) | arccos(x) | arcch(x) | arccosh(x) | |
arctg(x) | arctan(x) | arcth(x) | arctanh(x) | |
arcsec(x) | arcsec(x) | arcsech(x) | arcsech(x) | |
arccosec(x) | arccsc(x) | arccosech(x) | arccsch(x) | |
arcctg(x) | arccot(x) | arccth(x) | arccoth(x) |
Задание в Maple функций Бесселя, эллиптических интегралов, дельта-функции Дирака, функции Хевисайда и других специальных функций можно найти в справочной системе. Справку обо всех имеющихся в Maple функциях можно получить, выполнив команду? inifunction.
Литература
1. Говорухин В.Н., Цибулин В.Г. Введение в Maple. Математический пакет для всех. – М.: Мир, 1997. – 208 с.
2. Дьяконов В.П. Математическая система Maple V. – М.: Издательство «Солон», 1998.
3. Двайт Г.Б. Таблицы интегралов и другие математические формулы. – М.: Наука. Главная редакция физико-математической литературы, 1983. – 176 с.
4. Матросов А.В. Maple 6. Решение задач высшей математики и механики. – СПб.:БХВ – Петербург, 2001. – 528 с.
5. Манзон Б.М. Maple V Power Edition – М.: Информационно-издательский дом «Филинъ», 1998 г.