Научная статья на тему 'Система компьютерной алгебры Sage как средство для решения систем уравнений'

Система компьютерной алгебры Sage как средство для решения систем уравнений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
848
123
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
SAGE / КОМПЬЮТЕРНАЯ АЛГЕБРА / ИНТЕРФЕЙС / СИСТЕМЫ УРАВНЕНИЙ / COMPUTER ALGEBRA / INTERFACE / SYSTEM OF EQUATIONS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ашуркин Денис Павлович, Богданова Наталья Юрьевна

Система компьютерной алгебры Sage позиционируется как универсальная математическая среда, объединяющая множество различных открытых программ и библиотек в рамках единого интерфейса. Цель проекта создание реальной открытой альтернативы коммерческим математическим пакетам Maple, Mathematica и Matlab. Интересной особенностью Sage является то, что она изначально спроектирована в виде web -приложения, а серверная часть может быть запущена как локально, так и «в облаке». Sage предоставляет полностью бесплатный онлайн-сервис, который напрямую конкурирует с аналогичными коммерческими сервисами.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ашуркин Денис Павлович, Богданова Наталья Юрьевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COMPUTER ALGEBRA SYSTEM SAGE AS A MEANS OF SOLVING SYSTEMS OF EQUATIONS

Sage computer algebra system is positioned as a universal mathematical environment that brings together within a single interface many different public programs and libraries. The purpose of the project is to create a real alternative to commercial software packages like Maple, Mathematica and Matlab. An interesting feature of Sage is that it was originally designed as a web-application, and the back end can be run both locally and "in the cloud". Sage provides a completely free online service that directly competes with similar commercial services.

Текст научной работы на тему «Система компьютерной алгебры Sage как средство для решения систем уравнений»



УДК 51-37

СИСТЕМА КОМПЬЮТЕРНОЙ АЛГЕБРЫ SAGE КАК СРЕДСТВО ДЛЯ РЕШЕНИЯ СИСТЕМ УРАВНЕНИЙ

Д. П. Ашуркин, Н. Ю. Богданова

Донской государственный технический университет, г. Ростов-на-Дону, Российская Федерация [email protected] [email protected]

Система компьютерной алгебры Sage позиционируется как универсальная математическая среда, объединяющая множество различных открытых программ и библиотек в рамках единого интерфейса. Цель проекта — создание реальной открытой альтернативы коммерческим математическим пакетам Maple, Mathematica и Matlab. Интересной особенностью Sage является то, что она изначально спроектирована в виде web-приложения, а серверная часть может быть запущена как локально, так и «в облаке». Sage предоставляет полностью бесплатный онлайн-сервис, который напрямую конкурирует с аналогичными коммерческими сервисами.

Ключевые слова: Sage, компьютерная алгебра, интерфейс, системы уравнений

UDC 51-37

COMPUTER ALGEBRA SYSTEM SAGE AS A MEANS OF SOLVING SYSTEMS OF EQUATIONS

D. P. Ashurkin, N. Y. Bogdanova

Don State Technical University, Rostov-on-Don, Russian Federation [email protected] [email protected]

Sage computer algebra system is positioned as a universal mathematical environment that brings together within a single interface many different public programs and libraries. The purpose of the project is to create a real alternative to commercial software packages like Maple, Mathematica and Matlab. An interesting feature of Sage is that it was originally designed as a web-application, and the back end can be run both locally and "in the cloud". Sage provides a completely free online service that directly competes with similar commercial services.

Keywords: Sage, computer algebra, the interface, the system of equations

Введение. В середине ХХ века на стыке математики и информатики возникло и интенсивно развивается фундаментальное научное направление — компьютерная алгебра, наука об эффективных алгоритмах вычислений математических объектов [1-3].

Целью данной работы является знакомство с системой компьютерной алгебры Sage, ее назначением и принципом работы.

Для достижения цели в работе были поставлены и решены следующие задачи:

• изучить современные системы компьютерной алгебры;

• применить систему компьютерной алгебры Sage для решения систем уравнений.

Современные системы компьютерной алгебры. В настоящее время появилось множество систем компьютерной алгебры: Singular, Sage, Derive, Maxima и т.д. Разработка, развитие и даже использование этих систем постепенно выделились в автономную научную дисциплину, относящуюся к информатике.

Самый популярный пакет, находящийся в свободном доступе — Maxima. Пакет Mathematica, по-видимому, является в настоящий момент наиболее популярным в научных кругах,

особенно среди теоретиков. Пакет предоставляет широкие возможности в проведении символических (аналитических) преобразований, однако требует значительных ресурсов компьютера.

Система компьютерной алгебры Sage. Первая версия системы компьютерной алгебры Sage появилась в 2005 г. и к настоящему времени проект Sage успел хорошо себя зарекомендовать. Сейчас свой вклад в развитие системы Sage вносят около 200 математиков и программистов всего мира, как на добровольной основе, так и при реализации специальных грантов. Координирует усилия по развитию системы профессор Уильям Штейн из университета Вашингтона.

Sage позиционируется как универсальная математическая среда, объединяющая символьные вычисления, численные расчеты, визуализацию данных и математическое программирование. Она объединяет множество различных открытых программ и библиотек (как чисто математических, так и более общего назначения) в рамках единого интерфейса. Целью проекта является создание реальной открытой альтернативы коммерческим математическим пакетам Maple, Mathematica и Matlab.

Технически Sage является коллекцией модулей, написанных на языке Python, которые интегрируют в единую систему такие программы, как Maxima, Axiom, Singular, gnuplot, R, octave, LaTeX и т. д. Всего в Sage используется около ста независимых компонентов.

В качестве исходного языка программирования в системе Sage выбран популярный язык Python («питон»), однако самые объемные по времени выполнения блоки кода реализованы на языке C/C++. Этот выбор оказался очень удачным по ряду причин:

• Python является интерпретируемым объектно-ориентированным языком с динамической типизацией, сборкой «мусора» и элементами функционального программирования;

• к языку прилагается богатая стандартная библиотека. Кроме того, в свободном доступе имеется множество пакетов по численным методам, линейной алгебре, двумерной и трехмерной графике, распределенным вычислениям, поддержке баз данных и т. д., которые могут заинтересовать пользователей системы Sage;

• Python — кроссплатформенный язык. Он поставляется с исходными кодами и может быть собран на любой платформе;

• Python имеет богатые встроенные средства для документации кода, управления памятью, обработки исключений, отладки программ, тестирования и т. д. [4].

Самой интересной особенностью Sage является то, что она изначально спроектирована в виде web-приложения, причем серверная часть может быть запущена как локально, так и удаленно, «в облаке». Sage предоставляет полностью бесплатный онлайн-сервис, который доступен с любого устройства в любой точке мира, и напрямую конкурирует с аналогичными сервисами коммерческих СКА.

После регистрации на сайте пользователь попадает в простое меню, позволяющее управлять документами Sage — создавать и удалять документы в облачном хранилище, скачивать и закачивать их на локальный компьютер. Любой документ можно открыть для совместного доступа выбранным пользователям или опубликовать по уникальной ссылке для всеобщего обозрения.

Документы Sage открываются как обычные динамические страницы в браузере и состоят из набора ячеек ввода, под которыми отображается результат обработки выражения — формула, график или иной объект [5].

На рис. 1. представлена панель инструментов Sage.

Действия над файлом Выполнить код

/деич /

Отступ Отобразить/скрыть Удалить вывод Отступ Отступ |-|оиск

Разделить вид Перейти

вправо вводячеики \ \

т

11 Text

ф

С

ь/

Остановить расчёт / Создание / Отобразить'

/ текстовой или скрыть Перезагрузить расчёт (не файл) ячейки вывод ячейки

ячеики /

о о

/

Отмена Возврат'

\

вправо / /

документа

/

в

С У 3 ЕЗ а С

\ / Автоотступ для Замена выделенного „ текста Уменьшить шрифт

Увеличить шрифт

/ /

|фт / □иЛт'

/

Ate /

Печать „ (в pdf) Сохранить

Шкала времени

Чат с людьми, f которым расшарен проект.

/

Рис. 1. Панель инструментов

Рис. 2. Скриншот с примером python-кода

Вычислить любой код возможно, нажав кнопку Run или комбинацию клавиш shift-enter. Ниже представлен скриншот с примером python-кода и информационными полосками.

Система предоставляет возможность одновременно работать со многими документами в разных вкладках браузера. При закрытии вкладки сам документ остается открытым на сервере, в частности, все незавершенные вычисления продолжают выполнятся в фоновом режиме.

Функциональные возможности Sage. Многочисленные возможности Sage включают:

• Интерфейс notebook для просмотра и повторного использования введённых команд и полученных результатов, включая графики и текстовые аннотации, доступные из большинства современных веб-браузеров. При этом доступно защищённое соединение через протокол HTTPS, в случаях, когда важна конфиденциальность. Также Sage может выполняться как локально, так и удалённо.

• Математический анализ, реализованный на основе систем Maxima и SymPy.

• Библиотеки элементарных и специальных математических функций.

• Плоские и трёхмерные графики для функций и данных.

• Средства работы с матрицами и массивами данных с поддержкой разрежённых массивов.

• Различные статистические библиотеки функций.

• Средства визуализации и анализа теории графов.

• Поддержка комплексных чисел, символьных и вычислений с произвольной точностью.

• Подготовка научно-технической документации с использованием редактора формул и возможностью встраивания Sage в документацию формата LaTeX [4].

Пример. Рассмотрим решение системы уравнений:

3 х2у2 + х2 — 3 ху = 7 110х2у2 + Зх2 - 20ху = 3

В среде Sage система будет выглядеть следующим образом (Python-код системы):

sage: var('x y')

(x,y)

sage: eq1 = 3*(xA2)*(yA2)+(xA2)-3*x*y==7 sage: eq2 = 10*(xA2)*(yA2)+3*(xA2)-20*x*y==3 sage: solve([eq1,eq2],x,y).

В строке ответа получаем следующее решение:

[x == -1, y == -2], [x == 1, y == 2].

В этой записи содержатся 2 пары х и у, которые являются решением исходной системы уравнений.

Решим систему линейных алгебраических уравнений:

~Ь 2X2 х3 = 1<

2хх + 4х2 — 4х3 + Зх4 + х5 = 0, хх + 2х2 + х3 + 2х4 + Зх5 = 2.

Решение данной системы требует довольно громоздких вычислений. Но при использовании системы компьютерной алгебры Sage решение сводится к нажатию нескольких клавиш. Вводим условие в систему:

sage: var('x y z f g') (x,y,z,f,g)

sage: eq1 = x+2*y-z+f+g==1 sage: eq2 = 2*x+4*y-4*z+3*f+g==0 sage: eq3 = x+2*y+z+2*f+3*g==2 sage: solve([eq1,eq2,eq3],x,y,z,f,g).

В строке ответа получаем:

[[x == -5/4*r1 - 2*r2 + 9/4, y == r2, z == -3/4*r1 + 3/4, f == -1/2*r1 - 1/2, g == r1]].

У = r2,

z = 4( 1-rO,

Г = -^(Ч + 1),

5 = ri,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

где r1, r2 — произвольные числа.

Рассмотрим решение системы уравнений с тремя неизвестными и комплексными коэффициентами. Итак, система имеет вид:

х — 2 iy + z = 2, х — у + tz = 3, 1( 1 + i )х + 3 iy - 3 z = 0.

Вводим условие в виде алгоритма: sage: var('x y z')

(x,y,z)

sage: eq1 = x-2*i*y+z==2 sage: eq2 = x-y+i*z==3 sage: eq3 = (1+i)*x+3*i*y-3*z==0 sage: solve([eq1,eq2,eq3],x,y,z).

Нажав кнопку выполнения алгоритма, в строке ответа получим:

[[x == (-I + 4/3), y == (-1/9*1 - 8/9), z == (-7/9*1 + 8/9)].

Решение системы можно записать следующим образом:

4

x = 3_i' 8 1

У

9 9l'

8 7

г = - — — /.

9 9

Заключение. SageMath построен из почти 100 пакетов с открытым исходным кодом и имеет единый интерфейс.

Появление современных вычислительных систем значительно облегчает доступ к компьютеру непрофессионалам в области программирования и поддерживает постоянное стремление к усовершенствованию и освоению новых компьютерных технологий. Исполняемые файлы доступны для операционных систем Linux, OS X и Solaris. Несмотря на то, что Microsoft спонсировала разработку версии Sage специально под операционную систему Windows, на данный момент пользователям этой операционной системы нужно использовать технологию виртуализации для работы с Sage.

Существуют следующие варианты запуска системы компьютерной алгебры Sage на ОС Windows:

1. через специальную «виртуальную машину», эмулирующую Linux (например, VirtualBox);

2. через онлайн-версию Sage, находящуюся по адресу http://cloud.sagemath.com/. В этом случае Sage работает на удаленном сервере, а пользователь взаимодействует с ней через обычный браузер. Все рабочие документы сохраняются в «облаке».

Библиографический список

1. Морзеев, Ю. Современные системы компьютерной математики [Электронный ресурс] / КомпьютерПресс. — Режим доступа: http://compress.ru/article.aspx?id=12530_(дата обращения : 01.07.16).

2. Сиразов, Ф. С. Применение систем компьютерной алгебры в обучении элементам абстрактной и компьютерной алгебры / Ф. С. Сиразов // Изв. Российского гос. пед. ун-та им.

A. И. Герцена. — 2009. — № 116. — С. 223-227.

3. Семенов, С. П. Современные системы компьютерной алгебры / С. П. Семенов,

B. В. Славский // Изв. Алтайского гос. ун-та. — 1998. — № 1. — С. 20-22.

4. Голубков, А. Ю. Компьютерная алгебра в системе SAGE / А. Ю. Голубков, А. И. Зобнин, О. В. Соколова. — Москва, изд-во Московского гос. ун-та им. Н. Э. Баумана, 2013. — 79 с.

5. Яцкин, Н. И. Алгебраические вычисления в системе SAGE / Н. И. Яцкин. — Иваново, изд-во Ивановск. гос. ун-та, 2014. — 45 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.