Книга является справочником и руководством пользователя по новейшим системам символьной (аналитической) математики - Maple 9.5 и Maple 10. Это признанные мировые лидеры в области аналитических вычислений, прошедшие серьезную сертификацию в этой области. Кратко описан интерфейс систем и подробно их обширные возможности в математике, физике и образовании. Особое внимание уделено технике практических вычислений и визуализации их результатов, а также решению дифференциальных уравнений различного типа. Описаны средства символьных и численных вычислений, графические и программные возможности систем, пакеты их расширения, маплеты и практика применения Maple в математических и физических расчетах. Прилагаемый CD-ROM содержит более 340 файлов с примерами вычислений. Для научно-технических работников, студентов и преподавателей университетов и вузов.
Содержание:
Предисловие 1
Благодарности и адреса 2
Глава 1 - Основы работы с Maple 9.5/10 2
Глава 2 - Типы данных и работа с ними 23
Глава 3 - Работа с математическими выражениями и функциями 31
Глава 4 - Практика математического анализа 47
Глава 5 - Анализ функциональных зависимостей и обработка данных 66
Глава 6 - Решение задач линейной алгебры, оптимизации и регрессии 87
Глава 7 - Решение дифференциальных уравнений 97
Глава 8 - Визуализация вычислений 109
Глава 9 - Пакеты расширения Maple специального назначения 122
Глава 10 - Типовые средства программирования 128
Глава 11 - Maple в математическом моделировании 140
Список литературы 149
Maple 9.5/10 в математике, физике и образовании
Предисловие
В последние полтора десятка лет возникло и получило бурное развитие новое фундаментальное научное направление - компьютерная математика [1], которое зародилось на стыке математики и информатики. Первыми серьезными средствами для автоматизированного выполнения массовых научно-технических расчетов стали программируемые микрокалькуляторы [2, 3]. С появлением персональных компьютеров их стали широко применять для численных расчетов, программируемых на языках высокого уровня, например, Фортране, Си, Бейсике или Форте [4–6]. Однако все большее распространение получают аналитические (символьные) вычисления, обладающие гораздо большей общностью, чем численные вычисления.
Предвестником появления систем компьютерной математики стали специализированные программы для математических численных расчетов, работающие в среде Microsoft MS-DOS. Это Eureka [7], Mercury, Mathcad [8] и MATLAB [10] под операционную систему MS-DOS. Казалось бы это было совсем недавно - в начале 90-х годов ушедшего столетия. Вслед за этим, на основе достижений компьютерной математики, были разработаны новейшие программные системы символьной математики или компьютерной алгебры (СКА). Среди них наибольшую известность получили системы Mathcad под Windows [9], Derive [11–13]. Mathematica [14-16] и Maple [17-27] и др.
Хотя множество (и даже большинство) математических задач решается с помощью СКМ без программирования, это не означает отказ от программирования вообще. Напротив, все СКМ, в частности Maple 9.5/10, имеют довольно развитый язык программирования, содержащий типовые средства процедурного программирования, например управляющие структуры, циклы, операторы ввода/вывода и т.д.
В последнее время такие языки включают в себя средства визуально-ориентированного программировании пользовательского интерфейса - в Maple 9.5/10 эти средства названы маплетами (maplets). Есть одно весьма важное обстоятельство в современной реализации этих средств - многие маплеты обеспечивают пошаговое решение математических задач с демонстрацией промежуточных результатов вычислений. Это именно то, что давно требовалось от СКМ в образовании и чего они не давали. Теперь подобное решение задач стало возможным и существенно повышает значение систем Maple 9.5/10 в образовании.
СКМ широко используются для научных расчетов [28–34], в том числе в Интернете [35] и в мобильных вычислениях [36]. Но особенно велика роль систем компьютерной математики в образовании - они становятся не только удобным инструментальным средством для выполнения огромного числа учебных расчетов, но и средством предоставления учащимся, а нередко и педагогам, знаний в области математики, физики и в иных науках, использующих математические методы. Трудно переоценить и их роль в подготовке высококачественных электронных уроков, учебных курсов и книг.
Системы класса Maple были созданы группой ученых, занимающихся символьными вычислениями (The Symbolic Group), организованной Кейтом Геддом (Keith Geddes) и Гастоном Гонэ (Gaston Gonnet) в 1980 году в университете Waterloo, Канада. Вначале система Maple была реализована на больших компьютерах и прошла долгий путь апробации, вобрав в свое ядро и библиотеки большую часть математических функций и правил их преобразований, выработанных математикой за столетия развития. Есть реализации программы на платформах ПК Macintosh, Unix, Sun и др.
Системам класса Maple во всем мире посвящены многие сотни книг. Достаточно полный список книг по системам Maple можно найти на недавно обновленном сайте разработчика этой системы - компании Waterloo Maple Software (). Среди них все предшествующие книги из автора - рис. 0.1. С системой поставляются книги [39-52], которые являются ее фирменным описанием.
Рис. 0.1. Книги по системе Maple на Интернет-странице русскоязычных книг сайта корпорации MapleSoft
Новая книга имеет ряд важных отличий перед прежними книгами автора по системам класса Maple:
• она посвящена новейшим реализациям системы Maple 9.5/10 и является первой книгой по этим новым реализациям;
• книга обобщает многочисленные материалы прежних книг автора (прежде всего [23]), справок, пакетов расширения и материалов, размещенных в Интернете, и добавляет к этому ряд новых и оригинальных примеров применения системы;
• к книге прилагается CD-ROM, на котором записаны программные коды всех примеров, описанных в книге (свыше 340 файлов);
• описаны новые возможности интерфейса пользователя - как в классическом, так и в стандартном (новом) варианте;
• резко расширено описание маплет-средств визуально-ориентированного программирования (Maplets) и ассистентов по различным видам вычислений;
• описан новый пакет оптимизации Optimization, обеспечивающий оптимизацию методами линейного, квадратичного и нелинейного программирования, а также выполнение нелинейной регрессии;
• описан ряд новых пакетов расширения системы (CodeGeneration, Calculus1 и др.);
• описаны консультанты (Advisors) по функциям и дифференциальным уравнениям;
• описаны многочисленные ассистенты (Assistants) по различным видам вычислений;
• существенно расширены разделы по решению дифференциальных уравнений, в частности жестких систем, уравнений с двойными краевыми условиями, уравнений динамики популяций, дифференциальных уравнений в частных производных с заданными граничными условиями и др.;
• расширено описание применения научных констант и возможностей пакетов векторного анализа и функциям теории поля;
• впервые дано описание интеграции системы Maple 9.5/10 с новейшей версией мощной матричной системы MATLAB 7.0 Service Pack 2;
• все примеры книги прошли тестирование в новой реализации системы Maple 9.5;
• книгу могут использовать (за редкими исключениями) и пользователи Maple 8/9;
• книга является справочным руководством по решению математических, физических и научно-технических задач средствами систем Maple 9.5/10.
В тоже время книга никоим образом не подменяет огромную по размеру англоязычную справочную систему Maple 9.5/10 и не является ее переводом.
Книга предполагает, что читатель знаком с высшей математикой в объеме вузовского или университетского курсов и потому содержит минимум учебного и справочного материала по математике. Такой материал можно найти в книгах [37-46] и во многих других. Считается, что читатель знаком и с работой на персональном компьютере хотя бы в среде операционных систем Windows 95/98/NT/2000/ХР. Если это не так, то стоит обратиться к книгам автора [36, 47, 48] или ко многим другим книгам, которые, к счастью, ныне имеются в изобилии в книжных магазинах.
Благодарности и адреса
Особую благодарность автор выражает представителя корпорации Waterloo Maple г-ну Ph. D. Jason Schattman и г-же Donna Watterworth за любезно представленные программные продукты и документацию, а также сотрудникам вычислительного центра заочного университета города Хагена (Германия), обратившим внимание одного из авторов (В. Дьяконова) на систему Maple V еще в самом начале ее появления на персональных компьютерах и предоставившим ее первую реализацию.
Автор благодарен и главному конкуренту фирмы Waterloo Maple Software - корпорации Wolfram Research Inc. (США), создавшей систему Mathematica, за предоставленную возможность длительной научной стажировки в этой фирме в октябре-ноябре 2000 года. Во время этой стажировки автор по новому увидел роль и значение современных систем компьютерной математики и оценил возможности их интеграции.
Отзывы и замечания по данной книге можно отправлять автору по адресу его электронной почты vpdyak@keytown.com и по адресу издательства, выпустившему данную книгу. К фирме Waterloo Maple Inc. можно обращаться по адресу:
Waterloo Maple Inc., 57 Erb Street-West, Waterloo, ON, Canada N2L 6C2.
E-mail: support@maplesoft.com.
Phone: (519) 747-2505.
Fax: (519) 747-5284.
Глава 1
Основы работы с Maple 9.5/10
Эта глава является кратким вводным курсом по новейшим системам компьютерной алгебры (СКА) Maple 9.5/10. Поскольку версия Maple 9.5 у нас распространена больше, чем Maple 10, основное описание в этой главе относится к Maple 9.5, а для Maple 10 приводится достаточно полное описание только ее новых и отличительных возможностей. Разумеется, все возможности Maple 9.5 присущи и Maple 10.
1.1. Краткая характеристика систем класса Maple
1.1.1. Назначение и место систем Maple 9.5/10
Системы класса Maple были созданы корпорацией Waterloo Maple, Inc. (Канада) как системы компьютерной алгебры (СКА) с расширенными возможностями в области символьных (аналитических) вычислений. Уже первые версии системы Maple V показали себя лидерами в области символьных вычислений. Ядро и встроенные пакеты расширения этих систем насчитывали до 3000 встроенных функций для выполнения различных вычислений и символьных преобразований. В дальнейшем число функций, правда довольно медленно, увеличивалось от версии к версии и в версиях Maple 9.5/10 уже превышает 3500.
Версия Maple 9.5, появившаяся на рынке летом 2004 г., позиционируется как универсальная система компьютерной математики, рассчитанная на широкого пользователя. Система содержит средства для выполнения быстрых численных расчетов, лежащих в основе математического моделирования различных явлений окружающего нас мира, систем и устройств самого различного назначения. Все это сочетается с новейшими и весьма эффектными средствами визуализации вычислений. В силу этого системы перешли в категорию универсальных систем компьютерной математики (СКМ).
Maple - типичная интегрированная программная система. Она объединяет в себе:
• мощный язык программирования (он же язык для интерактивного общения с системой);
• редактор для подготовки и редактирования документов и программ;
• современный многооконный пользовательский интерфейс с возможностью работы в диалоговом режиме;
• мощную справочную систему со многими тысячами примеров;
• словарь математических понятий и терминов с алфавитной организацией;
• ядро алгоритмов и правил преобразования математических выражений;
• численный и символьный программные процессоры;
• систему диагностики;
• библиотеки встроенных и дополнительных функций;
• пакеты расширения как встроенные, так и сторонних производителей;
• средства поддержки некоторых языков программирования и интеграции с широко распространенными программами.
Ко всем этим средствам имеется полный доступ прямо из окна программы, реализованный командным режимом работы. Система Maple прошла долгий путь развития и апробации. Она реализована на больших ЭВМ, рабочих станциях Sun, ПК, работающих с операционной системой Unix, ПК класса IBM PC, Macintosh и др. Все это самым положительным образом повлияло на ее отработку и надежность (в смысле высокой вероятности правильности решений и отсутствия сбоев в работе).
1.1.2. Структура систем Maple 9.5/10
Основой для работы с символьными преобразованиями в Maple является ядро системы. Оно содержит многие сотни базовых функций и алгоритмов символьных преобразований. Ядро системы улучшается от версии к версии.
В новейших версиях Maple 9.5/10 в ядре исправлены многие недостатки, выявленные в ходе обширного и поистине всемирного тестирования предшествующих версий.
Впрочем, новые версии системы Maple имеют и новые ошибки, а порою в них всплывают устраненные в предшествующих реализациях системы ошибки и недочеты. Такова, увы, реальность разработки столь сложных программных продуктов, как Maple 9.5/10. Отдельные факты такого рода в данной книге приводятся, однако основное внимание в ней уделено описанию и развитию возможностей систем Maple 9.5/10, а не поиску в них отдельных погрешностей и недостатков. Как говорят "и на солнце есть пятна".
В Maple имеется также основная библиотека операторов, команд и функций-процедур. Многие встроенные в нее функции, как и функции ядра, могут использоваться без какого-либо объявления, другие нуждаются в объявлении. Кроме того, имеется ряд подключаемых проблемно-ориентированных пакетов (packages), тематика которых охватывает множество разделов классической и современной математики.
Дополнительные функции из пакетов могут применяться после объявления подключения пакета с помощью команды with(name), где name - имя применяемого пакета.
Обширные возможности СКМ, включая СКА, в решении математических задач придают им функции не только суперкалькуляторов, но и мощных электронных справочников по математике и математическим расчетам. Они способны заменить многие обычные справочники, например огромный фолиант [38]. Так, электронные справочники, имеющиеся в составе Maple 9.5/10, обладают рядом очевидных достоинств:
• они вмещают в себя объемы информации эквивалентные порой десяткам книг;
• аккумулируют знания, полученные за многие тысячелетия развития математики;
• имеют безупречное оформление документов (цветные тексты и иллюстрации, всевозможные выделения, качественные иллюстрации и т.д.);
• имеют разную организацию оглавления (индексную, по контексту и т.д.);
• отличаются очень быстрым поиском нужной информации по ряду критериев;
• имеют "живые" примеры, которые можно изменять в ходе просмотра справочных данных;
• справочные материалы могут сопровождаться звуковыми и видеокомментариями;
• позволяют готовить высококачественные и наглядные уроки не только по любым разделам математики, но и по многим дисциплинам, базирующимся на применении математического аппарата их описания;
• позволяют быстро размножить интересующие пользователя материалы;
• обладают возможностью коррекции и пополнения из сети Internet.
В Maple 9.5/10 включен обширный пакет расширения для студентов Student, большой набор наглядных инструментов по высшей математике, реализованный в окнах графического интерфейса пользователя (GUI) и встроенный обширный справочник по математическим понятиям, содержащий более 5000 разделов и более 300 диаграмм. Резко увеличено число комплексных примеров применения и Maplets-приложений (приложений на основе графического интерфейса пользователя). Это делает Maple перспективной системой для решения учебных задач.
Современные СКМ, включая Maple, позволяют готовить и распечатывать документы высочайшего полиграфического качества, затрачивая на это куда меньше времени, чем популярные у математиков редакторы класса ТеХ или LaTeX. Впрочем, системы Maple и Mathematica прекрасно сожительствуют с этими редакторами и позволяют представлять данные в характерном для них формате.
Центральное место в структуре Maple занимает ядро системы, которое состоит из множества заранее откомпилированных функций и процедур, представленных в машинных кодах и обеспечивающих достаточно представительный набор встроенных функций и операторов системы. Спецификой СКА является наличие в ядре множества правил преобразований математических выражений и функций и их определений в символьном виде.
Ядро СКМ тщательно оптимизируется, поскольку от этого зависит скорость вычислений, обеспечиваемых той или иной системой компьютерной математики. Этому способствует и компиляция ядра. Доступ в ядро пользователя для его модификации, как правило, исключен. Объем ядра достигает нескольких мегабайт. Пишется ядро на языке реализации системы - в Maple это язык С.
Поставка ядра в исходных кодах (на языке реализации) не практикуется. Нередко улучшенные алгоритмы вычислений ядра являются ноу-хау разработчиков и относятся к разряду секретных данных. Пожалуй, это один из главных недостатков СКМ.
Интерфейс это совокупность аппаратных и программных средства для работы ПК с внешним оборудованием и пользователем. Интерфейс пользователя СКА в настоящее время почти исключительно является графическим и сокращенно именуется GUI (Graphics User Interface). Она наследует принципы построения интерфейса в операционных системах класса Windows.