Sage: математика open source

Материал публикуется в рамках проекта Computer Science Student. Блога о математике с удивлением не обнаружил, возможность создать новый блог с удивлением не обнаружил тоже.

Сегодня я хочу познакомить вас с Sage.

Одним из курсов в последнем семестре у меня был Mathematical Software, где мы изучали фундаментальные алгоритмы, лежащие в основе почти всех математических операций, проводимых в компьютере (удобные для вычислений виды представления данных, быстрое умножение, трансформации Фурье, алгоритм Карацубы и т.д.). Курс не был похож на другие: к концу семестра в классе осталось только трое человек; не было никаких тестов или экзаменов, финальная оценка состояла из двух домашних заданий и одного проекта; и, наконец, я давно не исписывал сотню с лишним страниц тетради в течение одного курса. Практическая часть — работа с системой Sage.

Sage (анг. 'Мудрец') — система компьютерной алгебры покрывающая много областей математики, включая алгебру, комбинаторику, вычислительную математику и матанализ. Первая версия Sage была выпущена 24 февраля 2005 года в виде свободного программного обеспечения с лицензией GNU GPL. Первоначальной целью проекта было «создание открытого программного обеспечения альтернативного системам Magma, Maple, Mathematica, и MATLAB». Разработчиком Sage является Уильям Стейн — математик Университета Вашингтона.

Для финального проекта нужно было сделать что-нибудь полезное для сообщества Sage. Учитывая приличную нагрузку из-за других курсов, мы (я и мой друг Темирлан) решили пойти путем наименьшего сопротивления и сделать русскоязычную документацию для Sage. Мы перевели официальный туториал, а я записал четыре скринкаста.



Sage имеет удобный веб-интерфейс, который полностью повторяет функциональность основной программы. Доступ к нему осуществляется посредством сервера, так что если вашей школе/организации/университету нужно математическое программное обеспечение, Sage имеет неоспоримый плюс: его можно поставить на одной машине, запустить веб-сервер Sage Notebook и пользоваться программой смогут все, у кого есть браузер с поддержкой javascript. Туториал описывает работу Sage Notebook и покрывает такие темы, как простые арифметические операции, работа с полиномами, кольцами, интерактивной консолью, с различными интерфейсами (Sage включает в себя некоторые другие мат. пакеты: (GP/PARI, GAP, Singular, Maxima), программирование (Sage использует Python).

Все это находится на freetonik.com/sage.

Скринкасты


Вводный скринкаст о командной строке, справочной системе, Python'е и графиках.


Второй скринкаст: подробнее о двумерных графиках.


Третий скринкаст: работа с трехмерными графиками.


Четвертый скринкаст: @interact.
+76
28 мая 2010, 17:05
71
freetonik 104,6

комментарии (28)

+1
InfernoZ #
>создать новый блог
Обратитесь к модераторам
+1
freetonik #
Попробую, спасибо.
+1
lari4 #
хорошо бы начать использоать в наших вузах! Поговорю с математиками по этому поводу… мы как то помогали преподавателям составить методички по Maple и Mathematica, но они ужасно дорогие… так что вижу смысл использовать Sage.
+1
yanchick #
Да, Sage это сила. Мне в нём нравиться что есть возможность работать из одной оболочки со всеми мат. пакетами. Он имеет интерфейс и с MatLab, Maple, Maxima, Octave и т.п. Плюс сверху все полито Python. Да, есть публичные Sage сервера. Например www.sagenb.org/(тока прошу хабрэффект не устраивать там сервер похоже самый сильный). Мне в нём одно не нравиться, или я этого не осилил, это не возможность использование его как интерпретатора скриптов.
+10
kolen #
Sage goes to all fields!
+1
ivlis #
Здорово! Отличный продукт, надо будет попробовать его.
+1
Tutufa #
матлабу это не альтернатива, а вот мэйплу и математике думаю да.
+1
yanchick #
Скорее всего имеется ввиду Toolbox'ам MatLab'a. Сам пользуюсь MatLab и до сих пор не могу найти хоть что-то одаленное напоминающее NeuralNetwork Toolbox.
+1
Tutufa #
да тулбоксы и симулинк.
+1
jury #
Делал на нём курсач. Классная вещь. Всё легко и быстро.
По скорости уступает Mathemathic'е, но не сильно. Плюс с оформлением и онлайн публикацией у Sage всё замечательно.
+2
artemlight #
Название идеологически верное у него.
+2
m1t0z #
«хм… мм, неплохо» — действительно «неплохо», по графику создается впечатление, что корней у b.det() побольше, чем один (= 0.0). А вообще, выглядит замечательно, к тому же базируется на пайтоне. На заметку, спасибо.
0
KF_NEXUS #
А действительно, почему так? Хотелось бы комментарий от атора по этому поводу. А вообще классно конечно выглядет)
0
f0rbidik #
С помощью численных методов отыскания нуля функции можно, с заданной точностью, получить приближение только к одному из корней в указанной области.
+2
artifex #
Просто оставлю две ссылки.
ru.wikipedia.org/wiki/Maxima
maxima.sourceforge.net/
+3
Dipodidae #
Да ладно, можно было бы и не стесняться, а рассказать.
0
mr_fresh #
Большое спасибо, уже сижу разбираюсь!

Сразу возникло пара вопросов:
1. Как у Sage с оптимизационными алгоритмами (комбинаторные, внутренние точки, продвинутое нелинейное программирование)? Особенно на больших размерностях?

2. Может быть есть и еще хорошие штуки для интеграции с Питоном? Я в свое время искал что-нибудь универсальное, но попался только GSL.
+1
freetonik #
1. К сожалению, этого аспекта не касался, не знаю. Но в целом производительность у Sage не отличная, но и не плохая.
2. Не совсем понял суть вопроса… интеграции чего с питоном?
0
mr_fresh #
Сорри, я непонятно выразился: имелись ввиду другие библиотеки для питона (нативные или интегрированные) для работы с математикой и близкими к ней вещами (построение графиков, например, gnuplot).
0
freetonik #
Аа, понял. Тут, к сожалению, тоже не помогу — мое знакомство с Python началось и ограничилсоь Sage :)
+2
itmi #
Для Питона есть очень много всего, вот мое «избранное»:

— numpy + matplotib + ipython = очень хорошая среда численных вычислений
— pxMaxima — интерфейс к Maxima
0
KF_NEXUS #
Ну судя поскринкасту, где они юзают Numpy всместе с Sage, видимо всё хорошо)
+1
cybergrind #
sage в себе как раз и содержит солянку из разных питоновских математических библиотек и их там реально дофига.
есть еще нечто сходное PyLab
+1
sam_reaper #
солидно как то, даже очень
0
freetonik #
то есть?
+1
Kindigo #
…и, мы видим матрицу…
0
xintrea #
Я не понял. В первом скринкасте на графике явно видно три корня -2, 0, 2. А sage находит только один. Так и должно быть?
0
Alver #
Добрый день!

Скажите пожалуйста, а есть ли какая-то возможность прикрутить Sage для использования в С++ коде?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.