Министерство образования Республики Беларусь
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
«ГРОДНЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИМЕНИ ЯНКИ КУПАЛЫ»
МЕЖДУНАРОДНАЯ АКАДЕМИЯ НООСФЕРЫ
Балтийское отделение
В.З. АЛАДЬЕВ, В.К. БОЙКО, Е.А. РОВБА
М о н о г р а ф и я
Гродно – Таллинн 2007
Аладьев В.З. Программирование и разработка приложений в Maple: монография /
В.3. Аладьев, В.К. Бойко, Е.А. Ровба.– Гродно: ГрГУ; Таллинн: Межд. Акад. Ноосферы, Балт. отд.– 2007, 458 с., ISBN 978-985-417-891-2 (ГрГУ), ISBN 978-9985-9508-2-1 (МАНУР)
Монография вводит в программную среду известного математического пакета Maple, представляющего собой одну из наиболее развитых современных систем компьютерной алгебры. Данное исследование – достаточно детальное введение в среду встроенного Maple-языка программирования, позволяющего пользователю не только четко представить все возможности пакета, но и разрабатывать в его среде сложные приложения для многих разделов техники, математики, физики, химии и других естественнонаучных дисциплин, для решения которых пакет не имеет стандартных средств. При этом, язык Maple может оказаться весьма эффективным средством в системе преподавания указанных дисциплин. Именно в данном направлении он может получить свое не меньшее признание, чем у многочисленных исследователей естественнонаучных дисциплин, использующих математические методы.
Представленный в монографии материал покрывает практически все основные функциональные возможности Maple-языка с иллюстрацией целого ряда как их наиболее массовых приложений при решении широкого круга математических задач, так и наиболее интересных особенностей, позволяющих использовать их нестандартным образом, расширяя тем самым потенциал встроенного Maple-языка; целый ряд рассмотренных приемов может оказаться полезным при формировании эффективной концепции программирования в его среде.
Все это делает книгу полезным пособием по пакету Maple как для студентов, так и для профессионалов из различных фундаментальных и прикладных областей современного естествознания. В свете вышеизложенного Maple можно рассматривать в качестве достаточно хорошо сбалансированной интегрированной среды для выполнения разнообразных вычислений, работы с графическими объектами и для программирования на высокоуровневом процедурном языке, прежде всего, задач, носящих математический характер с акцентом на символьных (алгебраических) вычислениях.
Монография является одним из немногих изданий по программированию в среде пакета Maple, что и определяет ее место среди исследований по программным средствам для ПК, использующих операционную среду Windows. Вместе с тем мобильность пакета позволяет использовать его многими другими популярными платформами. Монография рассчитана на достаточно широкий круг специалистов, использующих в своей профессиональной деятельности ПК для решения задач математического характера, а также на студентов и учащихся, изучающих курс «Основы информатики и вычислительной техники» физико-математических и других естественнонаучных специальностей соответствующих университетов и колледжей.
Настоящая монография представляет собой авторский оригинал-макет мастер-классов по программированию в среде Maple, проведенных в ряде университетов Прибалтики и СНГ. Данное издание может быть полезно пользователям Maple, чьи задачи требуют непосредственного программирования приложений в среде пакета.
Рецензент: доктор физико-математических наук, профессор А.Н. Дудин
ISBN 978-985-417-891-2 (ГрГУ) © Аладьев В.З. (Таллинн)
ISBN 978-9985-9508-2-1 (МАНУР) Бойко В.К., Ровба Е.А. (Гродно), 2007
Maple V, Maple 6, Maple 7, Maple 8, Maple 9, Maple 10 – торговые марки MapleSoft Inc.
Предисловие 5
Глава 1. Базовые сведения по Maple-языку пакета 21
1.1. Базовые элементы Maple-языка пакета 23
1.2. Идентификаторы, предложения присвоения и выделения Maple-языка 30
1.3. Средства Maple-языка для определения свойств переменных 42
1.4. Типы числовых и символьных данных Maple-языка пакета 45
1.5. Базовые типы структур данных Maple-языка 51
1.6. Средства тестирования типов данных, структур данных и выражений 80
1.7. Конвертация Maple-выражений из одного типа в другой 89
1.8. Функции математической логики и средства тестирования пакета 93
Глава 2. Базовые управляющие структуры Maple-языка пакета 106
2.1. Предварительные сведения общего характера 106
2.2. Управляющие структуры ветвления Maple-языка (if-предложение) 108
2.3. Циклические управляющие структуры Maple-языка (while_do-предложение) 111
2.4. Специальные типы циклических управляющих структур Maple-языка 115
Глава 3. Организация механизма процедур в Maple-языке пакета 118
3.1. Определения процедур в Maple-языке и их типы 119
3.2. Формальные и фактические аргументы Maple-процедуры 126
3.3. Локальные и глобальные переменные Maple-процедуры 131
3.4. Определяющие параметры и описания Maple-процедур 138
3.5. Механизмы возврата Maple-процедурой результата ее вызова 150
3.6. Средства обработки ошибочных и особых ситуаций в Maple-языке 156
3.7. Расширенные средства Maple-языка для работы с процедурами 167
3.8. Расширение функциональных средств Maple-языка пакета 176
3.9. Иллюстративные примеры оформления Maple-процедур 184
3.10. Элементы отладки Maple-процедур и функций 205
Глава 4. Организация программных модулей в Maple-языке 213
4.1. Вводная часть 213
4.2. Организация программных модулей Maple-языка 216
4.3. Сохранение процедур и программных модулей в файлах 227
Глава 5. Средства Maple-языка для работы с данными и структурами строчного, символьного, списочного, множественного и табличного типов 235
5.1. Средства работы Maple-языка с выражениями строчного и символьного
типов 235
5.2. Средства работы Maple-языка с множествами, списками и таблицами 249
5.3. Алгебраические правила подстановок для символьных вычислений 265
5.4. Средства Maple-языка для обработки алгебраических выражений 273
5.5. Управление форматом вывода результатов вычисления выражений 305
Глава 6. Средства ввода/вывода Maple-языка 311
6.1. Средства Maple-языка для работы с внутренними файлами пакета 311
6.2. Средства Maple-языка для работы с внешними файлами данных 321
6.2.1. Открытие, закрытие и удаление внешних файлов любого типа 327
6.2.2. Средства обработки особой ситуации «конец файла» доступа к файлам 331
6.2.3. Обработка особых и ошибочных ситуаций процедур доступа к файлам 333
6.3. Базовые средства Maple-языка для обеспечения доступа к внешним
файлам данных TEXT-типа 335
6.3.1. Базовые средства доступа к файлам данных на уровне Maple-выражений 340
6.4. Средства Maple-языка для обеспечения доступа к внешним файлам данных
BINARY-типа 343
6.5. Обеспечение форматированного доступа к внешним файлам данных 345
Глава 7. Графические средства Maple-языка пакета 352
7.1. Графическая интерпретация алгебраических выражений и уравнений
в среде Maple-языка 352
7.2. Двухмерное представление функциональных зависимостей и данных
в среде Maple-языка 354
7.3. Трехмерное представление функциональных зависимостей и данных
в среде Maple-языка 373
7.4. Создание графических объектов на основе базовых примитивов 383
Глава 8. Создание и работа с библиотеками пользователя 392
8.1. Классический способ создания Maple-библиотек 393
8.2. Специальные способы создания библиотек пользователя в среде Maple 415
8.3. Создание пакетных модулей пользователя 426
8.4. Статистический анализ Maple-библиотек 436
9. Средства Maple, не рассматриваемые в настоящей книге,
но полезные для приложений 444
Заключение 443
Литература 448
Справка по авторам 453
Системы компьютерной алгебры (СКА) находят все более широкое применение во многих областях науки таких как математика, физика, химия, информатика и т.д., техники, технологии, образовании и т.д. СКА типа Maple, Mathematica, MuPAD, Macsyma, Reduce, Axiom и Magma становятся все более популярными для решения задач преподавания математически ориентированных дисциплин, как в научных исследованиях, так и в промышленности. Данные системы являются мощными инструментами для ученых, инженеров и педагогов. Исследования на основе СКА-технологии, как правило, сочетают алгебраические методы с продвинутыми вычислительными методами. В этом смысле СКА – междисциплинарная область между математикой и информатикой, в которой исследования сосредотачиваются как на разработке алгоритмов для символьных (алгебраических) вычислений и обработки на компьютерах, так и на создании языков программирования и программной среды для реализации подобных алгоритмов и базирующихся на них проблем различного назначения.
В серии наших работ [1-20,22-33,39,41-46,47,49,50,91,103] довольно детально рассмотрены такие математические пакеты как Maple, Reduce, MathCAD, Mathematica. При этом, особое внимание нами уделелялось особенностям каждого из пакетов, его преимуществам, а также недостаткам, эффективным приемам и методам программирования в его среде, созданию набора средств, расширяющих его возможности, а также выработке системы предложений по его дальнейшему развитию. Наш опыт апробации и использования четырех математических пакетов Mathematica, Reduce, Maple, MathCAD в различных математических и физических приложениях позволяет нам рассматривать именно пакеты Maple и Mathematica в качестве бесспорных лидеров (на основе специального обобщенного индекса) среди всех известных на сегодня современных СКА. При этом, мы предпочитаем именно пакет Maple (несмотря на все его недостатки и недоработки) из-за целого ряда преимуществ, среди которых особо следует выделить такие как развитые графические средства, достаточно эффективные средства решения систем дифференциальных уравнений, средства создания графических интерфейсов пользователя, мощная библиотека математических функций, большой набор сопутствующих пакетных модулей для различных приложений, современный встроенный язык программирования (4GL) интерпретирующего типа, интерфейс с рядом других Windows-приложений, перспективная концептуальная поддержка.