УДК 358:681.3.06
С.П. Семенов, В.В. Славский1
Современные системы компьютерной алгебры
В конце 50-х гг., в связи с решением задач небесной механики (расчет траекторий движения ИСЗ и отыскание точных решений уравнения Эйнштейна), многими исследователями была осознана необходимость автоматизировать длинные математические выкладки. Как следствие, начали появляться первые компьютерные системы для символьных (аналитических) преобразований на ЭВМ.
Создание подобных компьютерных систем породило новую ветвь информатики, которую стали называть компьютерной алгеброй, соответствующие программные продукты получили названия "Системы компьютерной алгебры" (СКА).
В последние годы системы компьютерной алгебры (символьных или аналитических вычислений) стали доступны не только узкому кругу специалистов, но и всем обладателям персональных компьютеров.
В данной работе проводится обзор некоторых современных СКА, их возможностей, примеры применения в учебном процессе и научных исследованиях. Авторами данной статьи разработан и внедрен в учебный процесс математического факультета Алтайского госуниверситета курс по практическому обучению работе с современными СКА.
В литературе различают универсальные и специализированные СКА. В данной работе рассматриваются универсальные СКА, под которыми понимаются, как правило, программные продукты, позволяющие проводить алгебраические преобразования над объектами достаточно общей, в математическом смысле, природы. Современные СКА не ограничиваются простейшими действиями и упрощением выражений.
Возможности, представляемые пользователю современными СКА общего назначения, охватывают многие разделы алгебры и математического анализа. Во многих системах можно выполнять:
• арифметические операции с целыми (произвольной длины), рациональными, действительными и комплексными числами;
• алгебраические операции с полиномами и
рациональными функциями одной или нескольких переменных;
• вычислять наибольший общий делитель полиномов;
• выполнять факторизацию над полем рациональных чисел.
Многие действия математического анализа выполняются в СКА:
• дифференцирование, включая нахождение частных производных;
• интегрирование элементарных функций;
• разложение в ряды и многое др.
В СКА имеются встроенные операции над матрицами с символьными элементами:
• сложение, умножение;
• обращение матриц;
• вычисление определителей;
• решение систем линейных алгебраических уравнений.
Пользователь обладает возможностью:
• управлять процессом упрощения математических выражений;
• выполнять подстановки;
• выделять части формул;
• получать численные значения формул.
Как правило, СКА предоставляют возможность определять новые (собственные) функции, которые затем используются наравне со встроенными. Одно из основных отличий СКА от традиционных систем программирования связано с процессом численного решения уравнений. Обычно значения вычисляются в 2 этапа, вначале вместо входящих в выражения переменных подставляются их значения, а затем вычисляется все выражение. СКА же, например, при решении линейных алгебраических уравнений выделяет все его точные рациональные и алгебраические решения, даже если коэффициенты уравнения зависят от буквенных параметров, в то
1 Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (код проекта 96-01-00436). Данные исследования поддержаны грантовым центром при Санкт-Петербургском государственном университете.
время как самое большее, на что можно рассчитывать, используя численные методы, — это про-табулировать решение уравнения при различных значениях этих параметров. Важным достоинством СКА являются развитые 2- и 3-мерньте графические возможности.
Многие современные СКА обладают возможностями хороших текстовых редакторов, что позволяет использовать их при подготовке научных публикаций.
Заметим, что основу СКА составляют глубокие математические результаты из коммутативной алгебры, алгебраической геометрии, математической логики, математического анализа, дифференциальных уравнений, теории алгоритмов и др. [1; 2|. Современные СКА позволяют использовать весь этот сложный математический аппарат без изучения самих алгоритмов на профессиональном уровне. Существуют задачи, в которых постановка и результаты доступны пониманию школьника, однако средства для их решения требуют знаний, выходящих за рамки университетского курса.
Наиболее известными на сегодняшний день среди универсальных СКА являются: Reduce, Macsyma, Mathlab, Axiom, Mathematica, Derive, MathCad, Maple и некоторые другие, менее мощные EUREKA, Mercury.
Удивительно небольшой и способный пакет Derive [3|. Он успешно работает под управлением MS-DOS, требуемая оперативная память — 512 кб и 360 кб на жестком диске. Краткое описание возможностей Derive:
1. Достаточно развитый интерфейс.
2. Выполнение простейших вычислений с высокой точностью.
3. Упрощение символьных выражений.
4. Большое количество встроенных функций.
5. Определение функций пользователя.
6. Вычисление последовательных значений функций (табуляция).
7. Решение уравнений f(x) = 0.
8. Работа с многочленами и рациональными функциями.
9. Подстановка выражений.
10. Работа с комплексными выражениями.
11. Нахождение корней многочлена.
12. Факторизация.
13. Дифференцирование.
14. Интегрирование.
15. Ряды.
16. Дифференциальная геометрия.
17. Векторный анализ.
18. Работа с матрицами, ввод, извлечение элементов, строк.
19. Решение систем линейных алгебраических уравнений.
20. Собственные значения, характеристический многочлен.
21. Матричные уравнения.
22. Двухмерная графика.
23. Построение параметрических графиков, полярные координаты.
24. Форматирование графиков, кросс-координата.
25. Трехмерная графика.
Следующая CK А, которая осваивается на МФ А ГУ - MathCad (фирма MathSoft Inc). Различают три пакета MathCad Basic, MathCad Standart и MathCad Pins [4|. Пакет работает под управлением Windows версии от 3.11 и вытпе, требует процессор не менее 386, оперативной памяти не менее 8 мгб и 12 мгб свободного места на жестком диске. Основные свойства MathCad:
1. Развитый интерфейс в стиле Windows.
2. Развитые численные методы.
3. Символьные вычисления.
4. Построение 2- и 3-мерных графиков, линий уровня, векторных полей.
5. Анимация.
6. Текстовый редактор.
7. Внутренний язык программирования.
Одним из лидеров среди универсальных СКА является пакет Maple фирмы Waterloo Maple Inc., который обеспечивает пользователю удобную и интеллектуальную среду для математических исследований [5|. Символьный анализатор Maple включен в ряд пакетов вычислительного характера, таких как MathCad, Matlab. Совместим с издательской системой Latex, входит в состав пакетов подготовки научных публикаций (Scientific WorkPlace и Math Office). На английском языке вытпло более сотни книг, описывающих Maple и его многочисленные применения в научных исследованиях и для преподавания разнообразных предметов. Пакет широко распространен в университетах ведущих научных держав, исследовательских центрах и
компаниях. Maple состоит из ядра — процедур, написанных на языке Сив высшей степени оптимизированных, библиотеки, написанной на Maple-языке, и интерфейса. Ядро выполняет большинство базисных операций. Библиотека содержит множество команд — процедур, выполняемых в режиме интерпретации. Б связи с исследованиями в обтцей теории относительности Эйнштейна отметим пакет программ GRTensor, написанных на Maple-языке.
Основным конкурентом с Maple, поддерживающим все основные типы вычислений, является пакет Mathematica фирмы Wolfram Research Inc. [6; 7; 8|, разработанный большой группой математиков и программистов во главе с ее основателем известным физиком-теоретиком S. Wolfram. Б настоящее время данный пакет позволяет эффективно производить численные (матричные операции, интегрирование, преобразование Фурье, нахождение корней, решение минимаксных задач, линейное программирование, вычисление различных математических функций и др.) и символьные (алгебраические преобразования, работа с полиномами, интегрирование, решение уравнений, матричные операции, работа со списками и др.) вычисления. На основе развитого графического языка Mathematica
демонстрирует великолепную 2- и 3-мерную графику (пакеты Maple и Mathematica выводят графику, используя Postscript). Mathematica имеет развитый встроенный интерактивный символьный язык программирования и ряд других интересных средств. Имеются версии данного пакета для супер ЭБМ, для Apple и для PC с не ниже Intel 80386 и оперативной памятью не менее 4Мб.
Додекаэдр изнутри
По проблематике, связанной с пакетом МаЛета^са, издается ряд журналов, ориентированных на широкий круг пользователей: от научных работников до учащихся вузов и колледжей.
Литература
1. А критас А. Основы компьютерной алгебры с приложениями. М., 1994.
2. Дэвенпорт Дж., Сиро И., Турнье Э. Компьютерная алгебра. М., 1991.
3. Дьяконов H.H. Справочник по применению системы Derive. М., 1993.
4. Руководство пользователя Math cad 6.0., Mathcad PLUS 6.0. MathSoft Inc. M., 1996.
5. Говорухин Б.Н., Цибулин Б.Г. Бведение в Maple. Математический пакет для всех. М.,
1997.
6. Аладьев Б.З., Шитпаков М.Л. Бведение в среду пакета MATHEMATICA 2.2. М., 1997.
7. Очаков Б.З. Система символьной математики Mathematica 2.2.2. М., 1997.
8. MATHEMATICA 3.0. Products and services. Wolfram Research Inc. 1997.