Maple 9.5/10 в математике, физике и образовании
Предисловие
В последние полтора десятка лет возникло и получило бурное развитие новое фундаментальное научное направление —
Предвестником появления систем компьютерной математики стали специализированные программы для математических численных расчетов, работающие в среде Microsoft MS-DOS. Это Eureka [7], Mercury, Mathcad [8] и MATLAB [10] под операционную систему MS-DOS. Казалось бы это было совсем недавно — в начале 90-х годов ушедшего столетия. Вслед за этим, на основе достижений компьютерной математики, были разработаны новейшие программные системы
Хотя множество (и даже большинство) математических задач решается с помощью СКМ без программирования, это не означает отказ от программирования вообще. Напротив, все СКМ, в частности Maple 9.5/10, имеют довольно развитый язык программирования, содержащий типовые средства процедурного программирования, например управляющие структуры, циклы, операторы ввода/вывода и т.д.
В последнее время такие языки включают в себя средства визуально-ориентированного программировании пользовательского интерфейса — в 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 (www.maplesoft.com). Среди них все предшествующие книги из автора — рис. 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-mainame = "note" 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 — типичная интегрированная программная система. Она объединяет в себе:
• мощный язык программирования (он же язык для интерактивного общения с системой);
• редактор для подготовки и редактирования документов и программ;
• современный многооконный пользовательский интерфейс с возможностью работы в диалоговом режиме;
• мощную справочную систему со многими тысячами примеров;
• словарь математических понятий и терминов с алфавитной организацией;
• ядро алгоритмов и правил преобразования математических выражений;
• численный и символьный программные процессоры;
• систему диагностики;
• библиотеки встроенных и дополнительных функций;
• пакеты расширения как встроенные, так и сторонних производителей;
• средства поддержки некоторых языков программирования и интеграции с широко распространенными программами.
Ко всем этим средствам имеется полный доступ прямо из окна программы, реализованный
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 это язык С.
Поставка ядра в исходных кодах (на языке реализации) не практикуется. Нередко улучшенные алгоритмы вычислений ядра являются ноу-хау разработчиков и относятся к разряду секретных данных. Пожалуй, это один из главных недостатков СКМ.
Функции и процедуры (в понятии языков программирования), включенные в откомпилированное ядро, выполняются предельно быстро. С этой точки зрения в ядро было бы выгодно включать как можно больше вычислительных средств. Однако это невольно приводит к замедлению поиска нужных средств из-за возрастания их числа, увеличению времен загрузки ядра и поиска нужных его средств и к другим нежелательным последствиям. Поэтому объем ядра ограничивают, но к нему добавляют
Кардинальное расширение возможностей систем и их адаптация к решаемым конкретными пользователями задачам достигается за счет
Ядро, библиотеки, пакеты расширения и справка в Maple аккумулируют знания в области математики, накопленные за тысячелетия ее развития. К сожалению, справка, самоучители и словарь семантических терминов в Maple 9.5/10 написаны на английском языке, что затрудняет их использование нашими пользователями.
1.1.3. Язык программирования систем класса Maple
Система Maple, интегрирует в себе три языка:
• входной или язык общения с системой;
• реализации;
• программирования.
В состав СКА входит также язык программирования. Так, Maple имеет свой язык процедурного программирования — Maple-язык [51, 52]. Этот язык содержит вполне традиционные средства структурирования программ. Он описан в Главе 10 и включает в себя все команды и функции входного языка в том числе графические.
В новые реализации Maple 9.5/10 добавлены маплет-средства (Maplets) для создания визуально-ориентированного диалога с системой, включающие в себя задание множества диалоговых окон и иных типовых средств интерфейса GUI, привычного пользователям Windows-приложений. Однако даже обычные средства диалога у систем класса Maple обеспечивают высокую наглядность и комфортность работы с системой при решении математических задач.
Языком реализации системы Maple является один из самых лучших и мощных универсальных языков программирования — С. На нем написано ядро системы, содержащее тщательно оптимизированные процедуры. Большинство же функций, которые содержатся в библиотеках расширения системы Maple, написаны на Maple-языке, благодаря чему их можно модифицировать и даже писать свои собственные библиотеки. По разным оценкам, лишь от 5 до 10 % средств Maple создано на языке реализации — все остальное написано на Maple-языке.
Для подготовки программ на языке Maple могут использоваться внешние редакторы, но система имеет и свой встроенный редактор, вполне удовлетворяющий требованиям большинства пользователей. Он открывается командами New и Open в меню File. Этот редактор можно использовать для редактирования файлов программ или математических выражений. Версии Maple для MS-DOS имеют свой редактор программ и отладчик с функциями проверки синтаксиса. После версии Maple V для Windows необходимость в этих средствах практически отпала.
Maple-язык программирования считается одним из самых лучших и мощных языков программирования математических задач. Это, наряду с упомянутыми новыми средствами пакета Maplets, позволяют создавать высококачественные электронные уроки, статьи и даже целые книги.
1.1.4. Новые возможности Maple 9.5
Версия Maple 9.5, по сравнению с предшествующими версиями этой системы, отличается рядом новых существенных возможностей:
• более открытая и доступная инфраструктура;
• более гибкий пользовательский интерфейс;
• новые возможности в работе с символьными выражениями: усовершенствованные алгоритмы упрощения, конвертации, комбинирования выражений;