Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Компьютерная алгебра в системе Sage

Покупка
Новинка
Артикул: 842138.01.99
Доступ онлайн
800 ₽
В корзину
В пособии рассматриваются алгебраические алгоритмы на примере системы компьютерной алгебры Sage. Обсуждаются манипуляции с символьными выражениями, вычисления в различных алгебраических структурах, преобразования систем алгебраических уравнений. Пособие снабжено упражнениями и задачами. Для студентов 3-4-го курсов математических и компьютерных специальностей, изучающих математику и компьютерную алгебру.
Голубков, А. Ю. Компьютерная алгебра в системе Sage : учебное пособие / А. Ю. Голубков, А. И. Зобнин, О. В. Соколова. - Москва : Изд-во МГТУ им. Баумана, 2013. - 80 с. - ISBN 978-5-7038-3680-4. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2169313 (дата обращения: 21.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Московский государственный технический университет
имени Н.Э. Баумана
А.Ю. Голубков, А.И. Зобнин, О.В. Соколова
КОМПЬЮТЕРНАЯ АЛГЕБРА
В СИСТЕМЕ SAGE
Рекомендовано Научно-методическим советом
МГТУ им. Н.Э. Баумана
в качестве учебного пособия
Москва
Издательство МГТУ им. Н.Э. Баумана
2013


УДК 681.3.06(075.8)
ББК 22.18
Г62
Рецензенты: М.А. Бабенко, П.Г. Ключарев
Г62
Голубков А.Ю.
Компьютерная алгебра в системе Sage : учеб. пособие /
А.Ю. Голубков, А.И. Зобнин, О.В. Соколова. — М.: Изд-во
МГТУ им. Н.Э. Баумана, 2013. — 79, [1] с. : ил.
ISBN 978-5-7038-3680-4
В пособии рассматриваются алгебраические алгоритмы на примере системы компьютерной алгебры Sage. Обсуждаются манипуляции
с символьными выражениями, вычисления в различных алгебраических структурах, преобразования систем алгебраических уравнений.
Пособие снабжено упражнениями и задачами.
Для студентов 3–4-го курсов математических и компьютерных специальностей, изучающих математику и компьютерную алгебру.
УДК 681.3.06(075.8)
ББК 22.18
Учебное издание
Голубков Артем Юрьевич
Зобнин Алексей Игоревич
Соколова Ольга Владимировна
КОМПЬЮТЕРНАЯ АЛГЕБРА В СИСТЕМЕ SAGE
Редактор С.А. Серебрякова
Корректор
Р.В. Царева
Компьютерная верстка В.И. Товстоног
Подписано в печать 15.03.2013. Формат 60×84/16.
Усл. печ. л. 4,65. Тираж 100 экз. Изд. №49.
Заказ
Издательство МГТУ им. Н.Э. Баумана.
Типография МГТУ им. Н.Э. Баумана.
105005, Москва, 2-я Бауманская ул., 5, стр. 1.
ISBN 978-5-7038-3680-4
c
⃝МГТУ им. Н.Э. Баумана, 2013


ПРЕДИСЛОВИЕ
Учебное пособие написано на основе материалов практических
занятий, проведенных авторами в 2010–2011 гг. на факультете «Информатика и системы управления» в МГТУ им. Н.Э. Баумана и на
механико-математическом факультете МГУ им. М.В. Ломоносова
на третьем курсе в течение осеннего семестра.
Компьютерная алгебра — современная дисциплина, изучающая
алгоритмы преобразования математических выражений в символьном виде [1]. В этом аспекте она противопоставляется численным
методам. Мы предполагаем, что читатели знакомы с основами линейной алгебры (матрицы, системы линейных уравнений, определители, линейные операторы) и с основными алгебраическими
структурами (группами, кольцами, полями, векторными пространствами) в объеме стандартного университетского курса [2—5]. Кроме того, мы рассчитываем, что читатель владеет базовыми навыками программирования.
В качестве системы компьютерной алгебры мы выбрали систему Sage. Мы рассматриваем работу с символьными выражениями в этой системе, вычисления в различных алгебраических
структурах (группах, кольцах, полях, векторных пространствах),
работу с матрицами и многочленами. Особое внимание в пособии уделено задаче исследования систем алгебраических уравнений. К сожалению, мы не останавливаемся на задачах символьного
дифференцирования и интегрирования и на алгоритмах факторизации многочленов. Пособие не является полным справочником
по системе Sage, а представляет собой обзор возможностей этой
системы символьных вычислений, а также круга алгоритмических
3


задач, возникающих в алгебре. Мы рассчитываем, что читатель при
необходимости сможет обратиться к справочной системе [6—8].
Пособие состоит из пяти глав, содержащих краткую теоретическую информацию и примеры использования функций системы
компьютерной алгебры. В конце глав приведены упражнения и
задачи. В упражнениях требуется либо решить с помощью компьютера данную конкретную задачу (часто вполне решаемую и
вручную), либо самостоятельно разобраться с функционалом системы. В задачах же, в отличие от упражнений, нужно составить
общий алгоритм решения и записать его в виде отдельной подпрограммы.


1. ОСНОВЫ РАБОТЫ С СИСТЕМОЙ SAGE
1.1. Что такое Sage
Первая версия системы компьютерной алгебры Sage (http:/
/sagemath.org) появилась в 2005 г., к настоящему времени проект Sage
успел хорошо себя зарекомендовать. Сейчас свой вклад в развитие системы Sage вносят около 200 математиков и программистов
всего мира как на добровольной основе, так и при реализации
специализированных грантов. Координирует усилия по развитию
системы проф. Уильям Штейн из университета Вашингтона.
Система Sage свободно распространяется на условиях лицензии GNU Public License; ее исходные коды открыты. Своей целью разработчики системы выбрали создание открытой и свободно распространяемой альтернативы системам Magma, Maple,
Mathematica и MATLAB. Чтобы проделать такую работу с нуля,
потребовались бы тысячи человеко-часов. Тем не менее уже существует большое количество эффективных открытых математических пакетов, которые можно было бы интегрировать в систему.
Однако такие пакеты написаны на разных языках (в основном C,
C++, Fortran, Python) и имеют разный интерфейс и назначение.
Поэтому с самого начала система Sage задумывалась как единый
интерфейс к различным свободным пакетам компьютерной алгебры, таким как GAP, Pari, Singular и Maxima. Сейчас система Sage
объединяет около 80 как узкоспециализированных пакетов, так и
систем компьютерной алгебры общего назначения. Пользователь,
работая в системе Sage, может легко переключаться между ними, а
при совершении стандартных операций даже не знать, с помощью
каких именно пакетов эти операции выполняются.
5


В качестве исходного языка программирования в системе Sage
выбран популярный язык Python («питон»), хотя критичные по
времени выполнения блоки кода реализованы на языке С/С++. Этот
выбор оказался очень удачным по ряду причин:
— вместо того чтобы создавать новый язык (как это было сделано в системах Magma, Maple, Mathematica, MATLAB, GP/PARI,
GAP, Macaulay 2 и т. п.), разработчики системы Sage выбрали уже
существующий популярный язык программирания;
— Python — чрезвычайно выразительный язык. Он позиционируется как язык для быстрой и удобной разработки и прототипирования. Python является интерпретируемым объектноориентированным языком с динамической типизацией, сборкой
мусора и элементами функционального программирования;
— к языку прилагается богатая стандартная библиотека. Кроме
того, в свободном доступе имеется множество пакетов по численным методам, линейной алгебре, двумерной и трехмерной графике, распределенным вычислениям, поддержке баз данных и т. д.,
которые могут заинтересовать пользователей системы Sage;
— Python — кроссплатформенный язык. Он поставляется с исходными кодами и может быть собран на любой платформе;
— Python имеет богатые встроенные средства для документации кода, управления памятью, обработки исключений, отладки
программ, тестирования и т. д;
Несмотря на то что значительная часть системы Sage написана
на языке Python, специализированных знаний этого языка от читателей не требуется. Все необходимые комментарии по синтаксису
языка даны в этом пособии. Изучить язык Python подробнее можно
с помощью ресурсов сайта http:/
/python.org.
1.2. Установка системы Sage
Основная разработка системы Sage ведется для Linux-подобных операционных систем.
Существует несколько способов установить систему Sage:
1) загрузить и собрать систему из исходных кодов (на платформах Linux, OS X, Solaris);
2) загрузить скомпилированные (исполняемые) файлы (на платформах Linux, OS X, Solaris);
6


3) загрузиться с компакт-диска Live CD, содержащего операционную систему Linux и систему Sage. Эта возможность позволяет
изучить работу с системой Sage, не устанавливая ее на компьютер.
Образ диска можно скачать с сайта Sage (http:/
/sagemath.org);
4) хотя полноценной сборки Sage для Windows не существует,
запустить Sage в Windows можно через специльную «виртуальную
машину», эмулирующую Linux (например, VirtualBox);
5) можно воспользоваться online-версией Sage, находящейся в
сети по адресу http:/
/sagenb.org. В этом случае система Sage работает на удаленном сервере, а пользователь взаимодействует с
ней через обычный браузер. Такой способ имеет ряд ограничений
(например, по объему доступной памяти).
Работать с системой Sage можно в различных режимах:
— графический интерфейс (notebook): работа с системой Sage
ведется через браузер. При этом Sage может быть запущена как
локально, так и удаленно. Именно в этом режиме работает onlineверсия системы Sage;
— режим командной строки: работа с системой Sage ведется
в консоли в текстовом режиме. Графика и сложные формулы при
необходимости могут отображаться в отдельном окне;
— программы, написанные для системы Sage, можно запускать
отдельно c помощью интерпретатора Sage из консоли;
— библиотеку Sage можно подключать в скрипты на языке
Python.
Для начального ознакомления мы рекомендуем воспользоваться графическим интерфейсом и работой с удаленным сервером
через браузер на сайте http:/
/sagenb.org, хотя работа с системой
через командную строку в терминале тоже достаточно проста и
удобна. Для постоянного использования удобнее полностью установить системы Sage на компьютер.
1.3. Присваивание. Арифметические операции
Далее рассмотрим базовые конструкции системы Sage и
языка Python. Опустим некоторые детали синтаксиса языка
Python, отсылая читателя к справочным руководствам и сайту
http:/
/docs.python.org.
7


Будем иллюстрировать работу с системой Sage в режиме диалога с пользователем (в «режиме калькулятора»). В наших примерах
строка, начинающаяся с приглашения sage:, обозначает команду, введенную пользователем. Следом за такой строкой будет идти
результат выполнения команды.
Каждая команда Sage в режиме диалога пишется с новой строки. Для ее выполнения следует нажимать комбинацию клавиш
Shift + Enter. В командной строке можно также просто нажимать клавишу Enter.
Оператор = обозначает присваивание, как и в языке С. Однако
в отличие от C этот оператор не возвращает никакого значения,
а просто связывает имя, стоящее слева, со значением, записанным
справа. В дальнейшем это имя можно будет привязать к другому
значению (возможно, совершенно другого типа) с помощью нового присваивания или вообще «отвязать» от значения командой del:
sage: a = 5
sage: a
5
sage: a = "hello"
sage: a
hello
sage: del a
sage: a
NameError: name ’a’ is not defined
Последняя
команда
завершилась
ошибкой
(исключением)
NameError, поскольку мы «отвязали» имя
a от значения
"hello". Sage автоматически освобождает память, занимаемую
значением, если обнаруживает, что с этим значением больше не
связано никаких имен. Эта операция называется сборкой мусора.
Обозначения для операторов сравнения ==, !=, <=, >=, < и >
такие же, как и в языке С. В отличие от других языков программирования в языке Python допускаются двойные неравенства:
sage: 2 == 2
True
sage: 2 == 3
False
8


Доступ онлайн
800 ₽
В корзину