Основы программирования в Maple
Характеристика и общая ориентированность пакета Maple. Интерфейс пакета, работающего под Windows. Простейшие примеры работы с Maple в интерактивном режиме. Структура объектов Maple, средства для преобразования и вычисления алгебраических выражений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 10.12.2017 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
«СЕВЕРО-КАВКАЗСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
ИНСТИТУТ МАТЕМАТИКИ И ЕСТЕСТВЕННЫХ НАУК
КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ И МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ
Реферат по дисциплине:
«Основы работы в математических и статических пакетах»
на тему: «Основы программирования в Maple»
Ставрополь 2017
Содержание
Введение
Основы Maple
Интерфейс пользователя
Простейшие примеры
Структура объектов Maple
Простейшие преобразования и вычисления
Графики функций и простейшие кривые
Использование пакетов
Заключение
Список используемой литературы
Введение
Сейчас невозможно представить себе жизнь без использования компьютера. Сфера его деятельности пронизывает многие виды деятельности человека, хотя изначально он предназначался для трудоемких вычислительных задач. Раньше для подсчета численных выражений нужно было затратить немало времени для написания программы на алгоритмическом языке. За последние годы ситуация резко изменилась, так как с ростом возможностей вычислительной техники соответственно совершенствовалось и программное обеспечение. [1] Появилось очень много математических пакетов, таких как MathCad, Matlab, Maple и т.д. Которые позволили решать задачи разного характера.
Основы Maple
Работать с Maple можно как в режиме интерактивного диалога, так и путем составления и отладки программ на специальном Maple-языке, ориентированном на сложные математические вычисления.
Основу пакета составляет специальное ядро - программа символьных преобразований. Кроме того, имеется несколько тысяч специальных функций, хранящихся в подгружаемых к ядру пакетах и библиотеках. Общая ориентированность пакета на символьные преобразования (компьютерную алгебру) конечно не означает, что с помощью Maple нельзя решать задачи численно. Maple умеет не только вычислять, но и обладает богатыми возможностями графического представления математических объектов и процессов. [2] maple пакет интерфейс алгебраический
Формы представления чисел В Maple.
Тождественные преобразования и упрощение выражений в Maple[3]
Интерфейс пользователя
Интерфейс пакета, работающего под Windows.
Окно Maple содержит многие атрибуты, привычные пользователю других приложений Windows: заголовочную часть, строку ниспадающих меню, панель управления, линейку вертикальной прокрутки, строку состояния и т.д. Основную часть базового окна занимает еще одно окно, в котором обычно располагаются один или несколько рабочих документов (Maple worksheet). В этом же окне могут располагаться окна помощи. Состояние ниспадающих и контекстного меню и кнопок на панели управления зависит от того, какое именно окно активно в настоящий момент и месторасположения курсора в окне Maple worksheet.
Рассмотрим наиболее типичный случай - работу пользователя с рабочим документом в режиме непосредственного диалога с программой. В этом случае на рабочем документе может быть представлена текстовая информация трех видов, а также объекты двумерной и трехмерной графики.
Исполняемые команды вводятся после специльного приглашения ' > ', красным цветом и должны заканчиваться точкой с запятой или двоеточием. Обычно команды вводятся в строчном формате, но пользователь имеет возможность перейти к специальному математическому формату ( который по умолчанию применяется при выводе). В одной строке может быть расположено более одной команды. Если после команды стоит двоеточие, то результат ее выполнения не будет отображен на экране. Если же после команды стоит точка с запятой, то после ее выполнения на экране появится результат. Если Maple не сможет вычислить введенное выражение, то результатом будет перевод введеннного выражения в матматический формат, принятый для вывода. Выходная информация печатается по умолчанию синим цветом. Исполнение Maple-команды инициируется нажатием ввода.
Команды можно объединять в исполняемые группы. Каждая такая группа выделяется слева общей для всех содержащихся в ней строк квадратной скобкой. Группа запускается на исполнение одним нажатием клавиши Enter и является по существу простейшей Maple - программой. Для того чтобы не исполнять каждую строку отдельно, а набрать целую исполняемую группу, достаточно осуществлять перевод строки с помощью комбинации клавиш Shift+Enter. Объединять исполняемые группы можно нажатием функциональной клавиши F4, а разбивать - нажатием F3. Разумеется, эти же действия можно проделать, выбрав соответствующие пункты в верхнем меню.
Текст черного цвета, которым написаны этот и предыдущие абзацы, используется для комментариев и никак не обрабатывается системой.
Для того чтобы вводить такой текст, достаточно, находясь в командной строке, нажать кнопку " Т " на панели управления, или вставить параграф, выбрав соответствющий пункт раздела "Insert" нисподающего меню.
Рабочий документ Maple можно структурировать, создавая вложенные друг в друга секции. Эти секции можно сворачивать. В свернутом виде каждая секция представлена лишь своим заголовком и признаком секции - кнопкой, снабженной знаком "+". Для разворачивания/сворачивания секции достаточно нажать на эту кнопку мышкой (впрочем, раз Вы читаете этот текст, то Вы, наверное, уже освоили эту возможность).
С помощью пункта меню "HyperLink..." из раздела " I nsert" можно создавать ссылки на определенные разделы других рабочих документов и топиков помощи. Тем самым Maple-документ может обладать структурой гипертекста.[2]
Простейшие примеры
Рассмотрим простейшие примеры работы с Maple в интерактивном режиме:
>
>
>
>
>
Обратим внимание, что по умолчанию Maple выполняет вычисления с абсолютной точностью, переходя, в случае необходимости к подходящим расширениям кольца целых чисел. И лишь наличие десятичной точки у одного из операндов привело к переходу к вычислениям с плавающей точкой.
Приведем еще несколько примеров с использованием числовых констант и переменных, а также оператора присваивания и простейщих функций:
>
Эти примеры иллюстрируют три важных момента.
Во-первых, Maple различает заглавные и маленькие буквы.
Во-вторых, в то время как pi обозначает просто соответствующую букву греческого алфавита и может быть использовано в качестве идентификатора переменной, Pi означает известную математическую константу - отношение длины окружности к диаметру.
В-третьих, переменной можно присваивать значение любого типа (при этом не обязательно явно указывать этот тип - Maple сам постарается разобраться) или не придавать никакого, используя ее именно в качестве переменной (в математическом понимании этого термина).
Попытка присвоить значение защищенной константе приведет к ошибке:
>
Error, attempting to assign to `Pi` which is protected. Try declaring `local Pi`; see ?protect for details.
Сообщение об ошибке вызовет и попытка сложить число и символьную строку:
> pi+alpha;
Заметим, что следующее присвоение совершенно корректно:
>
Кроме Pi, в Maple имеются еще несколько зарезервированных констант. Отметим среди них мнимую единицу - I:
>
Для перевода точного значения математического выражения в формат записи с плавающей точкой с одновременным округлением с указанной точностью используется функция evalf :
>
Следующий пример иллюстрирует одну очень важную особенность Maple:
>
После того как переменной d, участвующей в выражении, хранящемся в b, было присвоено конкретное значение, значение b изменилось с учетом этого присвоения, хотя мы и не делали новых присваиваний для b.[2]
Указанная особенность Maple объясняет, почему столь безобидная для других языков (и широко используемая в них) конструкция приводит к переполнению стека рекурсий на Maple:
>
Error, recursive assignment
Error, too many levels of recursion
Однако, если предварительно придать переменной конкретное значение, предыдущее присваивание не будет приводить к неприятностям:
>
Структура объектов Maple
Для того чтобы понять идеологию Maple, рассмотрим представление данных. Типичными объектами Maple являются выражения, имеющие структуру дерева. Пусть, например, переменной u присвоено следующее выражение:
>
При этом u сопоставляется объект, который наглядно можно изобразить так:
Функция nops (number of operands) возвращает количество операндов самой внешней операции, участвующей в выражении, являющимся аргументом этой функции. Значения операндов возвращает функция op . Ее первый аргумент задает номер операнда, а второй - выражение, в котором он участвует. Если в качестве первого аргумента взять 0, то функция op вернет тип операции.
>
>
Рассмотрим некоторые другие часто используемые объекты Maple. Для задания множества достаточно перечислить его элементы через запятую, заключив их в фигурные скобки.
>
Обратите внимание, что Maple устранил повторы элементов, преобразовав для этого некоторые из них, и попутно расставил их в "удобном для себя" порядке.
Над множествами можно производить обычные теоретико-множественные операции: объединение ( union ), пересечение ( intersect ), теорекико-множественную разность ( minus )
>
В отличие от неупорядоченных множеств списки представляют собой упорядоченные наборы. Элементы списка заключаются в квадратные скобки. Приведенные ниже примеры показывают, как управлять элементами списка:
>
>
Обратите внимание, что элементы списка сами могут иметь сложную структуру (в наших примерах структуру списка или множества).
>
Посмотрите, как было произведено добавление элементов в список с помощью функции op, которая в этом случае имела лишь один аргумент.
С помощью команд remove и select можно удалять элементы списка или наоборот оставлять в нем лишь элементы, удовлетворяющие определенным условиям. Первый аргумент этих функций должен принимать для каждого из элементов списка одно из значений: true или false. Вторым аргументом служит сам обрабатываемый список. Третий, необязательный параметр по сути является аргументом логической функции, служащей первым параметром remove и select, задавая тем самым область истинности соответствующего предиката. В приводимых ниже примерах мы сначала удаляем из списка S все элементы, которые сами являются списками, а затем оставляем в S лишь элементы, являющиеся именами переменных или множествами.
>
>
Используя список в качестве первого аргумента функции op, можно существенно упростить процедуру извлечения глубоко вложенных операндов из выражений Maple:
>
Еще одним классом объектов Maple являются последовательности. Их можно задавать: либо просто перечисляя их элементы через запятую (не заключая всего выражения в скобки), либо используя значок последовательности - $ в сочетании с оператором диапазона (он задается указанием границ диапазона, разделенных двумя точками), либо как возвращаемое значение функции seq.
>
>
>
Последовательности выражений легко превратить в множества или списки, просто заключив их в соответствующие скобки:
>
>
Разумеется, система, ориентированная на математику, должна уметь оперировать с матрицами:
>
>
Последний пример показывает, что задавать количество строк и столбцов матрицы можно и неявно, если при перечислении элементов матрицы указать ее структуру. Можно сделать и наоборот - не задавать элементы матрицы, а указать лишь ее размерность:
>
>
>
Maple создал объект соответствующей размерности, элементы которого являются индексированными переменными. Однако эта конструкция была идентифицирована программой как массив ( array ). Дело в том, что массив является более общим (чем список и матрица) понятием Maple. Матрица является частным случаем двумерного, а список (и вектор) - одномерного) массива, нумерация индексов которого начинается с единицы.
Рассмотренные примеры не исчерпывают всего разнообразия типов объектов Maple. Эти объекты могут быть строками (string), таблицами (table), иметь булевский тип (boolean) и т.д. Кроме того, существует огромное количество типов объектов, доступных только после подгрузки специализированных пакетов.
Отметим, что один и тот же объект может принадлежать одновременно к нескольким типам:
>
>
Мы видим, что на запрос о типе числа 7 Maple вернул integer. Однако программа подтверждает, что данный объект является в то же время положительным нечетным простым числом, а также может быть интерпретирован как комплексное число или многочлен. [2]
Простейшие преобразования и вычисления
Будучи системой символьных вычислений, Maple должен иметь средства для преобразования алгебраических выражений: приведения подобных членов (это делается по умолчанию), раскрытия скобок (expand), группировки (collect), разложения на множители (factor для многочленов и ifactor для целых чисел) упрощения выражений (simplify) и т.д. Действие перечисленных выше функций станет понятно из следующих примеров:
>
>
>
>
>
>
[2]
Графики функций и простейшие кривые
В состав Maple входят несколько специальных пакетов для работы с графикой. Однако для построения графиков функций и простейших кривых и поверхностей нет необходимости подгружать эти пакеты. Достаточно использовать функцию plot, входящую в ядро Maple:
>
>
Щелкнув левой кнопкой мыши по рисунку, можно активизировать данный объект. При этом верхнее меню и панель управления трансформируются в состояние, предназначенное для работы с двумерной графикой.
Для того чтобы вывести сразу несколько графиков на одном рисунке, достаточно в качестве первого аргумента функции plot использовать список.
В последнем примере, кроме двух обязательных параметров команды plot, использован один (из многих возможных) опциональных - color.
Для того, чтобы изобразить линию, заданную параметрически, вновь воспользуемся списком. Но в этом случае задание диапазона изменения параметра должно быть третьей компонентой списка, а не вторым самостоятельным аргументом plot .
> [2]
>
Для изображения поверхностей в Maple используется команда plot3d.
Так же, как и команда plot, в зависимости от синтаксиса plot3d может изображать поверхности, заданные явно (в виде графика функции двух аргументов) и параметрически.
При явном задании поверхности первый аргумент команды plot3d должен определять функцию двух переменных, график которой следует построить, а следующие два аргумента задают диапазон изменения переменных (при этом границы диапазона второй переменной могут быть функциями от первой). Кроме этих обязательных параметров, могут задаваться еще несколько опциональных, отвечающих за тип системы координат (Maple "знает" несколько десятков разновидностей пространственных координат), стиль изображения, цвет, палитру, освещенность рисунка, заголовок, шрифт и стиль оформления надписей, наличие или отсутствие перспективы и т.д. В нижеследующем примере мы используем опцию grid для задания матрицы опорных значений функции.
При параметрическом задании поверхности первый аргумент представляет собой список трех функций двух переменных. Следующие два аргумента, как и в случае явного задания поверхности, определяют диапазон изменения переменных. Разумеется, при параметрическом задании поверхности также можно использовать дополнительные опции команды plot3d.
В приводимом ниже примере мы из соображений наглядности повернули изображение части сферы уже после того, как оно было построено. Для этого мы сначала просто активизировали соответствующий графический объект, щелкнув на нем мышкой, а затем вновь с помощью мыши придали ему нужное положение. Кроме того мы обесцветили рисунок, используя опции lightmodel и color, и установили масштаб изображения 1:1.
>
Богатые графические возможности Maple не исчерпываются рассмотренными примерами. После подгрузки специализированных пакетов (о том, как это делается, речь пойдет ниже) программа может изображать многоугольники и многогранники, пространственные кривые, графы, фазовые портреты дифференциальных уравнений, производить анимацию изображений и т.д.
Использование пакетов
В состав Maple входит большое число специализированных пакетов, ориентированных, как правило, на конкретные разделы математики. Подгрузка пакета осуществляется с помощью команды with, аргументом которой служит имя пакета:
>
Нередко пакеты содержат функции, называющиеся так же, как функции, входящие в ядро Maple, но отличающиеся от них. В таких случаях после подгрузки пакета содержащиеся в них функции получают более высокий приоритет по сравнению со своими "тезками". В нашем примере система предупредила нас, что после подключения пакета линейной оптимизации будет действовать новое определение функций maximize и minimize .
В качестве результата успешного выполнения команды with Maple выводит на дисплей (курсивом в квадратных скобках) перечень функций, ставших доступными после активизации пакета.
Нередко пользователю нужны не все функции пакета, а лишь незначительная их часть. В этих случаях для экономии оперативной памяти компьютера полезно использовать команду with с несколькими аргументами. При этом первый из них по-прежнему будет означать имя подключаемого пакета, а остальные - имена тех функций пакета, которые следует подгрузить. Например, вместо нескольких десятков функций, входящих в состав пакета по теории чисел, можно подключить лишь несколько функций, интересующих пользователя в текущий момент:
>
Возможно и "одноразовое" использование функции из специализированного пакета без сохранения ее в оперативной памяти после обращения. Для такого вызова необходимо указать имя пакета, сопроводив его именем вызываемой функции, заключенным в квадратные скобки:
>
При повторном вызове функции определителя (без указания пакета линейной алгебры, в котором она хранится). Maple "забыл", что такое det и посчитал ее пользовательской функцией.
Следует иметь в виду, что некоторые функции, "приписанные" к тем или иным специализированным пакетам, на самом деле доступны из ядра Maple. Таковы, например, функции ifactor, isolve, isprime, ithprime , nextprime и prevprime из пакета numtheory, matrix и vector из пакета linalg, инертные функции из пакета student . Учет этой особенности позволит экономнее использовать оперативную память компьютера и в конечном итоге ускорить вычисления.[2]
Заключение
Таким образом, мы познакомились с программным пакетом Maple, который по праву считается одним из наиболее мощных математических пакетов Его возможности охватывают достаточно много разделов математики - это видно по всему перечисленному ранее, и могут с пользой применяться на разных уровнях, включая и уровень серьезных научных исследований.
Список использованной литературы
1. http://www.bankreferatov.ru/referats/B44472750A2AF92F43257B2D002439D9/referat_paket_simvol%27nykh_vychislenii_maple_v.doc.html
2. http://mif.vspu.ru/books/mapletut/index.html
3.https://ru.wikipedia.org/wiki/Maple
Приложение
Циклы
Для организации повторяющихся вычисленией в Maple предусмотрены две формы оператора цикла: for-from и for-in. Первый оператор цикла является универсальным и включает в себя как циклы, повторяющиеся заданное число раз, так и циклы, выполняющиеся, пока некоторое булево выражение является истинным. Вторая форма цикла for реализует цикл по элементам списка или множества, и в других языках программирования он известен как цикл for-each.
Цикл for-from задается следующим образом:
|for имя| |from выражение1| |by выражение2| |to выражение3| |while булево выражение|
do ( последовательность операторов) end do;
имя - имя управляющей переменой цикла,
выражение1, выражение2, выражение3- выражения, задающие начальное значение переменной name, шаг ее изменения и конечное значение переменной name,
булево выражение - выражение, задающее условие, пока будет выполняться цикл (набор объектов между словами do и end do).
В ходе выполнения цикла управляющая переменная меняется от значения выражение1 до значения выражение3 с шагом, заданным выражение2. Если блок by отсутствует, то управляющая переменная будет меняться с шагом +1 при выражение1>выражение3. Выполнение цикла в обратном порядке, когда выражение1<выражение3 не предусмотрено.
Цикл можно прервать с помощью дополнительного блока while. Цикл с таким блоком просчитывается до тех пор, пока истинно булево выражение, стящее после ключевого слова while.
В последнем примере, обратите внимание, тело цикла является пустым.
При задании оператора цикла for-from обязательным является только блок do, определяющий тело цикла, причем он может быть единственным блоком цикла:
do последовательность операторов end do
Подобная конструкция определяет бесконечный цикл, прервать выполнение которого может только один из операторов: break, return, quit или возникновение ошибки.
Все остальные блоки цикла for-from являются необязательными и могут задаваться в произвольном порядке за одним исключением: если присутствует блок for, то он должен быть задан первым. Если какой-либо блок не задан, то его параметры по умолчанию принимают следующие значения:
for - фиктивная переменная
from - 1
by - 1
to - infinity
while - true
Если в операторе цикла отсутствуют все необязательные блоки за исключением блока while, то получается классический цикл while с предусловием: сначала проверяется истинность булева выражения условия, а затем, в зависимости от результатов проверки, либо выполняются операторы тела цикла (условие истинно), либо цикл завершает свою работу (условие ложно).
При использовании цикла while надо внимательно следить за тем, чтобы в теле цикла изменялись переменные, входящие в выражение условия, так как иначе цикл будет выполняться бесконечно.
Циклы могут быть вложенными. Это иллюстрирует следующий пример, в котором сначала создается пустая матрица, а затем определяются значения её элементов.
> M:=array(1..3,1..3):
> for i to 3 do for j to 3 do
> M[i,j]:=i^2-j^2 end do end do;
> print(M);
[0 -3 -8]
[ ]
[3 0 -5]
[ ]
[8 5 0]
> evalm(M);# Другой способ вывода матрицы
[0 -3 -8]
[ ]
[3 0 -5]
[ ]
[8 5 0]
Цикл for-in организует цикл по элементам объекта, который может быть представлен последовательностью, списком, множеством, суммой, произведением или строкой. Его общий синтаксис имеет вид:
|for имя| |inвыражение1| |while(булево выражение)| do последовательность операторов od;
Переменная цикла name, определяемая в блоке for...in, последовательно принимает значения операндов объекта, как они оперделяются командой op( ). Цикл выполняется столько раз, сколько операндов задано в объекте, если только булево выражение в необязательном блоке while не станет ложным раньше, чем будут последовательно перебраны все операнды объекта. В цикле данного вида переменная может меняться произвольно, принимая убывающие и отрицательные значения.
Размещено на Allbest.ru
Подобные документы
Характеристика, свойства и возможности программного пакета Maple. Применение аналитических, численных, графических возможностей системы Maple для моделирования физических явлений. Использование графики и анимации в системе Maple в педагогическом процессе.
курсовая работа [1,5 M], добавлен 12.01.2016Сущность Maple, предназначение пакета и его использование. Разделение рабочего поля, переключение командной строки в текстовую. Работа Maple с целыми числами, константами, радикалами и числами с плавающей точкой. Элементарные математические функции.
презентация [1,6 M], добавлен 29.04.2019Дискретная минимаксная задача с ограничениями на параметры. Применение решений минимаксных задач в экономике с помощью математического пакета Maple. Математические пакеты Maple и Matlab. Основные средства решения минимаксных задач в среде Марle-языка.
курсовая работа [2,2 M], добавлен 17.06.2015Команды преобразования выражений, используемые в системе Maple, их назначение и принцип действия, отличия активной и пассивной формы. Команда simplify () для упрощения выражений, случаи ее применения. Разложение полинома на множители: factor ().
лабораторная работа [57,8 K], добавлен 15.07.2009Алгебраїчні перетворення в Maple за допомогою вбудованих функцій елементарних перетворень. Позбавлення від ірраціональності в знаменнику. Побудування графіку функції в пакеті Maple-8. Пакет plottools – пакет для створення та роботи з графічними об’єктами.
контрольная работа [2,4 M], добавлен 18.07.2010Информационные и коммуникационные технологии в школьном обучении, сравнительный анализ технических и программных средств; Maple - язык и его синтаксис. Создание библиотеки процедур с помощью программы Maple к уроку информатики по теме "Кодирование звука".
дипломная работа [351,4 K], добавлен 26.04.2011Разработка имитационной модели для изучения движения нелинейного маятника с графическим отображением в ГИС Maple в режиме функционирования системы наблюдений без задержки времени. Гармонические и периодические колебания маятника. Теорема Гюйгенса.
курсовая работа [1,3 M], добавлен 29.05.2014Вопросы программирования в Maple версий 6-11 и разработка приложений. Рассматривает эффективные приемы программирования и разработки приложений для многих разделов техники, математики, физики, для решения которых пакет не имеет стандартных средств.
монография [4,8 M], добавлен 13.03.2008Раскрытие понятия "системы компьютерной математики", история ее развития. Внутренняя архитектура и составляющие СКМ. Основные принципы работы системы Maple. Ее возможности для решения линейных и нелинейных уравнений и неравенств. Применение функции solve.
курсовая работа [189,4 K], добавлен 16.09.2017Прикладной математический пакет Maple. Набор инструментов для работы с дифференциальными уравнениями в частных производных. Метод разделения переменных. Метод функций Грина. Построение формального решения на входном Maple-языке. Основные типы операций.
курсовая работа [193,2 K], добавлен 03.08.2012