Кафедра: ИнформационныеТехнологии
ЛабораторнаяРабота
На тему: "СИНТАКСИС, ОСНОВНЫЕ ОБЪЕКТЫ И КОМАНДЫ СИСТЕМЫ MAPLE"
Москва,2008 год
Цели работы:
· знать основные объекты и переменные системы Maple;
· знать и уметь применять команды, используемые при работе с объектамии переменными системы Maple;
· знать синтаксис основных математических функций системы Maple.
Введение
Системааналитических вычислений Maple – интерактивная система. В данном случае это означает, чтопользователь вводит команду или оператор языка Maple в области ввода рабочеголиста и, нажав клавишу , сразу же передает ее аналитическому анализатору системы,который выполняет ее. При правильном введении команды в области выводапоявляется результат выполнения этой команды, если команда содержитсинтаксические ошибки или ошибки выполнения, система печатает сообщение обэтом. Если ошибку надо исправить, то следует вернуться к оператору,откорректировать его и снова выполнить. Выполнив введенную команду, системаожидает очередной команды от пользователя. Можно вернуться в любой момент клюбой команде или оператору на рабочем листе, подкорректировать его и сновавыполнить. Однако, если на рабочем листе есть команда, использующая результатвновь вычисленной, то ее следует также снова вычислить, установив на неекурсор, и, нажав клавишу , а если таких команд много, то можно выполнить командуграфического интерфейсаEdit®Execute®Worksheet для повторного вычисления всех команд рабочего листа.
Каждыйоператор или команда обязательно завершаются разделительным знаком.Таких знаков в системе Maple два – точка с запятой (;) и двоеточие (:). Если предложениезавершается точкой с запятой, то оно вычисляется, а в области выводаотображается результат. При использовании двоеточия в качестве разделителякоманда выполняется, но результаты ее работы не отображаются в области вывода рабочеголиста. Это удобно, например, при программировании в Maple, когда нет необходимости ввыводе каких-то промежуточных результатов, получаемых из операторов цикла, таккак вывод этих результатов может занять много места на рабочем листе, да иможет потребоваться значительное количество времени на их отображение.
Здесь и далее для команд Maple используется запись в формесинтаксиса языка Maple. Если при выполнении примеров возникает желание отображатькоманды в математической нотации, то следует командой Options®InputDisplay®StandardMathNotation установить соответствующийрежим отображения.
В 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 г.