В последние полтора десятка лет возникло и получило бурное развитие новое фундаментальное научное направление — компьютерная математика [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 (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) по различным видам вычислений;